ケース(ウェブ開発):(サーブレットを使用して)、ウェブサイトのログイン

ケースには必要です:

サイトのホームページ、ログインリンク、上のログインリンクをクリックして、ログインするページにジャンプすることができます。ログイン完了にログインするためのユーザー名とパスワードの場合、クリックのログインページを入力します。
ここに画像を挿入説明

要件分析:

ここに画像を挿入説明

実装手順

  • データベーステーブルを作成します。

  • WEB-INFにログインページを作成login.htmlと(アクションのパスがアクションに提出=「/モジュール/サーブレットパスの名前」し、フォームのフォームを作成します)

  • WEBプロジェクトの作成

    • 、設定ファイル(srcフォルダに蓄積されたC3P0接続プール(3瓶パッケージを格納するフォルダ内のWEB-INFのWebフォルダ内のlibを作成するために)必要なjarファイルを追加するSRCの下にフォルダを作成しますC3P0のツールを格納するためのutilsパッケージ)
    • (データベースに対応する)ユーザエンティティクラスを作成します。
    • 独自のパッケージ(ストレージ・サーブレット)を作成します
  • 書かれたページ

  • サーバーのサーブレットを書きます

  方法: String getParameter("表单的name属性值") 返回值String,表单填写内容

データベーステーブルを作成します。

-- 创建数据库web02
CREATE DATABASE web02;
-- 使用数据库web02
USE web02;
-- 创建表user 字段:主键,用户名,密码
CREATE TABLE USER (
	-- 主键
	uid INT PRIMARY KEY AUTO_INCREMENT,
	-- 用户名
	username VARCHAR(50),
	-- 密码
	PASSWORD VARCHAR(50)
);

-- user表插入初始化数据
INSERT INTO USER VALUES(NULL,'tom','123'),(NULL,'jerry','456');

-- 登录使用用户名和密码作为条件查询
SELECT * FROM USER WHERE username='tom' AND PASSWORD = '123'; -- 登录成功
SELECT * FROM USER WHERE username='tom' AND PASSWORD = '456'; -- 登录失败
/*
   dbutils 使用哪个结果集
   BeanHandler         查询结果一个JavaBean
   BeanListHandler     查询结果集是多个JavaBean,存储List集合
   ScalarHandler       单项值查询
   ColumnListHandler   查询一个列数据存储集合List<Object>
*/

Userエンティティクラス(JavaBeanの)を作成します

package com.ccc.domain;

public class User {
    private int uid;
    private String username;
    private String password;

    @Override
    public String toString() {
        return "User{" +
                "uid=" + uid +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public int getUid() {
        return uid;
    }

    public void setUid(int uid) {
        this.uid = uid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

C3P0接続プール・データを追加し、JDBCパス(WEB02)を変更します。C3P0ツールを追加

web.xmlファイルのパスを設定します

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <servlet>
        <servlet-name>login</servlet-name>
        <servlet-class>com.ccc.servlet.LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>login</servlet-name>
        <url-pattern>/mmm</url-pattern>
    </servlet-mapping>
</web-app>

書かれたページlogin.htmlと

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录案例</title>
</head>
<body>
    <!--
        action提交服务器的路径
        /web项目某块名/servlet访问的虚拟路径(浏览器输入的地址)
    -->
    <form method="post" action="/web02_login/mmm">
        用户名:<input type="text" name="username" placeholder="请输入用户名"/><br />
        密码:<input type="password" name="password" placeholder="请输入密码"/><br />
        <input type="submit" value="登录"/>
    </form>
</body>
</html>

サーバーのサーブレットを書きます

package com.ccc.servlet;

import com.ccc.domain.User;
import com.ccc.utils.C3P0UtilsXML;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;

public class LoginServlet extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//获取表单提交的数据
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		
		//此处可以加一条输出语句,在控制台输出,用于前期检验是否能获取到username和password
		//System.out.println(username + "\t" + password);
		
		// 作为数据表查询条件
		//创建dbutils工具的 核心类对象 QueryRunner
		QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
		//拼写登录查询的SQL
		String sql = "select * from user where username=? and password=?";
		User user = null;
		try {
			//执行查询语句,获取查询后的结果集BeanHandler
			 user = qr.query(sql,new BeanHandler<User>(User.class),username,password);
		}catch (Exception ex){ex.printStackTrace();}
		//查询后的结果集进行判断
		//条件不匹配,查询不到任何数据,返回null
		if(user==null){
			//查询不到数据,登录失败
			response.getWriter().print("login error");
		}else {
			//查询数据匹配,登录成功
			response.getWriter().print("login success");
		}
	}
}

ビルドが完了したら、Tomcatを実行して、ブラウザがページにジャンプしてジャンプします。MMM仮想アドレスバーがあらかじめ設定されたアドレスに追加し、最終的な表面のこの時点で、あなたは、インターフェイスが表示され、ログインすることができます。

おすすめ

転載: blog.csdn.net/qq_45083975/article/details/92565920
おすすめ