jsp&servlet初體驗——用戶登錄功能實現

来源:https://www.cnblogs.com/guoxiangyue/archive/2018/02/10/8439856.html
-Advertisement-
Play Games

資料庫準備—創建db_login資料庫 t_user表 1、創建web工程 2、創建用戶model user.java 3、創建util包 Dbutil.java 4、創建dao包 UserDao.java 5、創建servlet包 loginServlet 6、用戶登錄界面 login.jsp 跳 ...


資料庫準備—創建db_login資料庫  t_user表

 

1、創建web工程

2、創建用戶model   user.java

 1 package com.gxy.model;
 2 
 3 public class User {
 4     private int id;
 5     private String userName;
 6     private String password;
 7     
 8     public User() {
 9         super();
10     }
11     
12     
13     public User(String userName, String password) {
14         super();
15         this.userName = userName;
16         this.password = password;
17     }
18 
19 
20     public int getId() {
21         return id;
22     }
23     public void setId(int id) {
24         this.id = id;
25     }
26     public String getUserName() {
27         return userName;
28     }
29     public void setUserName(String userName) {
30         this.userName = userName;
31     }
32     public String getPassword() {
33         return password;
34     }
35     public void setPassword(String password) {
36         this.password = password;
37     }
38 
39 }

3、創建util包 Dbutil.java

 1 package com.gxy.util;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 
 6 public class Dbutil {
 7     private String dbUrl ="jdbc:mysql://localhost:3306/db_login";
 8     private String jdbcName="com.mysql.jdbc.Driver";
 9     private String dbUserName="root";
10     private String dbpassword="123456";
11     
12     public Connection getcon() throws Exception{
13         Class.forName(jdbcName);
14         Connection con=DriverManager.getConnection(dbUrl,dbUserName,dbpassword);
15         return con;
16     }
17     
18     public void closeCon(Connection con) throws Exception{
19         con.close();
20     }
21 
22 }

4、創建dao包  UserDao.java

 1 package com.gxy.dao;
 2 
 3 import java.sql.Connection;
 4 import java.sql.PreparedStatement;
 5 import java.sql.ResultSet;
 6 
 7 import com.gxy.model.User;
 8 
 9 public class UserDao {
10     public User login(Connection con,User user) throws Exception{
11         User resultUser=null;
12         String sql="select * from t_user where userName=? and passWord=?";
13         PreparedStatement pst=con.prepareStatement(sql);
14         pst.setString(1, user.getUserName());
15         pst.setString(2,user.getPassword());
16         ResultSet rs=pst.executeQuery();
17         if(rs.next()){
18             resultUser=new User();
19             resultUser.setUserName(rs.getString("userName"));
20             resultUser.setPassword(rs.getString("passWord"));
21         }
22         return resultUser;
23     }
24 
25 }

5、創建servlet包  loginServlet

 1 package com.gxy.servlet;
 2 
 3 import java.io.IOException;
 4 import java.sql.Connection;
 5 
 6 import javax.servlet.RequestDispatcher;
 7 import javax.servlet.ServletException;
 8 import javax.servlet.http.HttpServlet;
 9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11 import javax.servlet.http.HttpSession;
12 
13 import com.gxy.dao.UserDao;
14 import com.gxy.model.User;
15 import com.gxy.util.Dbutil;
16 
17 public class loginServlet extends HttpServlet{
18 
19     /**
20      * 
21      */
22     private static final long serialVersionUID = 1L;
23 
24     Dbutil dbutil=new Dbutil();
25     UserDao userDao=new UserDao();
26     @Override
27     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
28             throws ServletException, IOException {
29         this.doPost(req, resp);
30     }
31 
32     @Override
33     protected void doPost(HttpServletRequest req, HttpServletResponse resp)
34             throws ServletException, IOException {
35         String userName=req.getParameter("userName");
36         String passWord=req.getParameter("passWord");
37         
38         Connection con=null;
39         try {
40             User user=new User(userName,passWord);
41             con=dbutil.getcon();
42             User resultUser=userDao.login(con, user);
43             if(resultUser==null){
44                 System.out.println("no");
45             }else{
46                 HttpSession session=req.getSession();
47                 session.setAttribute("userName", resultUser.getUserName());
48                 session.setAttribute("passWord", resultUser.getPassword());
49                 resp.sendRedirect("target.jsp");
50             }
51         } catch (Exception e) {
52             // TODO Auto-generated catch block
53             e.printStackTrace();
54         }
55         
56     }
57 
58 }

