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的值,进行一些逻辑操作。

猜你喜欢

转载自blog.csdn.net/mengda_lei/article/details/82462577