spring 普通类获取四大作用域request、applicationContext、session、page详解编程语言
2023-06-13 09:11:51 时间
几乎所有web应用容器都提供了四种类似Map的结构:application session request page,Jsp或者Servlet通过向着这四个对象放入数据,从而实现Jsp和Servlet之间数据的共享。
application:整个应用 对应servlet中ServletContext
session:会话 对应servlet中HttpSession
request:一次请求 对应servlet中的HttpServletRequest
page:当前页面
在使用spring时,经常需要在普通类中获取session,request等对像.
比如一些AOP拦截器类,在有使用struts2时,因为struts2有一个接口使用org.apache.struts2.ServletActionContext即可很方便的取到session对像.
用法:ServletActionContext.getRequest().getSession();
但在单独使用spring时如何在普通类中获取session,reuqest呢?
其实也是有办法的.
在Java web 项目中
首先要在web.xml增加如下代码:
listener listener-class org.springframework.web.context.request.RequestContextListener /listener-class /listener
接着在普通bean类中:
@Autowired private HttpSession session; @Autowired private HttpServletRequest request;
即可,在类中使用session对像了,是不是很方便呢..
之所以要写出来是因为目前网上关于这个的用法,都是用什么写个lister再把session保存起来,太麻烦了.
spring这么强大的框架,当然他们早也想到了.所以才有了我们这么方便的使用方法.
当前加了上面的listener后也可以使用代码的方式获取reuqest对像
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
或者在普通Java程序中 可实现HttpServlet
public class StartApplicationService extends HttpServlet ServletContext application = getServletConfig().getServletContext();
19495.html
cjavaxml相关文章
- java 使用spring实现读写分离详解编程语言
- Spring AOP详解所需要的包编程语言
- spring的事务管理详解编程语言
- spring+activemq的配置详解编程语言
- jms+spring+activemq配置(发送和接收消息)详解编程语言
- Spring容器中Bean的作用域详解编程语言
- Spring的辅助类详解编程语言
- Spring任务调度之Quartz详解编程语言
- Spring Bean的生命周期详解编程语言
- spring-web中的WebDataBinder理解详解编程语言
- Spring Boot 2.x 启动全过程源码分析(上)入口类剖析详解编程语言
- Spring Boot 单元测试详解+实战教程编程语言
- Spring Boot(五):spring data jpa的使用详解编程语言
- Spring Boot(一):入门篇详解编程语言
- Spring编码过滤器:解决中文乱码详解编程语言
- spring boot详解编程语言
- java.lang.IllegalArgumentException: More than one fragment with the name [spring_web] was found.详解编程语言
- java spring boot消息队列 RabbitMQ详解编程语言
- java,spring,tomcat,跨域设置详解编程语言