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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

在Servlet中向客户端写Cookie信息

發布時間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Servlet中向客户端写Cookie信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

應用Servlet API中提供的Cookie類,用戶把表單信息提交給Servlet后,在Servlet中獲取用戶請求的信息并添加到Cookie對象中,再通過HttpServletResponse對象把Cookie信息返回給客戶端,在JSP頁面中通過request內置對象來獲取客戶端的Cookie信息

在JSP中使用request對象獲取的是一個Cookie對象的數組,需要循環中便利所有Cookie對象,并通過Cookie對象的getName()方法查找所有Cookie對象的名稱,然后根據找到的Cookie名稱獲得Cookie對象中的值

  • getComment()/setComment(String purpose) 獲取/設置Cookie的注釋
  • getDomain()/setDomain(String pattern)
    獲取/設置Cookie適用的域。一般,Cookie只返回給與發送它的服務器名字完全相同的服務器
  • getMaxAge()/setMaxAge(int expiry) 獲取/設置Cookie過期之前的時間,以秒為單位
  • getName()/setName(String name) 獲取/設置Cookie的名字
  • getValue()/setValue(String newValue) 獲取/設置Cookie的值
  • getPath()/setPath(String uri) 獲取/設置Cookie適用的路徑

創建Index.jsp頁面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="java.net.URLDecoder"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><title>Cookie</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--><script type="text/javascript">function a(){var str="12345.6";var s="";for(var i=0;i<str.length;i++){if(str.charCodeAt(i)>=48&&str.charCodeAt(i)<=57){s=s+str[i];}}alert(isNaN(12345));if(s.length<str.length){//alert(isNa);}}</script><style type="text/css">table{font-size:14px;font-family: 隸書;color:gray;border: 1px green solid;}input{font-size:14px;font-family: 隸書;color:gray;}</style></head><body "a()"><%String userName=null; //用于保存從cookie中讀取出的用戶名Cookie cookieArr[] = request.getCookies(); //獲取客戶端的所有Cookieif(cookieArr!=null&&cookieArr.length>0){for(Cookie c:cookieArr){if(c.getName().equals("userName")){ //如果Cookie中有一個名為userName的CookieuserName = URLDecoder.decode(c.getValue(),"UTF-8"); //獲得此cookie的值 }}}%><form action="cookieservlet" method="post"><table align="center"><tr><td>用戶名:</td><td><input type="text" name="name" value="<%if(userName!=null){out.print(userName);}%>"/></td></tr><tr><td>密碼:</td><td><input type="password" name="pwd" /></td></tr><tr><td colspan="2"><input type="submit" value="登 錄" /></td></tr></table></form></body> </html>

新建CookieServlet的Servlet類,doPost()方法中獲取用戶信息,添加到Cookie對象中并保存到客戶端

public class CookieServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("UTF-8");String name = request.getParameter("name"); //獲得用戶名name = java.net.URLEncoder.encode(name, "UTF-8"); //將用戶名進行格式編碼//創建一個Cookie對象,并將用戶名保存到Cookie對象中Cookie nameCookie = new Cookie("userName", name);//設置Cookie的有效時間,單位為秒nameCookie.setMaxAge(60);//通過response的addCookie()方法將此Cookie對象保存到客戶端瀏覽器的Cookie中response.addCookie(nameCookie);request.getRequestDispatcher("success.jsp").forward(request, response);}}

web.xml文件配置

<servlet><servlet-name>CookieServlet</servlet-name><servlet-class>com.cn.zj.Servlet.CookieServlet</servlet-class></servlet><servlet-mapping><servlet-name>CookieServlet</servlet-name><url-pattern>/cookieservlet</url-pattern></servlet-mapping>

總結

以上是生活随笔為你收集整理的在Servlet中向客户端写Cookie信息的全部內容,希望文章能夠幫你解決所遇到的問題。

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