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的值,進行一些邏輯操作。