• 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

  • 相关阅读:
    PipeCAD轴网建模
    湖泊流域相关数据
    使用Kettle实现不同数据之间同步
    Azure DevOps Server 2020 补丁
    从SVN迁移代码到Azure DevOps Server
    SpringCloud中集成Sleuth实现链路追踪
    SpringCloudConfig集成Bus消息总线实现动态刷新配置(全局广播和定点通知)
    SpringCloudAlibaba中使用Nacos实现服务注册与发现(从实例入手)
    SpringCloudAlibaba中使用Sentinel实现流量控制以及流控规则详解
    Geoserver中点击TileLayers报错问题的一种解决办法
  • 原文地址:https://www.cnblogs.com/zoulingjin/p/8461524.html
Copyright © 2020-2023  润新知