目录
  • 实现步骤
    • jar包
    • 数据库的驱动以及用户密码
    • jsp页面
    • 注册页面
    • 登陆成功和失败的页面
    • 工具类
    • 登陆的类
    • 注册的类
    • 两个映射路径
  • 思路
    • 登陆
    • 注册
  • 总结

    实现步骤

    创建maven项目 配置Tomcat 这些都不细说了

    jar包

    因为要连接数据库所以一定要在maven项目下的xml文件下配置数据库的jar包依赖

        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.28</version>
        </dependency>
    

    这个千万不要忘了 重重之重

    数据库的驱动以及用户密码

    package com.li.Servlet.blit;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    public class JDBC {
        private static String url = null;
        private static String name = null;
        private static String password = null;
    
        static {
            try {
                Class.forName ( "com.mysql.cj.jdbc.Driver" );
            } catch (Exception e) {
                e.printStackTrace ( );
            }
            url = "jdbc:mysql://localhost:3306/zhiqingli?useUnicode=true&characterEncoding=utf8&useSSL=true";
            name = "root";
            password = "root";
        }
    
        public static Connection getConn() throws Exception {
            return DriverManager.getConnection ( url, name, password );
        }
    
        public static void release(Connection conn, PreparedStatement pst, ResultSet res) {
            try {
                if (res != null) {
                    res.close ( );
                }
                if (pst != null) {
                    pst.close ( );
                }
                if (conn != null) {
                    conn.close ( );
                }
            } catch (Exception e) {
                e.printStackTrace ( );
            }
        }
    }
    

    这个类可以直接复制使用,但要改成自己的数据库名字

    jsp页面

    登陆页面

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <body>
    <form action="${pageContext.request.contextPath}/test" method="get">
       <h3>账号:<input type="text" name="account"></h3>
       <h3>密码:<input type="password" name="paw"></h3>
       <h3><input type="submit" value="登陆"><a href="https://www.freexyz.cn/dev/Register.jsp" rel="external nofollow"  target="_blank">注册</a></h3>
    </form>
    </body>
    </html>

    注册页面

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
       <title>注册</title>
    </head>
    <body>
    <form action="${pageContext.request.contextPath}/res" method="post">
       <h3>账号:<input type="text" placeholder="请输入注册的账号" name="number"></h3>
       <h3>密码:<input type="password" placeholder="请输入注册的密码" name="word" id="one"></h3>
       <h3>确认密码:<input type="password" placeholder="确认一遍密码" name="u" id="two"></h3>
       <input type="submit" value="提交" οnclick="show()">
    </form>
    <Script>
    function show(){
        var one = document.getElementById("one").value;
        var two = document.getElementById("two").value;
        if (one === two){
            alert("注册成功");
            window.open("index.jsp")
        }else {
            alert("两次输入的密码不一致");
        }
    }
    </Script>
    </body>
    </html>
    

    登陆成功和失败的页面

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
      <title>成功页面</title>
    </head>
    <body>
    <h1>登陆成功,感谢使用</h1>
    </body>
    </html>
    
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
      <title>失败页面</title>
    </head>
    <body>
    <h1>登陆失败,账号密码找不到或者错误</h1>
    </body>
    </html>
    

    工具类

    工具人上线

    //登陆使用的方法
    Connection conn = null;
      PreparedStatement pst = null;
      ResultSet res = null;
      boolean isQ;
       public boolean Select(String username,String paw)  {
          try {
              conn = JDBC.getConn ( );
              String sql = "SELECT * FROM `username` where `name`=? and `password`=?";
              pst = conn.prepareStatement (sql);
              pst.setObject ( 1,username );
              pst.setObject ( 2,paw );
              res = pst.executeQuery ( );
              if (res.next ()){
                  isQ = true;
                  System.out.println (res.getObject ( "name" )+" "+res.getObject ( "password" ));
                  System.out.println ("登陆成功");
              }else {
                  isQ = false;
                  System.out.println ("登陆失败");
              }
          }catch (Exception e){
              e.printStackTrace ();
          }finally {
              JDBC.release ( conn,pst,res );
          }
          return isQ;
      }
      //注册用的方法
       public void addUser(String name,String paw){
          try {
              conn = JDBC.getConn ( );
              String sql = "insert into `username`(`name`,`password`) values (?,?)";
              pst = conn.prepareStatement ( sql );
              pst.setObject ( 1,name );
              pst.setObject ( 2,paw );
              int i = pst.executeUpdate ( );
              if (i>0){
                  System.out.println ("添加成功");
              }
          }catch (Exception e){
              e.printStackTrace ();
          }finally {
              JDBC.release ( conn,pst,res );
          }
      }
    

    登陆的类

    package com.li.Servlet.test;
    
    import com.li.Servlet.blit.Way;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    public class index extends HttpServlet {
      @Override
      protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
          String account = req.getParameter ( "account" );
          String paw = req.getParameter ( "paw" );
          Way way = new Way ();
          if (way.Select ( account,paw )){
              resp.sendRedirect ( "/s4/true.jsp" );
          }else {
              resp.sendRedirect ( "/s4/false.jsp" );
          }
      }
    
      @Override
      protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
          doGet ( req, resp );
      }
    }
    

    注册的类

    package com.li.Servlet.test;
    
    import com.li.Servlet.blit.Way;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    public class index02 extends HttpServlet {
      @Override
      protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
          String number = req.getParameter ( "number" );
          String word = req.getParameter ( "word" );
           String u = req.getParameter ( "u" );
        if (word.equals ( u )){
              Way way = new Way ( );
              way.addUser ( number,word );
          }else {
              //当两次密码不一致的时候浏览器响应给用户当前注册的页面
              resp.sendRedirect ( "/s4/Register.jsp" );
          }
      }
    
      @Override
      protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
          doGet ( req, resp );
      }
    }
    

    两个映射路径

    <!--登陆-->
      <servlet>
          <servlet-name>test</servlet-name>
          <servlet-class>com.li.Servlet.test.index</servlet-class>
      </servlet>
      <servlet-mapping>
          <servlet-name>test</servlet-name>
          <url-pattern>/test</url-pattern>
      </servlet-mapping>
    <!--注册-->
      <servlet>
          <servlet-name>res</servlet-name>
          <servlet-class>com.li.Servlet.test.index02</servlet-class>
      </servlet>
      <servlet-mapping>
          <servlet-name>res</servlet-name>
          <url-pattern>/res</url-pattern>
      </servlet-mapping>
    

    思路

    登陆

    这个就是用户输入的账号和密码看看数据库里有没有,有的话就重定向到成功或这失败的页面,相当于浏览器响应给用户的请求结果

    注册

    相当于就是往数据库里面添加一个账号或者密码然返回到登陆页面

    这里我在注册类面没有用到重定向,而是在注册的jsp页面里判断之后跳转到登陆页面

    注意:这里为什么没在注册类里面用重定向

    因为使用重定向之后就直接返回了登陆类运行的结果

    总结

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。