亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaWeb 中Cookie實現(xiàn)記住密碼的功能示例

 更新時間:2017年06月26日 16:10:23   作者:justdoit_potato  
cookie是一種WEB服務器通過瀏覽器在訪問者的硬盤上存儲信息的手段。Cookie的目的就是為用戶帶來方便,為網(wǎng)站帶來增值。這篇文章主要介紹了JavaWeb 中Cookie實現(xiàn)記住密碼的功能示例,需要的朋友可以參考下

本文主要內容:

•1、什么是Cookie
•2、Cookie帶來的好處
•3、Cookie的主要方法 

一、什么是Cookie

cookie是一種WEB服務器通過瀏覽器在訪問者的硬盤上存儲信息的手段。Cookie的目的就是為用戶帶來方便,為網(wǎng)站帶來增值。雖然有著許多誤傳,事實上Cookie并不會造成嚴重的安全威脅。Cookie永遠不會以任何方式執(zhí)行,因此也不會帶來病毒或攻擊你的系統(tǒng)。另外,由于瀏覽器一般只允許存放300個Cookie,每個站點最多存放20個Cookie,每個Cookie的大小限制為4KB,因此Cookie不會塞滿你的硬盤。

例如,當我們第一次訪問網(wǎng)站輸入用戶名密碼時,可以選擇讓系統(tǒng)記住用戶名密碼,下次就不用重新輸入了,這就是典型的Cookie的應用。 

二、Cookie帶來的好處:

cookies給網(wǎng)站和用戶帶來的好處非常多:

1. Cookie能使站點跟蹤特定訪問者的訪問次數(shù)、最后訪問時間等

2. Cookie能告訴在線廣告商廣告被點擊的次數(shù),從而可以更精確的投放廣告

3. Cookie有效期限未到時,Cookie能使用戶在不鍵入密碼和用戶名的情況下進入曾經(jīng)瀏覽過的一些站點

4. Cookie能幫助站點統(tǒng)計用戶個人資料以實現(xiàn)各種各樣的個性化服務在JSP中,我們也可以使用Cookie,來編寫一些功能強大的應用程序。

有些瀏覽器可以禁用Cookie,所以不能使用Cookie來完成核心的業(yè)務。 

三、Cookie類的主要方法:

int getMaxAge() 返回Cookie過期之前的最大時間,以秒計算。
int setMaxAge() 設置Cookie過期時間,以秒計算。
String getName() 返回Cookie的名字
String getValue() 返回Cookie的值。
void setValue(String newValue) cookie創(chuàng)建后設置一個新的值。

注:名字和值是我們始終關心的兩個部分。稍后會詳細介紹getName/setName、getValue/setValue。 

四、代碼舉例:

【實例】實現(xiàn)記住密碼、自動登錄的功能

新建JavaWeb工程Test06.

login.jsp:

 <%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Insert title here</title> 
 <%
   String username = "";
  String password = "";
   //獲取當前站點的所有Cookie
   Cookie[] cookies = request.getCookies();
  for (int i = 0; i < cookies.length; i++) {//對cookies中的數(shù)據(jù)進行遍歷,找到用戶名、密碼的數(shù)據(jù)
     if ("username".equals(cookies[i].getName())) {
       username = cookies[i].getValue();
    } else if ("password".equals(cookies[i].getName())) {
       password = cookies[i].getValue();
    }
   }
 %> 
 </head>
 <body>
   <form action="login_handler.jsp" method="post">
     username:<input type="text" name="name" value="<%=username%>" /><br/>
    password:<input type="password" name="pwd" value="<%=password%>" /><br/>
    <input type="checkbox" value="y" name="isLogin">自動登錄<br/> 
    <input type="submit" value="登錄" />
  </form>
 </body>
 </html>

13行代碼:獲取當前站點所有的Cookie。注:這個Cookie類是在接下來的login_handler.jsp文件中定義的。

26行的 value="<%=username%>",以及27行的value="<%=password%>",是在16行、18行獲取到的值。

login_handler.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
 <%
   String name = request.getParameter("name");
   String pwd = request.getParameter("pwd");
   String flag = request.getParameter("isLogin"); 
   if (!"admin".equals(name) && !"123".equals(pwd)) {
     response.sendRedirect("error.jsp");
   } else {
     if ("y".equals(flag)) {
      //創(chuàng)建兩個Cookie對象
      Cookie nameCookie = new Cookie("username", name);
      //設置Cookie的有效期為3天
      nameCookie.setMaxAge(60 * 60 * 24 * 3);
      Cookie pwdCookie = new Cookie("password", pwd);
      pwdCookie.setMaxAge(60 * 60 * 24 * 3);
      response.addCookie(nameCookie);
       response.addCookie(pwdCookie);
    }
    response.sendRedirect("success.jsp");
   }
 %>

