導航:首頁 > 編程語言 > jsp自動登錄

jsp自動登錄

發布時間:2024-06-25 11:25:00

jsp 用Cookie實現自動登錄

1.新建login.jsp和index.jsp。

2.在login.jsp中新建表單,跳轉到index.jsp並提交name。

3.在index.jsp中新建如下代碼

㈡ 鎬ユ眰鍩轟簬JSP鐨勪粠A緋葷粺鑷鍔ㄧ櫥褰曞埌B緋葷粺錛屽苟璺寵漿鍒癇緋葷粺鏌愪竴欏甸潰鐨勫疄鐜頒唬鐮侊紝鍦ㄧ嚎絳夛紒

鎴戝綋鏃跺ぇ鑷寸殑鍋氭硶鏄浜嬪厛鎶夾緋葷粺鐨勭殑鐢ㄦ埛鍚嶅拰瀵嗙爜淇濆瓨涓浠藉埌session涓錛岀劧鍚庢斁涓涓鏍¢獙鐢ㄦ埛鐨勫勭悊JSP鏂囦歡鍒癇緋葷粺涓錛岀劧鍚庡湪鐐瑰嚮閾炬帴鐨勬椂鍊欐妸A緋葷粺鐨勭敤鎴峰瘑鐮佷互form褰㈠紡鎻愪氦緇橞緋葷粺涓鐨勯偅涓狫SP澶勭悊鏂囦歡錛孞SP鏍¢獙姝g『鍚庤煩杞鍒板瑰簲欏甸潰銆傝繖鏍峰仛瀛樺湪瀹夊叏椋庨櫓銆傘

㈢ jsp如何實現自動登錄功能

1、在登錄頁面中添加一個復選框,讓用戶選擇是否願意在一定時間內實現自動登陸,例如兩周。
代碼:
<input type="checkbox" name="autologin">兩周內自動登錄
2、在負責處理登錄過程的Servlet中,判斷用戶是否選擇了該復選框。如果是,則執行這兩個操作:向用戶發送兩個Cookie,以及向資料庫寫入一條相應的記錄。
代碼:

Cookie ckUsername, ckSessionid;
if (autologin.equals("on")) {
// 如果用戶選擇了「兩周內自動登錄」,則向用戶發送兩個cookie。
// 一個cookie記錄用戶名,另一個記錄唯一的驗證碼,
// 並將此驗證碼寫入資料庫,以備用戶返回時查詢。(防止偽造cookie)
ckUsername = new Cookie("autoLoginUser", user.getUsername()); // user是代表用戶的bean
ckUsername.setMaxAge(60 * 60 * 24 * 14); //設置Cookie有效期為14天
res.addCookie(ckUsername);
sessionid = session.getId(); // 取得當前的session id
ckSessionid = new Cookie("sessionid", sessionid);
ckSessionid.setMaxAge(60 * 60 * 24 * 14);
res.addCookie(ckSessionid);
// 在資料庫中插入相應記錄
userSessionDAO.insertUserSession(user, sessionid);
}
3、實現自動登錄。因為用戶下次訪問的時候,可能直接訪問網站的任何頁面(例如通過收藏夾),而不一定是首頁或者登錄頁面,所以我們需要用Filter攔截到達該網站的所有請求,並執行自動登錄。
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
HttpServletRequest request = (HttpServletRequest) req;
HttpSession session = request.getSession(true);
String username;
String sessionid; // 此sessionid是上次用戶登錄時保存於用戶端的識別碼,用於用戶後續訪問的自動登錄。不是本次訪問的session id。
Cookie[] cookies;
CookieManager cm = new CookieManager(); // CookieManager是一個自定義的類,用於從Cookie數組中查找並返回指定名稱的Cookie值。
boolean isAutoLogin;
// 如果session中沒有user對象,則創建一個。
User user = (User) session.getAttribute("user");
if (user == null) {
user = new User(); // 此時user中的username屬性為"",表示用戶未登錄。
}
// 如果user對象的username為"",表示用戶未登錄。則執行自動登錄過程。
// 否則不自動登錄。
if (user.getUsername().equals("")) {
// 檢查用戶瀏覽器是否發送了上次登錄的用戶名和sessionid,
// 如果是,則為用戶自動登陸。
cookies = request.getCookies();
username = cm.getCookieValue(cookies, "autoLoginUser");
sessionid = cm.getCookieValue(cookies, "sessionid");
isAutoLogin = userSessionDAO.getAutoLoginState(username, sessionid); // 如果在資料庫中找到了相應記錄,則說明可以自動登錄。
if (isAutoLogin) {
user.setUsername(username);
user.setNickname(DBUtil.getNickName(username));
session.setAttribute("user", user); // 將user bean添加到session中。
}
}
chain.doFilter(req, resp);
}

㈣ 利用JavaWeb設計簡易聊天室,具體要求看補充

利用JavaWeb設計簡易聊天室
這樣你什麼柑橘
比較

閱讀全文

與jsp自動登錄相關的資料

熱點內容
如何提高配套文件科學性 瀏覽:552
免費qq在線客服代碼 瀏覽:615
網路攝像機和麥克風的使用點不了 瀏覽:872
win10資源文件夾卡死 瀏覽:431
聯想筆記本如何添加網路連接 瀏覽:821
釘釘文件下載到微信用哪個瀏覽器 瀏覽:252
word怎麼刪掉第一頁 瀏覽:215
為什麼小米5不能升級系統 瀏覽:768
復古攝影教程 瀏覽:803
u盤里文件顯示文件夾空 瀏覽:574
如何編程年月日的進制 瀏覽:351
升級電腦硬體注意什麼 瀏覽:827
cnc銑床多主軸如何編程 瀏覽:640
怎麼下載網站所有圖片 瀏覽:967
遠程傳文件最快的軟體下載 瀏覽:425
怎麼弄電影網站 瀏覽:209
淘寶編程培訓班怎麼樣 瀏覽:732
公文系統物理文件 瀏覽:903
c語言編程變數冪怎麼寫 瀏覽:73
bat文件怎麼寫 瀏覽:117

友情鏈接