我是Tomcat,servlets和Spring Web的新手.我来自PHP背景,所以至少可以说我有点迷失方向.我想让一个控制器为我创建一个会话cookie.
我被告知我可以在标准servlet中获得这样的会话:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Somewhere inside the method...
HttpSession session = request.getSession(true);
// Set a cookie
session.setAttribute("hello", "world");
// More stuff...
}
Run Code Online (Sandbox Code Playgroud)
这如何转化为Spring Web MVC的做事方式?我可以在控制器内创建会话cookie吗?
您在示例中所做的与cookie无关.session.setAttribute("key",valueObject); 在会话中设置java对象.会话保存在服务器上.sessionid是唯一传达回客户端的东西.它可以是cookie,也可以是URL.会话中的属性未序列化为字符串.
另一方面,Cookie是发送回客户端的字符串.客户有责任存储他们的cookie(有些人将其关闭)并将其返回给服务器.
从复杂的对象图设置cookie值将需要序列化和反序列化.会话属性不会.
如果您想阅读cookie,请使用:
@CookieValue("key") String cookie
Run Code Online (Sandbox Code Playgroud)
在控制器参数列表中.cookie变量将使用名为"key"的cookie中的值填充.
要设置cookie,请致电:
response.addCookie(cookie);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14024 次 |
| 最近记录: |