Cookie:页面缓存,当页面提交http请求时,后端可以获取并进行处理
如下,写一个springmvc框架的例子
1.新建一个http请求
package test.projectTest.controller;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HttpTestController {
@RequestMapping("doHttp.action")
@ResponseBody
public String httpTest(HttpServletRequest request,HttpServletResponse response){
Cookie[] cookies = request.getCookies();
if(null!=cookies){
System.out.println("***************Cookie start*****************");
for(Cookie cookie: cookies){
//打印出所有cookie信息
System.out.println("name:"+cookie.getName()+",value:"+cookie.getValue());
}
System.out.println("***************Cookie end*****************");
}
//HttpServletResponse添加cooike
Cookie cookie1 = new Cookie("cookie1","测试cookie1");
Cookie cookie2 = new Cookie("cookie2","测试cookie2");
response.addCookie(cookie1);
response.addCookie(cookie2);
//session的应用
System.out.println(request.getSession().getId());
return "success";
}
}
2.启动javaweb工程
在浏览器输入地址访问:http://localhost:8080/doHttp.action
请求response返回添加的两个set-Cookie,此时request里面没有cookie
再次请求:http://localhost:8080/doHttp.action,此时页面的set-cookie已经提交到了request里面,
后端日志:
页面返回请求信息:
3.session的应用
添加代码:System.out.println(request.getSession().getId());
再发送请求:http://localhost:18100/doHttp.action,set-cookie多一条记录JSESSIONID。这是因为调用request.getSession()时会自动生成JSESSIONID添加到response的cookie中。所以前端会获取到JSESSIONID保存,后面再请求时,后端可以根据前端传的JSESSIONID获取session的值,进行一些逻辑操作。