本文简单的介绍了Cookie会话技术的相关知识点,适合初学者入门
什么是状态管理
1、客户端状态管理技术:将状态保存在客户端。代表性的是Cookie技术。
2、服务器状态管理技术:将状态保存在服务器端。代表性的是Session技术。
会话技术
Cookie c = new Cookie(String name,String value);
response.addCookie(c);
name :用于区分不同Cookie的名字。
value :Cookie的值。
简单示例:
Cookie c = new Cookie("welcome","welcome to zhongshan");
response.addCookie(c);
Cookie[] cookies = request.getCookies();//此方法有可能返回NULL
for(Cookie c:cookies){
System.out.println(c.getName()+":"+c.getValue());
}
step1,获取客户端发送的所有Cookie。
step2,根据name找到要修改的Cookie。
step3,调用Cookie的setValue (String newValue)方法修改该Cookie的值。
step4,将修改后的Cookie加入到response发送回客户端。
Cookie[ ]Cookies = request.getCookies( ) ;
if(Cookies != null ){
for(Cookie c : Cookies){
String name = c.getName() ;
if(name.equals("city"){
c.setValue( "ShangHai”);
response.addCookie( c ) ;//同名Cookie会覆盖.以达到修改的目的
}
)
)
void Cookie.setMaxAge ( int seconds ) ;//注: seconds单位是秒,精度不是很高
Cookie只能保存合法的ASCII字符。如果要保存中文,需要将中文转换成合法的ASCII字符,即编码。
Cookie c = new Cookie("welcome",URLEncoder.encode("欢迎来到中山","utf-8"));
编码后的Cookie为了看到实际的中文,需要还原后再显示.
for(Cookie c:cookies){
System.out.println(c.getName()+":"+URLDecoder.decode(c.getValue(),"utf-8"));
out.println(c.getName()+":"+URLDecoder.decode(c.getValue(),"utf-8"));
}
package com.qst.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CookieServlet2 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
Cookie[] cookies = request.getCookies();
PrintWriter out =response.getWriter();
for(Cookie c:cookies){
System.out.println(c.getName()+":"+URLDecoder.decode(c.getValue(),"utf-8"));
out.println(c.getName()+":"+URLDecoder.decode(c.getValue(),"utf-8"));
}
}
}
cookie的特点和作用
特点:
作用:
1. cookie—般用于存出少量的不太敏感的数据
2. 在不登录的情况下,完成服务器对客户端的身份识别