js 往java后台session里面设置值
时间: 2023-08-23 17:03:39 浏览: 98
要往Java后台的session中设置值,可以使用以下代码:
```java
// 获取session
HttpSession session = request.getSession();
// 设置session值
session.setAttribute("key", "value");
// 获取session值
String value = (String) session.getAttribute("key");
// 删除session值
session.removeAttribute("key");
```
其中,request是一个HttpServletRequest对象,可以在Servlet中获取到。通过调用request.getSession()方法可以获取到当前用户的session对象。然后可以使用session.setAttribute()方法设置session的值,使用session.getAttribute()方法获取session的值,使用session.removeAttribute()方法删除session的值。需要注意的是,设置和获取session的值时,需要指定一个字符串类型的key作为标识符,用于唯一标识该值。在获取session的值时,需要将返回值强制转换为对应的类型。
相关问题
java websocket示例 前端JavaScript接收java后台websocket发送的json数据
可以参考以下代码:
前端JavaScript代码:
var ws = new WebSocket("ws://localhost:808/websocket");
ws.onmessage = function(event) {
var data = JSON.parse(event.data);
console.log(data);
};
后台Java代码:
@ServerEndpoint("/websocket")
public class WebSocketServer {
@OnMessage
public void onMessage(Session session, String message) {
// 处理接收到的消息
JSONObject json = new JSONObject();
json.put("message", message);
session.getBasicRemote().sendText(json.toString());
}
}
vue获取springboot后台session
要在 Vue 中获取 Spring Boot 后台的 session,需要在后台返回的响应头中设置 session 的信息,然后在 Vue 中可以通过 axios 拦截器获取到响应头中的 session 信息。
在 Spring Boot 中,可以使用 Spring Session 来处理 session,具体操作如下:
1. 引入 Spring Session 的依赖
在 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-core</artifactId>
</dependency>
```
2. 配置 Redis
Spring Session 默认使用 Redis 存储 session,需要在 application.properties 文件中配置 Redis:
```properties
spring.redis.host=localhost
spring.redis.port=6379
```
3. 配置 Spring Session
在 Spring Boot 启动类上添加 @EnableRedisHttpSession 注解,开启 Spring Session:
```java
@SpringBootApplication
@EnableRedisHttpSession
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
4. 设置 session
在需要设置 session 的地方,可以使用 HttpServletRequest 的 getSession() 方法来获取 session 对象,然后设置相应的 session 属性:
```java
@Controller
public class TestController {
@GetMapping("/setSession")
@ResponseBody
public String setSession(HttpServletRequest request) {
HttpSession session = request.getSession();
session.setAttribute("username", "test");
return "session set success";
}
}
```
在 Vue 代码中,可以使用 axios 的拦截器来获取响应头中的 session 信息,具体代码如下:
```javascript
import axios from 'axios';
axios.interceptors.response.use(
response => {
const session = response.headers['session'];
if (session) {
// 将 session 存储到本地
localStorage.setItem('session', session);
}
return response;
},
error => {
return Promise.reject(error);
}
);
```
在需要使用 session 的地方,可以通过 localStorage.getItem('session') 来获取存储在本地的 session 信息。
阅读全文