MVC的登录注册

1.首先看下已经完成好的项目的目录

用到的是MVC三层架构的思想

以下是代码

User.java

 1 package com.zlj.pojos;
 2 //一个普通实体类
 3 public class User {
 4     private String userName;
 5     private String passWord;
 6     public User(){
 7         
 8     }
 9     public User(String userName,String passWord){
10         this.userName = userName;
11         this.passWord = passWord;
12     }
13     public String getUserName() {
14         return userName;
15     }
16     public void setUserName(String userName) {
17         this.userName = userName;
18     }
19     public String getPassWord() {
20         return passWord;
21     }
22     public void setPassWord(String passWord) {
23         this.passWord = passWord;
24     }
25 }

DBUtil.java

package com.zlj.util;
//连接数据库的工具类
import java.sql.Connection;
import java.sql.DriverManager;

public class DbUtil {
    private String dbUrl="jdbc:mysql://localhost:3306/db_test01";
    private String dbUserName="root";
    private String dbPassWord="19981998";
    private String jdbcName="com.mysql.jdbc.Driver";
    
    public Connection getCon()throws Exception{
        Class.forName(jdbcName);
        Connection con=DriverManager.getConnection(dbUrl,dbUserName,dbPassWord);
        return con;
    }
    
    public void closeCon(Connection con)throws Exception{
        if(con!=null){
            con.close();
        }
    }
    //测试
    public static void main(String[] args) {
        DbUtil dbUtil=new DbUtil();
        try {
            dbUtil.getCon();
            System.out.println("数据库连接成功");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("连接失败");
        }
    }

}

UserDao.java

package com.zlj.dao;
/**
 * sql语句,dao(数据访问对象)
 */
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.zlj.pojos.User;

public class UserDao {
    public boolean login(Connection con,User user)throws Exception{
        String sql="select * from t_user where username=? and password=?";
        PreparedStatement pstmt = con.prepareStatement(sql);//执行sql语句
        pstmt.setString(1, user.getUserName());
        pstmt.setString(2, user.getPassWord());
        ResultSet rs=pstmt.executeQuery();
        if(rs.next()){
            return true;
        }
        return false;
    }
    
    public int register(Connection con,User user)throws Exception{
        String sql="insert into t_user value(null,?,?)";
        PreparedStatement pstmt = con.prepareStatement(sql);//执行sql语句
        pstmt.setString(1, user.getUserName());
        pstmt.setString(2, user.getPassWord());
        return pstmt.executeUpdate();
    }

}

LoginServlet.java

package com.zlj.web;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;

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

import com.zlj.dao.UserDao;
import com.zlj.pojos.User;
import com.zlj.util.DbUtil;

public class LoginServlet extends HttpServlet {

    DbUtil dbUtil=new DbUtil();
    UserDao userDao=new UserDao();
    /**
     * Constructor of the object.
     */
    public LoginServlet() {
        super();
    }

    /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    /**
     * The doGet method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to get.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">");
        out.println("<HTML>");
        out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println("  <BODY>");
        out.print("    This is ");
        out.print(this.getClass());
        out.println(", using the GET method");
        out.println("  </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }

    /**
     * The doPost method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to post.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String userName=request.getParameter("userName");
        String passWord=request.getParameter("passWord");//客户端的请求
        System.out.println(userName);
        System.out.println(passWord);
        User user=new User(userName,passWord);
        Connection con=null;
        try {
            con=dbUtil.getCon();
            if(!userDao.login(con, user)){
                System.out.println("用户密码错误");
                response.sendRedirect("Error.jsp");
            }else{
                System.out.println("登录成功");
                response.sendRedirect("Main.jsp");//服务器的响应
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            try {
                dbUtil.closeCon(con);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
    }

    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occurs
     */
    public void init() throws ServletException {
        // Put your code here
    }

}

RegisterServlet.java

package com.zlj.web;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;

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

import com.zlj.dao.UserDao;
import com.zlj.pojos.User;
import com.zlj.util.DbUtil;

public class RegisterServlet extends HttpServlet {
    DbUtil dbUtil=new DbUtil();
    UserDao userDao=new UserDao();

    /**
     * Constructor of the object.
     */
    public RegisterServlet() {
        super();
    }

    /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    /**
     * The doGet method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to get.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">");
        out.println("<HTML>");
        out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println("  <BODY>");
        out.print("    This is ");
        out.print(this.getClass());
        out.println(", using the GET method");
        out.println("  </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }

    /**
     * The doPost method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to post.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String userName=request.getParameter("userName");
        String passWord=request.getParameter("passWord");
        System.out.println(userName);
        System.out.println(passWord);
        Connection con=null;
        try {
            int saveNums=0;
            con=dbUtil.getCon();
            User user=new User(userName,passWord);
            saveNums=userDao.register(con, user);
            if(saveNums==0){
                System.out.println("fail register");
            }else{
                System.out.println("victory register");
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            try {
                dbUtil.closeCon(con);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occurs
     */
    public void init() throws ServletException {
        // Put your code here
    }

}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>com.zlj.web.LoginServlet</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>RegisterServlet</servlet-name>
        <servlet-class>com.zlj.web.RegisterServlet</servlet-class>
    </servlet>


    <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/index</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>RegisterServlet</servlet-name>
        <url-pattern>/register</url-pattern>
    </servlet-mapping>

</web-app>

不过首先要建一张表哟

 下面是jdbc的实际操作说明网址:http://www.runoob.com/w3cnote/jdbc-use-guide.html

原文地址:https://www.cnblogs.com/zoulingjin/p/8461524.html