配置Spring 支持 Web session,request

费了1天劲,终于琢磨出来了。。。。
配置Spring使得支持Session,request,
[code]
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/spring*.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
<!-- 在servlet2.4规范上配置以下,不加载只是不支持session,request,globle session -->
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
<!-- 在servlet2.4规范下配置以下 -->
<filter>
<filter-name>requestContextFilter</filter-name>
<filter-class>
org.springframework.web.filter.RequestContextFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>requestContextFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring启动入口,不管怎么样都得加载 -->
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>[/code]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Session 是一个用于管理 Web 应用会话的框架,它提供了一种将会话数据存储到外部存储器中的方式,从而实现多个 Web 应用之间共享会话数据的功能。Spring Session 提供了以下几种作用域: 1. HttpSession:这是 Spring Session 最基本的作用域,它与 Servlet API 中的 HttpSession 相对应,可以使用 HttpSession 存储和访问会话数据。 2. WebSocket:Spring Session支持 WebSocket 会话,它提供了一个 WebSocketSession 作用域,可以使用它来存储和访问 WebSocket 会话数据。 3. Reactive WebSpring Session支持 Reactive Web 应用,它提供了一个 WebSession 作用域,可以使用它来存储和访问 Reactive Web 应用的会话数据。 4. Servlet API:除了 HttpSession 之外,Spring Session支持使用 Servlet API 中的其他作用域存储和访问会话数据,比如 ServletContext、HttpServletRequest 等。 Spring Session 的使用方式非常简单,只需要在应用中引入相应的依赖,然后在配置文件中配置会话存储方式即可。例如,使用 Redis 存储会话数据的配置如下: ```yaml spring: session: store-type: redis redis: namespace: myapp ``` 在代码中,可以通过注入 HttpSessionWebSocketSessionWebSession 等作用域来访问会话数据,例如: ```java @Controller public class MyController { @GetMapping("/my-page") public String myPage(HttpSession session) { session.setAttribute("my-data", "Hello, World!"); return "my-page"; } } ``` ```java @Component public class MyWebSocketHandler extends TextWebSocketHandler { @Override public void handleTextMessage(WebSocketSession session, TextMessage message) { session.getAttributes().put("my-data", message.getPayload()); } } ``` ```java @Component public class MyWebFluxHandler { public Mono<ServerResponse> handleRequest(ServerRequest request) { return request.session() .doOnNext(session -> session.getAttributes().put("my-data", "Hello, World!")) .flatMap(session -> ServerResponse.ok().build()); } } ``` 总之,Spring Session 提供了一种方便的方式来管理 Web 应用的会话数据,使得多个应用之间可以共享会话数据,同时也提供了多种作用域来适应不同类型的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值