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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Cookie和Session 登录

發布時間:2023/12/3 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Cookie和Session 登录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Cookie 實現免登陸和Session

01、 需求說明
完成用戶登錄功能
登錄成功后跳到成功頁面,顯示用戶名
登錄失敗可以跳回登錄頁面
登錄成功后后續操作均能顯示當前登錄的用戶名
02、完成代碼

DologinServlet.java

@Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//解決中文亂碼req.setCharaterEncoding("utf-8");//[1]接受頁面(前臺的頁面)的數據String uname = req.getParameter("uname");String pwd = req.getParameter("pwd");String ch = req.getParameter("ch");//[2]數據的處理--連接數據庫作比較返回結果boolean flag=false;if("是下他".equals(uname)&&"123".equals(pwd)){flag=true;}//[3]根據返回的結果給用戶做出響應if(flag){/**********Session實現歡迎xx登錄***********///[A]獲得session對象HttpSession session = req.getSession();//[B]把對應的值保存到session中session.setAttribute("uname",uname);/**********使用Cookie記住密碼的操作***********///[1]申請卡片 填寫卡片的信息//把uname 中文的字符串進行UTF-8格式的編碼Cookie cookie=new Cookie("u",URLEncoder.encode(uname, "utf-8"));Cookie cookie2=new Cookie("p",pwd);//[2]規定卡片的使用規則//指定卡片的使用范圍 --/ 在當前服務器內都有效 /servlet04--只在當前項目中有效cookie.setPath("/");cookie2.setPath("/");//設置Cookie的有效的時間if("yes".equals(ch)){//勾選了記住我操作//設置cookie 有效的時間cookie.setMaxAge(60*60*24*10);cookie2.setMaxAge(60*60*24*10);}else{cookie.setMaxAge(0);cookie2.setMaxAge(0);}//[3]把卡片交給到用戶手中resp.addCookie(cookie);resp.addCookie(cookie2);//登錄成功resp.sendRedirect("/servlet04/success.jsp");}else{//登錄失敗req.setAttribute("msg","用戶名和密碼不匹配");req.getRequestDispatcher("/login.jsp").forward(req,resp);} }

Login.jsp

<body><%String uname="";String pwd="";String ch="";//獲得所有本地Cookie 內容Cookie[] cookies = request.getCookies();if(cookies!=null){for(Cookie c :cookies){if("u".equals(c.getName())){// c--代表的就是用戶名對應的Cookie對象uname= URLDecoder.decode(c.getValue(),"utf-8");ch="checked";}if("p".equals(c.getName())){// c--代表的就是密碼對應的Cookie對象pwd= c.getValue();}}}%><h3>登錄頁面</h3><form action="DoLogin"><p>用戶名:<input type="text" id="uname" name="uname" value="<%=uname%>"/></p><p>密碼:<input type="text" name="pwd" value="<%=pwd%>"/></p><p><input type="checkbox" name="ch" value="yes" <%=ch%> />記住密碼</p><p><input type="submit" value="登錄"/></p></form> </body>

success.jsp(登錄成功界面)

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>$Title$</title><base href= "<%=request.getContextPath() + "/" %>" </head> <body><h3>成功頁面<h3>輸出的值:<%String uname = (String)session.getAttribute("uname");out.print(uname);%><hr/><a href= "update.jsp" >update.jsp</a><hr/>JsessionID<%=session.getId() %></body> </html>

update.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>update.jsp</title><base href= "<%=request.getContextPath() + "/" %>" </head> <body><h3>成功頁面<h3>輸出的值:<%String uname = (String)session.getAttribute("uname");out.print(uname);%><hr/><a href= "delete.jsp" >delete.jsp</a><hr/>JsessionID<%=session.getId() %></body> </html>

delete.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>delete.jsp</title><base href= "<%=request.getContextPath() + "/" %>" </head> <body><h3>成功頁面<h3>輸出的值:<%String uname = (String)session.getAttribute("uname");out.print(uname);%><hr/>JsessionID<%=session.getId() %></body> </html>

03、理解示意圖
cookie


session

04、Session 的失效時機
[1]Session.invalidate()
[2]超過最大非活動間隔時間
[3]關閉瀏覽器(該方式沒有立刻結束session)
session失效的方式

[1]手動注銷sesison
session.invalidate();
[2]超過session 活動的有效時間
Session 最大活動時間是30分鐘,我們可以更改這個默認的時間
A、更改TomCat中web.xml中的配置
影響的是:所有項目中的所有session

<session-config><session-timeout>30</session-timeout></session-config>

B、更改自己項目的web.xml
影響的是:當前項目的所有session

<session-config><session-timeout>40</session-timeout></session-config>

C、更改當前項目的當前session 失效的時間
session.setMaxInactiveInterval(10);
[3]關閉瀏覽器
這種紅方式只是把瀏覽器中保存到cookie 中的Jsession 給清除了
保存到服務器中的session并沒有真正的消失

05、Session和Cookie的區別
cookie數據存放在客戶端,session數據放在服務器上(sessionid可以通過cookie保存在客戶端,也可以使用URL重寫方式)
cookie不是很安全(可以加密),別人可以分析存放在本地的COOKIE并進行COOKIE欺騙,考慮到安全應當使用session
session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能,考慮到減輕服務器性能方面,應當使用COOKIE
單個cookie在客戶端的限制是3K,就是說一個站點在客戶端存放的COOKIE不能3K。
Cookie的數據都以字符串的形式保存。Session中可以保存對象信息。
典型使用
Cookie:記住我 最近瀏覽商品 網頁皮膚
session:登錄信息 購物車(也可以使用Cookie)

總結

以上是生活随笔為你收集整理的Cookie和Session 登录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。