基于servlet的登录验证

基于servlet登录验证

1、在建立项目工程之前,需要先将mysql 数据库连接桥放入tomcat的lib文件夹中:
这里写图片描述
2、建立数据库:

数据库名为:web_homework

表名为: users

表结构为:
这里写图片描述

3、在项目的src文件中新建文件包model2,在包中新建java类:login_servlet.java,其中添加代码如下:

package model2;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class login_servlet extends HttpServlet {
    Dbhelper db = null;
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        //super.doPost(req, resp);
        try {
            db = new Dbhelper();
        } catch (Exception e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

        resp.setContentType("text/html;charset=utf-8");
        req.setCharacterEncoding("utf-8");
        String action = req.getParameter("action");
        PrintWriter out = resp.getWriter();


        String name = req.getParameter("name");
        String password = req.getParameter("password");


            try {
                boolean flag = db.LoginCorrect(name, password);
                if (flag) {
                    out.println("<h1>登陆成功</h1>");

                }else {
                    out.println("<h1>登录失败</h1>");

                }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        System.out.println("name:"+name);
        System.out.println("password:"+password);
    }
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        super.doGet(req, resp);
    }


}  

4、在model2包中新建数据库操作类: Dbhelper.java:


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Dbhelper {

        private Connection conn = null;
        private Statement statement = null;

        public Dbhelper() throws Exception {
            conn = getConnection();
            statement = conn.createStatement();
        }

        // 查看登录用户名和密码是否正确
        public boolean LoginCorrect(String name, String password) throws Exception {

            String sql = "select * from users where userid = '" + name + "'";
            ResultSet rs = statement.executeQuery(sql);
            // 查看是否合法
            while (rs.next()) {
                if (name.equals(rs.getString("userid"))
                        && password.equals(rs.getString("password")))
                {
                    System.out.println("登录成功");
                    return true;
                }
            }
            rs.close();
            return false;
        }



        private Connection getConnection() throws Exception {
            String driverClass = "com.mysql.jdbc.Driver";
            String url ="jdbc:mysql://localhost:3306/web_homework" ;
            String user = "root";
            String password = "";

            // 注册加载驱动
            Class.forName(driverClass);

            // 获取连接

            Connection conn = DriverManager.getConnection(url, user, password);
            System.out.println(conn);
            return conn;
        }
    }     

5、在WebContent中建立Login.jsp并添加以下代码:
注:不要再META-INF和WEB-INF中创建jsp,这两个文件默认为隐藏文件,若是在这里新建jsp通常会出现404错误。

 <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <form action=login_servlet method="post">
        用户名:<input type="text" name="name"> 密码:<input type="password"
            name="password"> <input type="submit" value="登录"> <input
            type="hidden" name="action" value="login">
    </form>

</body>
</html>  

6、最后一步,配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>web_homework</display-name>
   <servlet>

        <servlet-name>login_servlet</servlet-name>
        <servlet-class>model2.login_servlet</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>login_servlet</servlet-name>
        <url-pattern>/login_servlet</url-pattern>

    </servlet-mapping>
</web-app>  

运行程序!!!


版权声明:本文为MrFragment原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。