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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Servlet(3):Cookie

發布時間:2025/5/22 编程问答 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Servlet(3):Cookie 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?概念

Cookie是存儲在客戶端計算機上的文本文件,并保留了各種跟蹤信息。Java Servlet支持HTTP Cookie。

識別返回用戶包括三個步驟:

(1) 服務器腳本向瀏覽器發送一組Cookie。例如:姓名、年齡或識別號碼等。

(2) 瀏覽器將這些信息存儲在本地計算機上,以備將來使用。

(3) 當下一次瀏覽器向Web服務器發送任何請求時,瀏覽器會把這些Cookie信息發送到服務器,服務器將使用這些信息來識別用戶。

?

注意事項
(1) 創建一個Cookie對象(注意要Encode / 無論是名字還是值,都不應該包含這字符: [ ] ( ) = , " / ? @ : ;)

Cookie name = new Cookie("name", URLEncoder.encode(request.getParameter("name"), "UTF-8"));

(2) 設置Cookie的有效時間(當設置0時意思為刪除Cookie)

cookie.setMaxAge(60*60*24); cookie.setMaxAge(0);

?

例子

(1) 登錄成功后,[Welcome.Servlet]Response了兩個Cookie: userId, password給瀏覽器

(2) 瀏覽器點[返回],發送Request給[Login.Servlet]并且把Cookie信息又發送到服務器

(3) 最終[Login.Servlet]Response了Cookie的一覽信息

1 package com.servlettest.cookie; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 import javax.servlet.ServletException; 7 import javax.servlet.annotation.WebServlet; 8 import javax.servlet.http.Cookie; 9 import javax.servlet.http.HttpServlet; 10 import javax.servlet.http.HttpServletRequest; 11 import javax.servlet.http.HttpServletResponse; 12 13 /** 14 * Servlet implementation class Login 15 */ 16 @WebServlet("/login") 17 public class Login extends HttpServlet { 18 19 private static final long serialVersionUID = 1L; 20 21 /** 22 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 23 */ 24 @Override 25 protected void doGet(HttpServletRequest request, HttpServletResponse response) 26 throws ServletException, IOException { 27 28 response.setContentType("text/html"); 29 30 request.setCharacterEncoding("UTF-8"); 31 response.setCharacterEncoding("UTF-8"); 32 33 // 獲取Session 34 Cookie[] cookies = request.getCookies(); 35 36 PrintWriter out = response.getWriter(); 37 out.println("<!DOCTYPE html>"); 38 out.println("<html>"); 39 out.println("<head>"); 40 out.println("<title>Login Page</title>"); 41 out.println("</head>"); 42 out.println("<body>"); 43 if (cookies != null && cookies.length > 0) { 44 out.println("<p>Cookies:</p>"); 45 out.println("<table border=\"1\">"); 46 out.println( 47 "<tr><td>Name</td><td>Comment</td><td>Domain</td><td>MaxAge</td><td>Path</td><td>Value</td><td>Version</td></tr>"); 48 for (int i = 0; i < cookies.length; i++) { 49 out.println("<tr>"); 50 out.println("<td>" + cookies[i].getName() + "</td>"); 51 out.println("<td>" + cookies[i].getComment() + "</td>"); 52 out.println("<td>" + cookies[i].getDomain() + "</td>"); 53 out.println("<td>" + cookies[i].getMaxAge() + "</td>"); 54 out.println("<td>" + cookies[i].getPath() + "</td>"); 55 out.println("<td>" + cookies[i].getValue() + "</td>"); 56 out.println("<td>" + cookies[i].getVersion() + "</td>"); 57 out.println("</tr>"); 58 } 59 out.println("</table>"); 60 out.println("<br/>"); 61 } 62 out.println("<form action=\"welcome\" method=\"POST\">"); 63 out.println("帳號: <input type=\"text\" name=\"userId\"/><br/>"); 64 out.println("密碼: <input type=\"password\" name=\"password\"/><br/>"); 65 out.println("<input type=\"submit\" value=\"提交\"/>"); 66 out.println("</body>"); 67 out.println("</html>"); 68 } 69 70 /** 71 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 72 */ 73 @Override 74 protected void doPost(HttpServletRequest request, HttpServletResponse response) 75 throws ServletException, IOException { 76 doGet(request, response); 77 } 78 } package com.servlettest.cookie;import java.io.IOException; import java.io.PrintWriter; import java.net.URLEncoder;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;/*** Servlet implementation class Welcome*/ @WebServlet("/welcome") public class Welcome extends HttpServlet {private static final long serialVersionUID = 1L;private static final int VALID_TIME = 60;/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");String userId = request.getParameter("userId");String password = request.getParameter("password");PrintWriter out = response.getWriter();out.println("<!DOCTYPE html>");out.println("<html>");out.println("<head>");out.println("<title>Login Page</title>");out.println("</head>");out.println("<body>");if ("123".equals(password)) {out.println("歡迎您, " + userId);// 創建Ssession addCookie(userId, password, response);} else {out.println("您的帳號或密碼錯誤!");}out.println("<a href = \"login\">返回</a>");out.println("</body>");out.println("</html>");}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}private void addCookie(String userId, String password, HttpServletResponse response) throws IOException {Cookie userIdCookie = new Cookie("userId", URLEncoder.encode(userId, "UTF-8"));Cookie passwordCookie = new Cookie("password", URLEncoder.encode(password, "UTF-8"));userIdCookie.setMaxAge(VALID_TIME);passwordCookie.setMaxAge(VALID_TIME);response.addCookie(userIdCookie);response.addCookie(passwordCookie);} } <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://xmlns.jcp.org/xml/ns/javaee"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"id="WebApp_ID" version="3.1"><welcome-file-list><welcome-file>login</welcome-file></welcome-file-list> </web-app>

?

轉載于:https://www.cnblogs.com/storml/p/7493519.html

總結

以上是生活随笔為你收集整理的Servlet(3):Cookie的全部內容,希望文章能夠幫你解決所遇到的問題。

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