『壹』 如何用cookie實現自動登錄
1.新建login.jsp和index.jsp。
2.在login.jsp中新建表單,跳轉到index.jsp並提交name。
3.在index.jsp中新建如下代碼:
『貳』 如何利用js操作cookie實現記住密碼功能
【什麼是cookie】
「cookie 是存儲於訪問者的計算機中的變數。每當同一台計算機通過瀏覽器請求某個頁面時,就會發送這個 cookie。你可以使用 javaScript 來創建和取回 cookie 的值。」
不同的瀏覽器可能對cookie的儲存方式不同,但是相同的是cookie中的內容都是保存在客戶一端的。(session是保存在伺服器上的)
【cookie的幾點注意】
說的通俗一點,cookie就是一個字元串(這點可以用alert(typeof document.cookie)來驗證),用來保存一些客戶信息。
程序員可以對其寫入任何想寫入的東西,只要不超過cookie的大小限制(4kb)。
cookie的操作辦法最簡單的說法就是對document.cookie進行操作(寫入你要需保存的內容)。
cookie有一個關鍵字是expires,它是用來設置cookie的有效期的,默認情況(不設置expires)是當瀏覽器關閉的時候,自動清除cookie。
一般來說,cookie的形式都是這樣的:"cookieName1=cookie1;cookieName2=cookie2;expires=" + date,這里需要注意幾點:
1.注意分號
";expires="之前的字元串你可以隨便寫,但是";expires="必須遵循這個寫法,尤其是這個分號不能少,不然瀏覽器是認不出你的expires(過期時間),而把它當成cookie內容的一部分。
例如:
如果你寫成
1 <html>
2 <head>
3 <script type="text/javascript">
4 var date = new Date();
5 date.setDate(date.getDate() + 10);//date設置為十天之後
6 document.cookie = "username=findingsea^password=123^expires=" + date.toGMTString();//toGMTString方法將date轉換成格林尼治時間格式
7 </script>
8 </head>
9 <body>
10
11 </body>
12 </html>
打開firefox下的選項-->隱私-->刪除私人Cookie
可以到cookie過期的時間為當前會話結束時,也就是瀏覽器關閉的時候。換而言之,就是我們設置的expires完全沒有起作用。
要fix也很容易,只要在上段代碼中,在expires前加一個分號,也就是改成"...^;expires=",重新運行firefox查看cookie
可以看到過期時間為10之後(今天是2012年8月31日),expires設置成功,所以說分號很重要,很重要!!!
2.如何清除cookie
其實清除cookie這種說法是不準確的,應該是說讓cookie過期。因為不能直接對cookie置空,(如果以為document.cookie="",這樣就能清空cookie,我只能說少年你還是太天真了),而使cookie的方法也很簡單,就是設置expires。我們可以把expires設置到很久以後,讓cookie能長期保存,那同樣我們也能把cookie設置到過去,讓cookie馬上過期。這個「過去」就是1970年1月1號,我們將expires設置到這個時間,cookie就過期了。至於為什麼是這個時間,請參考關於1970-1-1 00:00.000的知識 。
3.如何設置和獲取cookie
<在一條cookie中設置多個變數>
JavaScript沒有提供根據cookie名來獲取cookie值的方法。上面已經講過了,document.cookie只是一個字元串而已,我們就對其進行字元串解析即可。要在獲取的時候進行解析,就要需要在設置的時候設置標識符,這里需要注意的點和第一點剛好相反,在第一點中,我們是千叮嚀萬囑咐不要忘記分號,而且在設置標識符的時候,我建議盡量不要用分號當做分隔符,我們來看一下對比;
代碼1:
1 <html>
2 <head>
3 <script type="text/javascript">
4 var date = new Date();
5 date.setDate(date.getDate() + 10);
6 document.cookie = "username=findingsea;password=123;expires=" + date.toGMTString();
7 </script>
8 </head>
9 <body>
10
11 </body>
12 </html>
代碼2:
1 <html>
2 <head>
3 <script type="text/javascript">
4 var date = new Date();
5 date.setDate(date.getDate() + 10);
6 document.cookie = "username=findingsea^password=123^;expires=" + date.toGMTString();
7 </script>
8 </head>
9 <body>
10
11 </body>
12 </html>
可以很清楚地看到,代碼1中的password=123都「吞掉了」,造成這個現象的原因是,瀏覽器在保存cookie的時候,在讀到分號之後,就認為cookie的內容結束了,瀏覽器理想的cookie形式是"cookieName=cookie;expires=date",但是顯然我們並不滿足這樣,所以要在一條cookie中設置多個值,就需要像代碼2這樣用標示符(不要分號)進行分割。然後在讀取的時候,也根據標示符進行逐個讀取。
<設置多個cookie>
當然當然當然,以上是正對相對復雜的需要我們在同一條cookie中設置多個變數的情況,更規范的情況是一條cookie就儲存一個對象。不過這樣的話,你的cookie就要佔用更多的空間(相比於一條cookie中設置多個變數而已,因為你需要為每個cookie都設置一個expires)。不過這樣的操作更加簡單和規范,推薦在變數少的情況下使用。
『叄』 如何獲取request,session和application對象
request對象 </B>request對象是javax.servlet.HttpServletRequest 子類的對象,當客戶端請求一個JSP頁面時,JSP 容器會將客戶端的請求信息包裝在這個request對象中請求信息的內容包括請求的頭信息(Header)、 系統信息(比如:編碼方式)、請求的方式
(比如:GET或POST)、請求的參數名稱和 參數值等信息
request對象的方法
getAttribute(String str)
getCookies()
getHeader(String str)
getParameter(String str)
getParameterValues(String str)
實例: requestApp1.jsp
request對象獲得表單數據get與post區別 實例:userRegist1.jsp返回頁首 5.3 response對象 </B> response對象response對象提供跟多方法和JSP進行交互,主要用到有:addCookie(Cookie cookname)sendError(int errorcode)sendRedirect(String url)實例:sendRedirectExample1.jsp
setContentType(String contentTypestr)
setHeader(String headername,String headervalue)實例:refreshExample1.jsp
Cookie是什麼Cookie是伺服器上根據用戶瀏覽器識別用戶並記錄一些相關信息,例如:網站能夠精確地知道有多少人瀏覽過。 測定多少人訪問過; 測定訪問者有多少是新用戶(即第一次來訪),多少是老用戶; 測定一個用戶多久訪問一次網站。 網站保存用戶的設置,按照用戶的喜好定製網頁外觀。 Cookie同時標注用戶和瀏覽器,有一條極為短小的信息,能夠被網站自動地放置在一台電腦
的硬碟中。通過Cookie,網站可以識別你是第一次訪問,或是又一次訪問它。在你瀏覽某些網站的時,網站的程序會在你不知不自覺中將一個小的 Cookie(作為一個文本文件)存儲在你的硬碟中。使用Cookie
Cookie存放在客戶端,首先要建立一個Cookie,然後設置其屬性,再通過response對象的addCookie()方法將其 放入客戶端,獲取Cookie對象可用request對象的getCookies()
方法。
創建CookieCookie(String cookiename,String cookievalue)不能用:空白字元、[]、()、=、,、「、/、?、@、:
設置與讀取Cookie屬性
getComments()/setComments(String purpose) getDomain()/setDomain(Stringpattern ) getMaxAge()/setMaxAge(intexpiry) getName() getPath()/setPath(Stringuri) getSecure()/setSecure(booleanflag) getValue()/setValue(StringnewValue) getVersion ()/setVersion(intv)
Cookie操作
將Cookie加入HTTP頭:Cookie usernameCookie=new Cookie(「username」,」dzycsai」);response.addCookie(usernameCookie);讀取Cookie:getCookies() getName() getValue() 返回頁首5.4 session對象 </B>session對象概要其主要關鍵點是:HTTP是無狀態(stateless)協議; Web Server 對每一個客戶端請求都沒有歷史記憶; Session用來保存客戶端狀態信息; 由Web Server 寫入;存於客戶端; 客戶端的每次訪問都把上次的session記錄傳遞給Web Server; Web Server讀取客戶端提交的session來獲取客戶端的
狀態信息; session對象的方法getAttribute (String name) long getCreationTime() int getMaxInactiveInterval() long getLastAccessedTime() invalidate() removeAttribute (Stringname) setAttribute(Stringname, Objectvalue)望採納
『肆』 我用jsp做了個登錄頁面,想讓它記住密碼,下次登錄時不需要再輸入密碼,怎樣實現具體代碼。謝謝!
使用Cookie實現。
在JSP中使用Java的嵌入腳本.
例如:
寫入Cookie
<html>
<head>........(中間略)
</head>
<body>
<%
String userName="Sender";
Cookie name_cookie=new Cookie(userName, "UserName");
Cookie password_cookie=new Cookie(userName, "PassWord");
name_cookie.setMaxAge(100*60*60);
password_cookie.setMaxAge(100*60*60);
response.addCookie(name_cookie);
response.addCookie(password_cookie);
%>
........(其他內容)
</body>
</html>
這樣我們就設置了一個Cookie;
在登錄的時候讀取Cookie:
<%
Cookie cookies[]=request.getCookies();
Cookie sCookie=null;
String sname=null;
String spassword=null;
for(int i=0;i<cookies.length;i++)
{
sCookie=cookies[i];
String cookieName_=sCookie.getName();
if(cookieName=="UserName"){//取出用戶名
sname = sCookie.getValue(cookieName);
}
if(cookieName=="PassWord"){//取出密碼
spassword = sCookie.getValue(cookieName);
}
}
%>