" />

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

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

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

做一個(gè)小案例順便復(fù)習(xí)一下jdbc的知識(shí)

一、需求:

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

二、先復(fù)習(xí)一下JDBC

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

1.概述:

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

2.開發(fā)步驟:

2.1.導(dǎo)jar包:

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

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

注冊(cè)驅(qū)動(dòng)—>

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

獲取連接—>

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

寫sql語(yǔ)句—>

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

獲取傳輸器—>

PreparedStatement preparedStatement = connection.prepareStatement(sql);

設(shè)置值—>

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

獲取結(jié)果集—>

ResultSet resultSet = preparedStatement.executeQuery();

解析結(jié)果集—>

resultSet.next()

三、代碼實(shí)現(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ù)庫(kù)
        try {
            //3.1注冊(cè)驅(qū)動(dòng)
            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設(shè)置值
            preparedStatement.setObject(1,username);
            preparedStatement.setObject(2,pwd);
            //3.6返回結(jié)果集
            resultSet = preparedStatement.executeQuery();
            if (resultSet.next()){
                //重定位,如果結(jié)果返回true,"跳轉(zhuǎn)"到success.html
                response.sendRedirect("success.html");
            }else{
                String urls = "login.html";
                response.getWriter().write("用戶不存在"+""+"<a href = '"+urls+"'>點(diǎn)擊重新登錄</a>");
            }

        } catch (Exception e) {
            e.printStackTrace();
            //3.6關(guān)閉資源
        }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ù)庫(kù)數(shù)據(jù)

5.登錄成功頁(yè)面:

6.登錄失敗界面:

7.登錄界面:

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

相關(guān)文章

  • MyBatis-Plus自定義通用的方法實(shí)現(xiàn)

    MyBatis-Plus自定義通用的方法實(shí)現(xiàn)

    MP自帶的條件構(gòu)造器雖然很強(qiáng)大,有時(shí)候也避免不了寫稍微復(fù)雜一點(diǎn)業(yè)務(wù)的sql,本文主要介紹了MyBatis-Plus自定義通用的方法實(shí)現(xiàn),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • SpringMVC基于注解的Controller詳解

    SpringMVC基于注解的Controller詳解

    這篇文章主要介紹了SpringMVC基于注解的Controller詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • Java自旋鎖及自旋的好處詳解

    Java自旋鎖及自旋的好處詳解

    這篇文章主要介紹了Java自旋鎖及自旋的好處詳解,自旋就是自己在這里不停地循環(huán),直到目標(biāo)達(dá)成,而不像普通的鎖那樣,如果獲取不到鎖就進(jìn)入阻塞,需要的朋友可以參考下
    2023-10-10
  • java中&與&&的區(qū)別

    java中&與&&的區(qū)別

    本文主要介紹了java中&與&&的區(qū)別,具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • RPC框架之Thrift的入門教程

    RPC框架之Thrift的入門教程

    Thrift是一個(gè)跨語(yǔ)言的服務(wù)部署框架,主要用于各個(gè)服務(wù)之間的RPC通信,支持跨語(yǔ)言,下面小編就來和大家講講Thrift框架的具體使用,希望對(duì)大家有所幫助
    2023-10-10
  • java的異常與處理機(jī)制分析【附面試題】

    java的異常與處理機(jī)制分析【附面試題】

    這篇文章主要介紹了java的異常與處理機(jī)制,結(jié)合實(shí)例形式分析了Java異常與處理機(jī)制的概念、原理、相關(guān)操作技巧與注意事項(xiàng),并附帶面試題分析供大家參考,需要的朋友可以參考下
    2019-05-05
  • Mybatis配置映射文件中parameterType的用法講解

    Mybatis配置映射文件中parameterType的用法講解

    這篇文章主要介紹了Mybatis配置映射文件中parameterType的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 阿里規(guī)范:為何boolean類型變量命名禁用is開頭

    阿里規(guī)范:為何boolean類型變量命名禁用is開頭

    這篇文章主要給大家介紹了關(guān)于阿里規(guī)范:為何boolean類型變量命名禁用is開頭的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java中MapStruct入門使用及對(duì)比

    Java中MapStruct入門使用及對(duì)比

    MapStruct是一個(gè)Java注解處理器框架,用于簡(jiǎn)化Java Bean之間的映射,本文主要介紹了Java中MapStruct入門使用及對(duì)比,感興趣的可以了解一下
    2023-12-12
  • Java實(shí)現(xiàn)簡(jiǎn)單推箱子游戲

    Java實(shí)現(xiàn)簡(jiǎn)單推箱子游戲

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)推箱子游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06

最新評(píng)論

色达县| 林州市| 唐河县| 连山| 陵川县| 金湖县| 四子王旗| 江西省| 烟台市| 安福县| 潮州市| 密山市| 金阳县| 丰城市| 新乡县| 彰化县| 盐池县| 扶沟县| 平和县| 德钦县| 通海县| 阿合奇县| 寿宁县| 万宁市| 昭觉县| 沽源县| 舞钢市| 景洪市| 青阳县| 湘潭市| 汝城县| 西乌珠穆沁旗| 林西县| 宣城市| 普兰店市| 龙井市| 保山市| 那曲县| 北票市| 东山县| 凤山县|