java开发中替换cookie越权,在JSESSIONID cookie中设置httponly(Java EE 5)
时间: 2024-05-15 20:12:15 浏览: 7
在Java EE 5中,可以通过以下方式在JSESSIONID cookie中设置httponly:
1. 在web.xml文件中添加以下内容:
```
<session-config>
<cookie-config>
<http-only>true</http-only>
</cookie-config>
</session-config>
```
2. 在Java代码中使用以下方式创建HttpSession对象:
```
HttpSession session = request.getSession(true);
```
这将自动创建一个JSESSIONID cookie,并在其中设置httponly属性。
请注意,httponly属性只能在cookie被创建时设置,无法在之后修改。因此,如果已经存在JSESSIONID cookie,则需要将其删除并重新创建才能设置httponly属性。
相关问题
JSESSIONID应该在Java代码中怎么找?
JSESSIONID是一个用于跟踪用户会话的Cookie,通常在Java Web应用程序中使用。在Java代码中,可以通过以下方式来获取JSESSIONID:
1. 从HttpServletRequest对象中获取:
```java
HttpServletRequest request = ...;
String sessionId = request.getSession().getId();
```
2. 从HttpServletResponse对象中获取:
```java
HttpServletResponse response = ...;
String sessionId = response.getCookie("JSESSIONID").getValue();
```
3. 使用ServletContext对象获取:
```java
ServletContext context = ...;
String sessionId = context.getSessionCookieConfig().getName();
```
请注意,如果用户会话已经过期,则无法获取JSESSIONID。此外,JSESSIONID的名称和值可以在Web应用程序的配置文件(如web.xml)中进行自定义。
java实现 把session放在cookie中
Java中可以使用Servlet API中的HttpSession对象来实现把session放在cookie中。具体步骤如下:
1.在Servlet中获取HttpSession对象:
```
HttpSession session = request.getSession();
```
2.将数据存入Session中:
```
session.setAttribute("name", "value");
```
3.获取Session ID并将其存储在Cookie中:
```
Cookie cookie = new Cookie("JSESSIONID", session.getId());
response.addCookie(cookie);
```
通过这种方式,将Session ID存储在客户端的Cookie中,客户端每次请求都会携带该Cookie,从而实现了Session的持久化。