核心代碼是11行至20行。

11行:如果用戶勾選了“自動登錄”,就把用戶名和密碼的信息放到Cookie中。

第15、17行代碼是設置Cookie的存儲時間。如果不設置Cookie的存儲時間,則默認的存儲時間為0,此時Cookie保存的數(shù)據(jù)是存放在內存中的,當瀏覽器關閉,則Cookie消失失效。

設置了存儲時間后,此時設置Cookie的數(shù)據(jù)將保存在硬盤中,不同的瀏覽器存放的具體位置是不一樣的。

谷歌瀏覽器查看cookie的位置:

“菜單-設置-顯示高級設置-內容設置”:

單擊上圖中的“內容設置”,彈出如下界面:

單擊上圖的紅框部分,彈出如下界面:

success.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
   pageEncoding="UTF-8"%>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Insert title here</title>
 </head>
 <body>success.
 </body>
 </html> 

如果登陸成功,就調到這個頁面。

error.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
   pageEncoding="UTF-8"%>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Insert title here</title>
 </head>
 <body>error.
 </body>
 </html>

運行程序,當輸入正確的用戶名密碼進行登錄,并勾選“記住密碼”后,下次再回到登錄界面,就是下面的這個樣子:

以上所述是小編給大家介紹的JavaWeb 中Cookie實現(xiàn)記住密碼的功能示例,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • 在Java中對List進行分區(qū)的實現(xiàn)方法

    在Java中對List進行分區(qū)的實現(xiàn)方法

    在本文中,我們將說明如何將一個列表拆分為多個給定大小的子列表,也就是說在 Java 中如何對List進行分區(qū),文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2024-04-04
  • 關于JAVA經(jīng)典算法40題(超實用版)

    關于JAVA經(jīng)典算法40題(超實用版)

    本篇文章小編為大家介紹一下,關于JAVA經(jīng)典算法40題(超實用版),有需要的朋友可以參考一下
    2013-04-04
  • Spring?Boot簡單實現(xiàn)文件上傳功能

    Spring?Boot簡單實現(xiàn)文件上傳功能

    這篇文章主要介紹了Spring?Boot簡單實現(xiàn)文件上傳功能,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Java設計模式之單例模式簡析

    Java設計模式之單例模式簡析

    這篇文章主要介紹了Java設計模式之單例模式簡析,單例模式是常用的設計模式,在我們的系統(tǒng)乃至在框架中都普遍被用到,單例模式就是使一個類有且只有一個實例用于外部訪問,這樣大大的節(jié)省了系統(tǒng)的資源,需要的朋友可以參考下
    2023-12-12
  • 一文掌握SpringSecurity?BCrypt密碼加密和解密

    一文掌握SpringSecurity?BCrypt密碼加密和解密

    BCrypt就是一款加密工具,可以比較方便地實現(xiàn)數(shù)據(jù)的加密工作。也可以簡單理解為它內部自己實現(xiàn)了隨機加鹽處理,這篇文章主要介紹了SpringSecurity?BCrypt密碼加密和解密,一文學會使用BCryptPasswordEncoder的方法,需要的朋友可以參考下
    2023-04-04
  • debug模式遲遲不能啟動問題及解決

    debug模式遲遲不能啟動問題及解決

    在使用Debug模式進行代碼測試時,由于設置了過多的斷點,導致程序加載緩慢甚至無法啟動,解決此問題的方法是取消不必要的斷點,通過IDE的斷點管理功能,檢查并移除問題斷點,從而優(yōu)化調試效率,分享此經(jīng)驗希望能幫助遇到相同問題的開發(fā)者
    2022-11-11
  • 解決SpringMVC接收不到ajaxPOST參數(shù)的問題

    解決SpringMVC接收不到ajaxPOST參數(shù)的問題

    今天小編就為大家分享一篇解決SpringMVC接收不到ajaxPOST參數(shù)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • java使用Socket實現(xiàn)SMTP協(xié)議發(fā)送郵件

    java使用Socket實現(xiàn)SMTP協(xié)議發(fā)送郵件

    這篇文章主要為大家詳細介紹了java使用Socket實現(xiàn)SMTP協(xié)議發(fā)送郵件的相關資料,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Spring事務annotation原理詳解

    Spring事務annotation原理詳解

    這篇文章主要介紹了Spring事務annotation原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • 面試突擊之跨域問題的解決方案詳解

    面試突擊之跨域問題的解決方案詳解

    跨域問題本質是瀏覽器的一種保護機制,它的初衷是為了保證用戶的安全,防止惡意網(wǎng)站竊取數(shù)據(jù)。那怎么解決這個問題呢?接下來我們一起來看
    2022-09-09

最新評論