6、用戶登錄界面  login.jsp

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6 
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11     
12     <title>My JSP 'login.jsp' starting page</title>
13     
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">    
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22 
23   </head>
24   
25   <body>
26   <form action="login" method="post">
27     <table>
28         <tr>
29             <td>用戶名:</td>
30             <td><input type="text" id="userName" name="userName"></td>
31         </tr>
32         <tr>
33             <td>密碼:</td>
34             <td><input type="password" id="passWord" name="passWord"></td>
35         </tr>
36         <tr>
37             <td colspan="2"><input type="submit" value="提交" ></td>
38         </tr>
39     </table>
40    </form>
41   </body>
42 </html>

跳轉界面  target.jsp

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6 
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11     
12     <title>My JSP 'target.jsp' starting page</title>
13     
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">    
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22 
23   </head>
24   
25   <body>
26     <h1>用戶名:<%=session.getAttribute("userName") %></h1>
27     <h1>密碼:<%=session.getAttribute("passWord") %></h1>
28   </body>
29 </html>

7、運行結果

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、巴什博弈(Bash Game) 有n個物品,兩個人輪流從這堆物品中取物,規定每次至少取一個,最多取m個,最後取光者得勝。 顯然,如果n=m+1,那麼由於一次最多只能取m個,所以,無論先取者拿走多少個,後取者都能夠一次拿走剩餘的物品,後取者取勝。因此我們發現瞭如何取勝的法則: 如果n=(m+1)* ...
  • 明明一天都想著一會兒就更新,可是總是忘了,今天公司的項目上線倒是有點忙 這個月不是很順啊, 狗被金毛把腿咬了兩個洞,花錢不說,還不能洗澡,看著也怪心疼的, 摩托車忘了開U鎖就起步,導致鏈條蓋碎了, 公司加班太多缺少睡眠又莫名其妙的撞了頭,起了一個大包,裡外頭疼了好幾天, 沒有14薪了,只有13薪 看 ...
  • 接下來的幾篇博客,想記錄一下通過學習坦克大戰項目來循序漸進的學習Java基礎。主要是為了鞏固基礎知識,當然學習編程重要的還是多敲,問題通常是在敲代碼的過程中發現的,積累也是在敲代碼中尋求的經驗。這個坦克大戰項目是利用Java圖形界面來做的,比較簡陋。但是,在不斷的往裡面加功能的時候,可以學到很多知識 ...
  • 今天我給大家介紹的是python中的Number變數,與c++,java有些不同,下麵讓來為大家介紹: 在python中是不用聲明變數類型的,不過在使用變數前需要對其賦值,沒有值得變數是沒有意義的,編譯器也不會通過 一 : 整型 int: int 在python中的用法與c++大致是一樣的: a=1 ...
  • 上面測試,用了Junit 下邊枚舉 枚舉是什麼? 相當於 有點像單例模式,只造出一個對象供外界使用;這個枚舉一下造出好多個供使用,造出的對象不能改變 枚舉出來的ABCDE都是可以用類名.直接調用的對象,對象可以賦值,和調用其成員方法 ...
  • Java中成員訪問許可權 Java中的訪問許可權控制符有四個:作用域lxx__當前類____同一package___子孫類____其他package publiclxx___√lxx__lxx___√lxx__lxx__√lxx__lxx___√ protected___√lxx__lxx___√___ ...
  • ssh服務端 ssh客戶端 socket文件傳輸並校驗 服務端 socket文件傳輸並校驗 客戶端 ...
  • IOCP全稱IOCP全稱I/O Completion Port,中文譯為I/O完成埠。IOCP是一個非同步I/O的Windows I/O模型,它可以自動處理I/O操作,併在I/O操作完成後將完成通知發送給用戶。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...