java HttpServlet處理Cookie的應用

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章