一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - JavaWeb登陸功能實現代碼

JavaWeb登陸功能實現代碼

2020-06-27 12:49Dreamlove JAVA教程

這篇文章主要為大家詳細介紹了JavaWeb登陸功能實現代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了JavaWeb登陸功能的方法,供大家參考,具體內容如下

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

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

?
1
2
3
4
5
<form action="LoginServlet" method="post">
   用戶名:<input type="text" name="userName"/>
   密碼:<input type="password" name="password"/>
   <input type="submit" value="提交"/>
  </form>

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

根據用戶名和密碼兩個屬性我們建立相應的實體類,并添加get和set方法,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class User {
 private String userName;
 private String password;
 public String getUserName() {
  return userName;
 }
 public void setUserName(String userName) {
  this.userName = userName;
 }
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
}

而jsp頁面中的action=“LoginServlet”是指將請求發送到Servlet處理。接下來我們轉到Servlet來進行處理:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.io.IOException;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import com.test.dao.UserDao;
//創建時為Servlet而不是Class,需要在web.xml中進行配置,配置的代碼Myeclipse將自動生成
public class LoginServlet extends HttpServlet {
 //創建UserDao的對象,以便于查詢數據庫
 UserDao userDao=new UserDao();
 //以下doGet方法和doPost方法分別對應form表單中的method="get"和method="post"
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
 }
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  //利用getParameter方法獲取到前臺文本框中輸入的值,其中括號內的內容為<input/>標簽中的name屬性
  String userName=request.getParameter("userName");
  String password=request.getParameter("password");
  //調用UserDao中的getSelect方法并獲取到返回值
  boolean flag=userDao.getSelect(userName, password);
  //若用戶名和密碼存在則轉發到index.jsp頁面,否則重定向到error.jsp頁面
  if (flag) {
   request.getRequestDispatcher("index.jsp").forward(request, response);
  }
  else
   response.sendRedirect("error.jsp");
 }
 
}

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package com.test.dao;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
 
public class UserDao {
 //連接數據庫的代碼
 public Connection getCon() {
  //數據庫連接名稱
  String username="root";
  //數據庫連接密碼
  String password="";
  String driver="com.mysql.jdbc.Driver";
  //其中test為數據庫名稱
  String url="jdbc:mysql://localhost:3306/test";
  Connection conn=null;
  try{
   Class.forName(driver);
   conn=(Connection) DriverManager.getConnection(url,username,password);
  }catch(Exception e){
   e.printStackTrace();
  }
  return conn;
 }
 //進行查詢的方法,若含有滿足條件的數據則返回true
 public boolean getSelect(String userName,String password) {
  boolean flag=false;
   String sql = "select * from user where userName='"+userName+"' and password='"+password+"'";
   Connection conn = getCon();
   PreparedStatement pst = null;
   try {
    pst = (PreparedStatement) conn.prepareStatement(sql);
    ResultSet rs = pst.executeQuery();
    if (rs.next()) {
     flag=true;
    }
   } catch (Exception e) {
   }
   return flag;
  }
}

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 <servlet>
 <servlet-name>LoginServlet</servlet-name>
 <servlet-class>com.test.servlet.LoginServlet</servlet-class>
 </servlet>
 
 <servlet-mapping>
 <servlet-name>LoginServlet</servlet-name>
 <url-pattern>/LoginServlet</url-pattern>
 </servlet-mapping>
</web-app>

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

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

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

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

延伸 · 閱讀

精彩推薦
  • JAVA教程Java基礎教程之接口的繼承與抽象類

    Java基礎教程之接口的繼承與抽象類

    這篇文章主要介紹了Java基礎教程之接口的繼承與抽象類,本文介紹了接口繼承、接口的多重繼承以及抽象類的知識,需要的朋友可以參考下 ...

    junjie2482019-11-27
  • JAVA教程Java中的關鍵字volatile詳解

    Java中的關鍵字volatile詳解

    這篇文章主要介紹了Java中的關鍵字volatile,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小...

    陽光、大地和詩歌5072019-06-19
  • JAVA教程Java中的值傳遞和引用傳遞實例介紹

    Java中的值傳遞和引用傳遞實例介紹

    java 中沒有引用傳遞,都是值傳遞的,可以通過傳遞副本修改對象的,副本交換,并不影響原引用 ...

    java之家4932019-10-15
  • JAVA教程淺析java 歸并排序算法

    淺析java 歸并排序算法

    這篇文章主要簡單介紹了java 歸并排序算法的工作原理及代碼,需要的朋友可以參考下 ...

    hebedich1652019-12-09
  • JAVA教程分享J2EE的13種核心技術

    分享J2EE的13種核心技術

    在本文中我將解釋支撐J2EE的13種核心技術:JDBC, JNDI, EJBs, RMI, JSP, Java servlets, XML, JMS, Java IDL, JTS, JTA, JavaMail 和 JAF,對j2ee的13種核心技術感興趣的朋友一起學...

    iVictor4192020-03-03
  • JAVA教程java基礎學習筆記之類加載器

    java基礎學習筆記之類加載器

    java中的類加載器:java虛擬機中可以安裝多個類加載器,系統默認三個主要類加載器,每個類負責加載特定位置的類:BootStrap, ExtClassLoader,AppClassLoader類加載...

    hebedich1802020-03-28
  • JAVA教程java解析任意層數json字符串的方法

    java解析任意層數json字符串的方法

    一個方法解析任意層數的json字符竄:使用正則表達式,遞歸算法,將jsonArray解析出后添加到List, JsonObject添加至Map ...

    java教程網2602019-11-07
  • JAVA教程Java利用序列化實現對象深度clone的方法

    Java利用序列化實現對象深度clone的方法

    這篇文章主要介紹了Java利用序列化實現對象深度clone的方法,實例分析了java序列化及對象克隆的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下 ...

    華宰1772019-12-29
主站蜘蛛池模板: 我的绝色岳每雯雯 | 四虎影视地址 | 惩罚美女妲己的尤老师 | 青青国产在线观看 | 欧美在线播放成人免费 | 91香蕉国产视频 | 亚州精品永久观看视频 | 草久热| 99久热只有精品视频免费观看17 | 国产一区二区三区欧美 | 日本公乱妇视频 | 久久成人a毛片免费观看网站 | 忘忧草在线| 国产乱插| 成人中文字幕在线高清 | 俺去啦最新地址 | 极品美女aⅴ高清在线观看 极品ts赵恩静和直男激战啪啪 | 99视频精品全部免费观看 | 69老司机亚洲精品一区 | 九色PORNY真实丨国产大胸 | 久久精品观看影院2828 | 我半夜摸妺妺的奶C了她软件 | 国产乱子伦真实china | 亚洲国产综合久久精品 | 国产成人免费高清激情明星 | 2019天天干夜夜操 | 消息称老熟妇乱视频一区二区 | 男人香蕉好大好爽视频 | 亚洲九九九 | 激情男人天堂 | 亚洲欧美日韩国产精品一区 | 美女乳液| 国产精品对白刺激久久久 | 国产精品国产三级在线专区 | 国产精品久久久久久影视 | 99在线免费视频 | 国产精品久久久久一区二区三区 | 久9视频这里只有精品123 | 日韩在线视频一区二区三区 | 俄罗斯一级大片 | 亚洲天堂视频在线观看免费 |