" />

欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Servlet連接數(shù)據(jù)庫實現(xiàn)用戶登錄的實現(xiàn)示例

 更新時間:2022年06月13日 15:06:01   作者:xiaoweiwei99  
本文主要介紹了Servlet連接數(shù)據(jù)庫實現(xiàn)用戶登錄的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

做一個小案例順便復習一下jdbc的知識

一、需求:

用戶在瀏覽器輸入用戶名和密碼,如果數(shù)據(jù)庫中有數(shù)據(jù),提醒用戶登錄成功,如果沒有數(shù)據(jù),提醒用戶重新登錄

二、先復習一下JDBC

今天用的時候有些細節(jié)忘了,知識還是需要多次復習啊,并不是說學過就是自己的。

1.概述:

用java程序操作數(shù)據(jù)庫的一個技術,是java程序連接數(shù)據(jù)庫的一套標準,本質(zhì)上就是一堆API。

2.開發(fā)步驟:

2.1.導jar包:

對于java項目,直接將jar包復制到項目然后解析jar(add as library)就可以用了;對于web項目,需要將jar包放到tomcat的lib目c錄下,在web項目中,當Class.forName(“com.mysql.jdbc.Driver”);時idea是不會去查找字符串,不會去查找驅(qū)動的。所以只需要把mysql-connector-java-5.1.7-bin.jar拷貝到tomcat下lib目錄就可以了。今天這里出了問題,找到這種解決方案。

2.2.步驟:具體步驟都在代碼里

注冊驅(qū)動—>

Class.forName(“com.mysql.jdbc.Driver”);

獲取連接—>

String url = “協(xié)議://IP地址:端口號/數(shù)據(jù)庫的名字/”;
String url = “jdbc:mysql://localhost:3306/person”;
Connection c = DriverManager.getConnection(url, “root”, “root”);

寫sql語句—>

String sql = "select * from user where name = and pwd = ";

獲取傳輸器—>

PreparedStatement preparedStatement = connection.prepareStatement(sql);

設置值—>

preparedStatement.setObject(1,username);
preparedStatement.setObject(2,pwd);

獲取結果集—>

ResultSet resultSet = preparedStatement.executeQuery();

解析結果集—>

resultSet.next()

三、代碼實現(xiàn):

1.登錄界面代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用戶登錄界面</title>
</head>
<body>
<h3 style="text-align: center">用戶登錄</h3>
 <form action="userLogin" method="post" style="text-align: center" >
     用戶名:<input type="text" name="username"><br/>
     <br/>
     密&nbsp;&nbsp;&nbsp;&nbsp;碼:<input type="password" name="pwd"><br/>
     <br>
     <input type="submit" value="提交">
 </form>
</body>
</html>

2.登錄成功界面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>成功登錄界面</title>
</head>
<body>
<h1> 恭喜登錄成功?。?!</h1>
</body>
</html>

3.servlet代碼:

package cn.tedu;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.*;
//配置訪問路徑
@WebServlet(urlPatterns = "/userLogin")
public class ServletLogin extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.解決中文亂碼
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset = utf-8");
        //2.獲取用戶輸入的名字和密碼
        String username = request.getParameter("username");
        String pwd = request.getParameter("pwd");
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        //3.連接數(shù)據(jù)庫
        try {
            //3.1注冊驅(qū)動
            Class.forName("com.mysql.jdbc.Driver");
            //3.2獲取連接
            String url = "jdbc:mysql://localhost:3306/person";
            connection = DriverManager.getConnection(url,"root","root");
            //3.3寫sql
            String sql = "select * from user where name = ? and pwd = ?";
            //3.4獲取傳輸器
            preparedStatement = connection.prepareStatement(sql);
            //3.5設置值
            preparedStatement.setObject(1,username);
            preparedStatement.setObject(2,pwd);
            //3.6返回結果集
            resultSet = preparedStatement.executeQuery();
            if (resultSet.next()){
                //重定位,如果結果返回true,"跳轉(zhuǎn)"到success.html
                response.sendRedirect("success.html");
            }else{
                String urls = "login.html";
                response.getWriter().write("用戶不存在"+""+"<a href = '"+urls+"'>點擊重新登錄</a>");
            }

        } catch (Exception e) {
            e.printStackTrace();
            //3.6關閉資源
        }finally {
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                preparedStatement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

4.數(shù)據(jù)庫數(shù)據(jù)

5.登錄成功頁面:

6.登錄失敗界面:

7.登錄界面:

 到此這篇關于Servlet連接數(shù)據(jù)庫實現(xiàn)用戶登錄的實現(xiàn)示例的文章就介紹到這了,更多相關Servle 用戶登錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Maven的pom.xml中resources標簽的用法

    Maven的pom.xml中resources標簽的用法

    本文主要介紹了Maven的pom.xml中resources標簽的用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Apache?SkyWalking?修復TTL?timer?失效bug詳解

    Apache?SkyWalking?修復TTL?timer?失效bug詳解

    這篇文章主要為大家介紹了Apache?SkyWalking?修復TTL?timer?失效bug詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • webservice實現(xiàn)springboot項目間接口調(diào)用與對象傳遞示例

    webservice實現(xiàn)springboot項目間接口調(diào)用與對象傳遞示例

    本文主要介紹了webservice實現(xiàn)springboot項目間接口調(diào)用與對象傳遞示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • spring boot實現(xiàn)軟刪除的示例代碼

    spring boot實現(xiàn)軟刪除的示例代碼

    這篇文章主要介紹了spring boot實現(xiàn)軟刪除的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Java如何實現(xiàn)HTTP斷點續(xù)傳功能

    Java如何實現(xiàn)HTTP斷點續(xù)傳功能

    其實斷點續(xù)傳的原理很簡單,就是在Http的請求上和一般的下載有所不同而已,本文將詳細介紹Java如何實現(xiàn)HTTP斷點續(xù)傳功能,需要的朋友可以參考下
    2012-11-11
  • 淺談Spring中幾個PostProcessor的區(qū)別與聯(lián)系

    淺談Spring中幾個PostProcessor的區(qū)別與聯(lián)系

    這篇文章主要介紹了淺談Spring中幾個PostProcessor的區(qū)別與聯(lián)系,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringCloud-Config分布式配置代碼示例

    SpringCloud-Config分布式配置代碼示例

    這篇文章主要介紹了SpringCloud-Config分布式配置代碼示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • 關于Spring源碼是如何解決Bean的循環(huán)依賴

    關于Spring源碼是如何解決Bean的循環(huán)依賴

    這篇文章主要介紹了關于Spring源碼是如何解決Bean的循環(huán)依賴,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java ReentrantLock詳解

    java ReentrantLock詳解

    這篇文章主要介紹了java ReentrantLock,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Mybatis 實現(xiàn)一個搜索框?qū)Χ鄠€字段進行模糊查詢

    Mybatis 實現(xiàn)一個搜索框?qū)Χ鄠€字段進行模糊查詢

    這篇文章主要介紹了Mybatis 實現(xiàn)一個搜索框?qū)Χ鄠€字段進行模糊查詢,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01

最新評論