日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java web登录action_JavaWeb中登陆功能

發(fā)布時(shí)間:2023/12/10 java 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java web登录action_JavaWeb中登陆功能 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

首先我們要JavaWeb登陸的基本流程:JSP頁(yè)面發(fā)送請(qǐng)求——>Servlet——>Servlet通過(guò)調(diào)用方法從數(shù)據(jù)庫(kù)中得到數(shù)據(jù)并將結(jié)果返回頁(yè)面

我們先建立三個(gè)jsp頁(yè)面,包括login.jsp(登陸頁(yè)面)、index.jsp(顯示登陸成功后的信息)、error.jsp(登錄失敗的頁(yè)面),其中后兩個(gè)頁(yè)面的內(nèi)容可以隨意寫(xiě),而login.jsp頁(yè)面的主要內(nèi)容如下:

1

2 用戶名:

3 密碼:

4

5

在login.jsp文件的開(kāi)頭我們需要將pageEncoding="ISO-8859-1"改為pageEncoding="utf-8"(同時(shí)不要忘記設(shè)置開(kāi)發(fā)工具的編碼格式,不然jsp頁(yè)面會(huì)顯示亂碼)

根據(jù)用戶名和密碼兩個(gè)屬性我們建立相應(yīng)的實(shí)體類,并添加get和set方法,代碼如下:

1 public classUser {2 privateString userName;3 privateString password;4 publicString getUserName() {5 returnuserName;6 }7 public voidsetUserName(String userName) {8 this.userName =userName;9 }10 publicString getPassword() {11 returnpassword;12 }13 public voidsetPassword(String password) {14 this.password =password;15 }16 }

而jsp頁(yè)面中的action=“LoginServlet”是指將請(qǐng)求發(fā)送到Servlet處理。接下來(lái)我們轉(zhuǎn)到Servlet來(lái)進(jìn)行處理:

1 importjava.io.IOException;2

3 importjavax.servlet.ServletException;4 importjavax.servlet.http.HttpServlet;5 importjavax.servlet.http.HttpServletRequest;6 importjavax.servlet.http.HttpServletResponse;7

8 importcom.test.dao.UserDao;9 //創(chuàng)建時(shí)為Servlet而不是Class,需要在web.xml中進(jìn)行配置,配置的代碼Myeclipse將自動(dòng)生成

10 public class LoginServlet extendsHttpServlet {11 //創(chuàng)建UserDao的對(duì)象,以便于查詢數(shù)據(jù)庫(kù)

12 UserDao userDao=newUserDao();13 //以下doGet方法和doPost方法分別對(duì)應(yīng)form表單中的method="get"和method="post"

14 public voiddoGet(HttpServletRequest request, HttpServletResponse response)15 throwsServletException, IOException {16 }17 public voiddoPost(HttpServletRequest request, HttpServletResponse response)18 throwsServletException, IOException {19 //利用getParameter方法獲取到前臺(tái)文本框中輸入的值,其中括號(hào)內(nèi)的內(nèi)容為標(biāo)簽中的name屬性

20 String userName=request.getParameter("userName");21 String password=request.getParameter("password");22 //調(diào)用UserDao中的getSelect方法并獲取到返回值

23 boolean flag=userDao.getSelect(userName, password);24 //若用戶名和密碼存在則轉(zhuǎn)發(fā)到index.jsp頁(yè)面,否則重定向到error.jsp頁(yè)面

25 if(flag) {26 request.getRequestDispatcher("index.jsp").forward(request, response);27 }28 else

29 response.sendRedirect("error.jsp");30 }31

32 }

注釋 中已經(jīng)說(shuō)的很明白了,就不再重復(fù)了,可以看看第26行和29行,其中26行是轉(zhuǎn)發(fā),29行是重定向,感興趣的小伙伴可以查查兩者的區(qū)別。剩下的一部分就是我們之前提到過(guò)的關(guān)于數(shù)據(jù)庫(kù)的查詢操作了,我們?cè)?3行進(jìn)行了調(diào)用,下面我們完成調(diào)用的方法:

1 packagecom.test.dao;2

3 importjava.sql.Connection;4 importjava.sql.DriverManager;5 importjava.sql.PreparedStatement;6 importjava.sql.ResultSet;7

8 public classUserDao {9 //連接數(shù)據(jù)庫(kù)的代碼

10 publicConnection getCon() {11 //數(shù)據(jù)庫(kù)連接名稱

12 String username="root";13 //數(shù)據(jù)庫(kù)連接密碼

14 String password="";15 String driver="com.mysql.jdbc.Driver";16 //其中test為數(shù)據(jù)庫(kù)名稱

17 String url="jdbc:mysql://localhost:3306/test";18 Connection conn=null;19 try{20 Class.forName(driver);21 conn=(Connection) DriverManager.getConnection(url,username,password);22 }catch(Exception e){23 e.printStackTrace();24 }25 returnconn;26 }27 //進(jìn)行查詢的方法,若含有滿足條件的數(shù)據(jù)則返回true

28 public booleangetSelect(String userName,String password) {29 boolean flag=false;30 String sql = "select * from user where userName='"+userName+"' and password='"+password+"'";31 Connection conn =getCon();32 PreparedStatement pst = null;33 try{34 pst =(PreparedStatement) conn.prepareStatement(sql);35 ResultSet rs =pst.executeQuery();36 if(rs.next()) {37 flag=true;38 }39 } catch(Exception e) {40 }41 returnflag;42 }43 }

在這個(gè)方法中我們首先連接數(shù)據(jù)庫(kù),然后在查詢的方法中傳入從jsp頁(yè)面獲取到的userName和password,判斷數(shù)據(jù)庫(kù)中是否存在此用戶名和密碼的用戶,如果存在則返回true,否則返回false(不要忘記導(dǎo)入數(shù)據(jù)庫(kù)鏈接的包)。

至于數(shù)據(jù)庫(kù)中的字段則參照實(shí)體類User建立即可,即包含userName和password兩個(gè)屬性,如果數(shù)據(jù)庫(kù)鏈接還有問(wèn)題的請(qǐng)參照之前的關(guān)于數(shù)據(jù)庫(kù)部分的隨筆。

最后看一下web.xml中的配置:

1 <?xml version="1.0" encoding="UTF-8"?>

2

3

4 LoginServlet

5 com.test.servlet.LoginServlet

6

7

8

9 LoginServlet

10 /LoginServlet

11

12

其中中的可以隨意寫(xiě),只需要保證上下兩部分相同即可。

然后是是自己定義的Servlet的路徑(包含包名),最后是,里面的內(nèi)容也可以隨意寫(xiě),但是jsp頁(yè)面中form表單的action屬性必須與此名稱相同(action中不包含"/")

最后我們需要將web項(xiàng)目發(fā)布到tomcat中然后在瀏覽器輸入:http://localhost:8080/項(xiàng)目名稱/login.jsp就可以進(jìn)行訪問(wèn)并登陸了。

這只是一個(gè)簡(jiǎn)單的應(yīng)用,目的是為了幫助各位小伙伴了解jsp+servlet開(kāi)發(fā)的基本流程,當(dāng)然我們?cè)趯?shí)際開(kāi)發(fā)的過(guò)程中會(huì)進(jìn)行更為精細(xì)的分割,包括接口,實(shí)現(xiàn)類等。

希望大家好好學(xué)習(xí),天天向上!!(Study hard and make progress every day!!)

總結(jié)

以上是生活随笔為你收集整理的java web登录action_JavaWeb中登陆功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。