@RequestMapping(value = "/do_login.do", method = RequestMethod.POST) public SverResponse<UserEntity> doLogin(String account, String password, HttpSession session) { SverResponse<UserEntity> response = userService.doLogin(account, password); if (response.isSuccess()) { // 登陆成功,将用户信息存入session // Cookie cookie = new Cookie("JSESSIONID", session.getId()); // respons.addCookie(cookie); // respons.addHeader("Set-Cookie", "JSESSIONID=" + session.getId()); // 设置Cookie session.setAttribute(ConstUtil.CUR_USER, response.getData()); // System.out.println(session.getAttribute(ConstUtil.CUR_USER)); } return response; } 在这端程序中设置cookie响应头
时间: 2024-01-19 21:02:40 浏览: 111
在 Spring MVC 中,可以通过 `HttpServletResponse` 对象来设置响应的 Header,从而设置 Cookie。具体来说,可以在控制器方法中通过注入 `HttpServletResponse` 对象来实现,代码如下:
```
@RequestMapping(value = "/do_login.do", method = RequestMethod.POST)
public SverResponse<UserEntity> doLogin(String account, String password, HttpSession session, HttpServletResponse response) {
SverResponse<UserEntity> response = userService.doLogin(account, password);
if (response.isSuccess()) {
// 登陆成功,将用户信息存入session
session.setAttribute(ConstUtil.CUR_USER, response.getData());
// 设置 Cookie
Cookie cookie = new Cookie("JSESSIONID", session.getId());
cookie.setMaxAge(30 * 60); // 设置 Cookie 的过期时间为 30 分钟
cookie.setPath("/");
response.addCookie(cookie);
}
return response;
}
```
在上面的代码中,我们通过 `response.addCookie(cookie)` 方法来设置 Cookie。其中,`cookie` 是要设置的 Cookie 对象,`setMaxAge` 方法用于设置 Cookie 的过期时间(单位为秒),`setPath` 方法用于设置 Cookie 的路径。需要注意的是,如果不设置 Cookie 的路径,则默认为当前请求的路径。
除了通过 `addCookie` 方法来设置 Cookie,还可以通过设置响应头的方式来实现。具体来说,可以通过以下代码来设置响应头:
```
response.setHeader("Set-Cookie", "JSESSIONID=" + session.getId() + "; Path=/; Max-Age=1800");
```
其中,`setHeader` 方法用于设置响应头,`Max-Age` 用于设置 Cookie 的过期时间(单位为秒)。需要注意的是,如果要设置多个 Cookie,可以将它们用分号和空格隔开,例如:
```
response.setHeader("Set-Cookie", "cookie1=value1; Path=/; Max-Age=1800; " +
"cookie2=value2; Path=/; Max-Age=1800; " +
"cookie3=value3; Path=/; Max-Age=1800");
```
以上就是在 Spring MVC 中设置 Cookie 响应头的基本步骤。
阅读全文