文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

javaWeb连接数据库实现简单登陆注册功能的全过程

2024-04-02 19:55

关注

实现步骤

创建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="Register.jsp" rel="external nofollow" >注册</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页面里判断之后跳转到登陆页面

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

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

总结

到此这篇关于javaWeb连接数据库实现简单登陆注册功能的文章就介绍到这了,更多相关javaWeb登陆注册功能内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