最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javaWeb連接數(shù)據(jù)庫實現(xiàn)簡單登陸注冊功能的全過程

 更新時間:2022年06月17日 10:08:25   作者:莉茉_Q  
初學(xué)javaWeb,老師留下一小作業(yè),用JAVA實現(xiàn)與服務(wù)器端交互,實現(xiàn)登錄和注冊功能,下面這篇文章主要給大家介紹了關(guān)于javaWeb連接數(shù)據(jù)庫實現(xiàn)簡單登陸注冊功能的相關(guān)資料,需要的朋友可以參考下

實現(xiàn)步驟

創(chuàng)建maven項目 配置Tomcat 這些都不細(xì)說了

jar包

因為要連接數(shù)據(jù)庫所以一定要在maven項目下的xml文件下配置數(shù)據(jù)庫的jar包依賴

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

這個千萬不要忘了 重重之重

數(shù)據(jù)庫的驅(qū)動以及用戶密碼

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 ( );
        }
    }
}

這個類可以直接復(fù)制使用,但要改成自己的數(shù)據(jù)庫名字

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"  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>確認(rèn)密碼:<input type="password" placeholder="確認(rèn)一遍密碼" 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 {
          //當(dāng)兩次密碼不一致的時候瀏覽器響應(yīng)給用戶當(dāng)前注冊的頁面
          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>

思路

登陸

這個就是用戶輸入的賬號和密碼看看數(shù)據(jù)庫里有沒有,有的話就重定向到成功或這失敗的頁面,相當(dāng)于瀏覽器響應(yīng)給用戶的請求結(jié)果

注冊

相當(dāng)于就是往數(shù)據(jù)庫里面添加一個賬號或者密碼然返回到登陸頁面

這里我在注冊類面沒有用到重定向,而是在注冊的jsp頁面里判斷之后跳轉(zhuǎn)到登陸頁面

注意:這里為什么沒在注冊類里面用重定向

因為使用重定向之后就直接返回了登陸類運(yùn)行的結(jié)果

總結(jié)

到此這篇關(guān)于javaWeb連接數(shù)據(jù)庫實現(xiàn)簡單登陸注冊功能的文章就介紹到這了,更多相關(guān)javaWeb登陸注冊功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解pom.xml中maven profile的激活方式

    詳解pom.xml中maven profile的激活方式

    本文主要介紹了詳解pom.xml中maven profile的激活方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Java連接sftp服務(wù)器實現(xiàn)上傳下載功能

    Java連接sftp服務(wù)器實現(xiàn)上傳下載功能

    這篇文章主要介紹了java連接sftp服務(wù)器實現(xiàn)上傳下載,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Struts2 OGNL表達(dá)式實例詳解

    Struts2 OGNL表達(dá)式實例詳解

    這篇文章主要介紹了Struts2 OGNL表達(dá)式實例詳解,相關(guān)實例代碼,需要的朋友可以參考。
    2017-09-09
  • springboot打包部署到linux服務(wù)器的方法

    springboot打包部署到linux服務(wù)器的方法

    這篇文章主要介紹了springboot打包部署到linux服務(wù)器的方法,通過實例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • 詳解Spring Boot 中實現(xiàn)定時任務(wù)的兩種方式

    詳解Spring Boot 中實現(xiàn)定時任務(wù)的兩種方式

    這篇文章主要介紹了Spring Boot 中實現(xiàn)定時任務(wù)的兩種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • SpringMVC互聯(lián)網(wǎng)軟件架構(gòu)REST使用詳解

    SpringMVC互聯(lián)網(wǎng)軟件架構(gòu)REST使用詳解

    這篇文章主要為大家詳細(xì)介紹了SpringMVC互聯(lián)網(wǎng)軟件架構(gòu)REST的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Spring Security實現(xiàn)微信公眾號網(wǎng)頁授權(quán)功能

    Spring Security實現(xiàn)微信公眾號網(wǎng)頁授權(quán)功能

    這篇文章主要介紹了Spring Security中實現(xiàn)微信網(wǎng)頁授權(quán),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • 關(guān)于mybatis的一級緩存和二級緩存的那些事兒

    關(guān)于mybatis的一級緩存和二級緩存的那些事兒

    MyBatis自帶的緩存有一級緩存和二級緩存,今天我們就來學(xué)習(xí)一下,文中有非常詳細(xì)的總結(jié),對正在學(xué)習(xí)的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • SpringBoot中實現(xiàn)多數(shù)據(jù)源連接和切換的方案

    SpringBoot中實現(xiàn)多數(shù)據(jù)源連接和切換的方案

    在Spring Boot中,通過AbstractRoutingDataSource實現(xiàn)多數(shù)據(jù)源連接是一種常見的做法,這種技術(shù)允許你在運(yùn)行時動態(tài)地切換數(shù)據(jù)源,從而支持對多個數(shù)據(jù)庫的操作,本文給大家介紹了SpringBoot中實現(xiàn)多數(shù)據(jù)源連接和切換的方案,需要的朋友可以參考下
    2024-11-11
  • 使用AOP的@Around后無返回值的解決

    使用AOP的@Around后無返回值的解決

    這篇文章主要介紹了使用AOP的@Around后無返回值的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02

最新評論

漳平市| 安溪县| 扶风县| 保亭| 东乌珠穆沁旗| 蓬莱市| 和硕县| 梅河口市| 响水县| 平阳县| 江阴市| 濮阳县| 井陉县| 甘肃省| 灌南县| 井研县| 通辽市| 勃利县| 东源县| 资源县| 平邑县| 灵寿县| 连山| 甘肃省| 塔城市| 墨脱县| 佛山市| 明星| 普兰店市| 勐海县| 高碑店市| 南乐县| 吉林省| 公安县| 张家界市| 开远市| 维西| 肃宁县| 刚察县| 屏东县| 孝义市|