java web登錄action_JavaWeb中登陸功能

首先我們要JavaWeb登陸的基本流程:JSP頁面發送請求——>Servlet——>Servlet通過調用方法從數據庫中得到數據并將結果返回頁面

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

1

2 用戶名:

3 密碼:

4

5

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

根據用戶名和密碼兩個屬性我們建立相應的實體類,并添加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頁面中的action=“LoginServlet”是指將請求發送到Servlet處理。接下來我們轉到Servlet來進行處理:

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 //創建時為Servlet而不是Class,需要在web.xml中進行配置,配置的代碼Myeclipse將自動生成

10 public class LoginServlet extendsHttpServlet {11 //創建UserDao的對象,以便于查詢數據庫

12 UserDao userDao=newUserDao();13 //以下doGet方法和doPost方法分別對應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方法獲取到前臺文本框中輸入的值,其中括號內的內容為標簽中的name屬性

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

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

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

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

32 }

注釋 中已經說的很明白了,就不再重復了,可以看看第26行和29行,其中26行是轉發,29行是重定向,感興趣的小伙伴可以查查兩者的區別。剩下的一部分就是我們之前提到過的關于數據庫的查詢操作了,我們在23行進行了調用,下面我們完成調用的方法:

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 //連接數據庫的代碼

10 publicConnection getCon() {11 //數據庫連接名稱

12 String username="root";13 //數據庫連接密碼

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

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 //進行查詢的方法,若含有滿足條件的數據則返回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 }

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

至于數據庫中的字段則參照實體類User建立即可,即包含userName和password兩個屬性,如果數據庫鏈接還有問題的請參照之前的關于數據庫部分的隨筆。

最后看一下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

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

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

最后我們需要將web項目發布到tomcat中然后在瀏覽器輸入:http://localhost:8080/項目名稱/login.jsp就可以進行訪問并登陸了。

這只是一個簡單的應用,目的是為了幫助各位小伙伴了解jsp+servlet開發的基本流程,當然我們在實際開發的過程中會進行更為精細的分割,包括接口,實現類等。

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/259662.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259662.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259662.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android Download Manager用法大全

http://www.trinea.cn/android/android-downloadmanager/ http://www.trinea.cn/android/android-downloadmanager-pro/轉載于:https://www.cnblogs.com/soaringEveryday/articles/4135204.html

Chrome瀏覽器無法觀看視頻,一直提示“adobe flash player 已過期” ?

很多新用戶在安裝了Chrome瀏覽器或者更新過的的時候&#xff0c;經常提示“ adobe flash player 已過期”的問題&#xff0c;反復提示&#xff0c;導致無法觀看視頻。于是從網上也找了很多辦法都沒有解決。這里給大家提供一個最完美的解決方案。經親自測試&#xff0c;完美解決…

關于JVM的垃圾回收GC的一些記錄

目錄 一、JVM內存區域劃分 二、從一個基本問題開始引入垃圾回收 三、GC作用的區域 三、如何確定一個對象是否可以被當成垃圾進行回收 &#xff08;1&#xff09;引用計數法 &#xff08;2&#xff09;可達性分析算法 &#xff08;3&#xff09;引用的類型 &#xff08;3…

同步與互斥

有數據交互的進程之間的關系主要有兩種,同步與互斥.所謂互斥,是指在不同進程之間的若干程序片斷,當某個進程運行其中一個程序片段時,其它進程就不能運行它們之中的任一程序片段,只能等到該進程運行完這個程序片段后才可以運行.所謂同步,是指在不同進程之間的若干程序片斷,它們的…

java 分號 轉義_java – 正則表達式和轉義和未轉義的分隔符

你可以使用正則表達式(?:\\.|[^;\\])*匹配未轉義分號之間的所有文本&#xff1a;List matchList new ArrayList();try {Pattern regex Pattern.compile("(?:\\\\.|[^;\\\\])*");Matcher regexMatcher regex.matcher(subjectString);while (regexMatcher.find())…

OpenCV cv::Mat類

using namespace cv; 1、Mat的聲明&#xff1a; Mat mMat(rows, cols, type); Mat mMat(Size(width,height), type); type指矩陣中元素的類型&#xff0c;可以使CV_8U&#xff08;無符號單字節像素&#xff09;&#xff0c;CV_8S&#xff08;有符號單字節像素&#xff09;&…

ubuntu-E:Encountered a section with no Package: header的解決辦法

ubuntu 11.04 出現了如下錯誤&#xff1a; E:Encountered a section with no Package: header 終端中輸入以下兩條命令&#xff1a; sudo rm /var/lib/apt/lists/* -vfsudo apt-get update 執行完了命令之后&#xff0c;軟件更新器應該會自動要求更新的&#xff0c;更新便是。 …

java new collection_使用Java 8新增的Predicate操作Collection集合

Java 8 起為 Collection 集合新增了一個 removeIf(Predicate filter) 方法&#xff0c;該方法將會批量刪除符合 filter 條件的所有元素。該方法需要一個 Predicate 對象作為參數&#xff0c;Predicate 也是函數式接口&#xff0c;因此可使用 Lambda 表達式作為參數。如下程序示…

codevs1219 騎士遍歷(棋盤DP)

題目描述 Description設有一個n*m的棋盤&#xff08;2≤n≤50&#xff0c;2≤m≤50&#xff09;&#xff0c;如下圖&#xff0c;在棋盤上有一個中國象棋馬。 規定&#xff1a; 1)馬只能走日字 2)馬只能向右跳 問給定起點x1,y1和終點x2,y2&#xff0c;求出馬從x1,y1出發到x2,y2的…

php顯示錯誤

error_reporting(E_ALL);ini_set(display_errors, 1);//將出錯信息輸出到一個文本文件ini_set(error_log, dirname(__FILE__) . /error_log.txt);

java ssh免密登錄_SSH公鑰、私鑰配置(SSH免密碼登錄方式)

1.首先使用想要發起ssh免密訪問的用戶A登錄Linux(簡稱客戶端Linux)2.進入該用戶的家目錄(cd ~)&#xff0c;看是否有.ssh文件夾(linux中以.開頭文件夾是隱藏的&#xff0c;使用ll -a進行查看)&#xff0c;如果沒有則創建(mkdir ~/.ssh)&#xff0c;并修改訪問權限(chmod 700 ~…

最近學到的一點東西

1 rpc 2 socket&#xff0c;工作很多年了&#xff0c;才明白這貨的重要性&#xff0c;不過什么樣的通信方式&#xff0c;最底層的連接得用它 3 sip協議 4調試&#xff0c;一定要確認異常出錯位置&#xff0c;不能亂猜 5 某些詭異的問題&#xff0c;可以依靠在加一層解決&#x…

win8, VS2013 .NET 4.5在哪找svcutil.exe?

我這個糾結呀&#xff0c;公司用win8&#xff0c; .NET 4.5。想做一個很簡單的項目&#xff0c;就是wcf宿主iis&#xff0c;項目根目錄下有aspx文件和svc文件。于是參考了一個博客http://www.cnblogs.com/yjmyzz/archive/2008/08/19/1270961.html&#xff0c;[原創]WCF入門級使…

java tbase_使用Java從firebase獲取數據

我在下面的代碼中遇到了一個問題,該代碼幾乎逐字地從Firebase SDK Java文檔中復制到了工作中.我是一個真正的語言的新手,比如來自PHP和JavaScript的webdev背景的Java.基本上,addListenerForSingleValueEvent沒有觸發以返回數據.我注意到了這一點,因為系統打印輸出沒有觸發,因此…

錯誤內存【讀書筆記】C程序中常見的內存操作有關的典型編程錯誤

題記&#xff1a;寫這篇博客要主是加深自己對錯誤內存的認識和總結實現算法時的一些驗經和訓教&#xff0c;如果有錯誤請指出&#xff0c;萬分感謝。 對C/C程序員來講&#xff0c;內存管理是個不小的挑戰&#xff0c;絕對值得慎之又慎&#xff0c;否則讓由上萬行代碼構成的模塊…

Spring_HelloWord

環境&#xff1a;IntelliJ 14 &#xff1b; jdk1.8 Spring操作步驟 1.新建項目---Spring Batch2.IntelliJ會自動加載jar包3.現在就可以在src目錄下寫Java類文件了4.將相應的類部署在XML配置文件spring-config.xml中 &#xff08;Eclipse需要手動創建&#xff0c;貌似名為bean.x…

java 按鈕組_java中創建一個按鈕組,有10個按鈕,分別寫著0,1,2,,3。。。。9

展開全部用Java創建按鈕組32313133353236313431303231363533e59b9ee7ad9431333332643966的程序如下:import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;public class…

Starling 2D框架簡介

本系列是對Introducing Starling pdf的翻譯&#xff0c;下文是對adobe開發人員中心的一片日志的轉載&#xff0c;地址為http://www.adobe.com/cn/devnet/flashplayer/articles/introducing_Starling.html Starling 是在 Stage3D APIs 基礎上開發的一種 ActionScript 3 2D 框架&…

基本數據結構——棧

棧的特征是后進先出&#xff08;last-in, first-out, LIFO&#xff09;。棧上的插入操作稱為壓入&#xff08;PUSH&#xff09;&#xff0c;刪除操作稱為彈出&#xff08;POP&#xff09;。 下面使用一個數組S[n]來實現一個最多容納n個元素的棧。定義一個屬性指向最新插入的元素…

Android AutoCompleteTextView控件實現類似百度搜索提示,限制輸入數字長度

Android AutoCompleteTextView 控件實現類似被搜索提示&#xff0c;效果如下 1.首先貼出布局代碼 activity_main.xml&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res…