如何在Java的普通类中获取Session以及request对象
2013-04-18 18:01
218 查看
前期准备:创建一个项目,并配置好一些需要的文件。
创建好项目后就创建一个类RequestFilter。
创建RequestFilter类是需要继承一接口,必须是javax.servlet包下的Filter接口。
创建好后在RequestFilter中创建线程:
//创建线程
threadLocalRequest、threadLocalResponse
在doFilter()方法中写
//把request、response传入
在类RequestFilter中写好代码后在WEB-INF目录下的web.xml文件中注册此类,
注册好后就可以在Java类中轻松获取自己在Action或页面上保存在Session中值,具体调用
//获取request
HttpServletRequest request = RequestFilter.threadLocal.get();
request.getSession().getAttribute("所保存的名称");
HttpServletRequest request = RequestFilter.threadLocal.get();这句话一定要放在方法里面,不能放在方法外面。
创建好项目后就创建一个类RequestFilter。
创建RequestFilter类是需要继承一接口,必须是javax.servlet包下的Filter接口。
创建好后在RequestFilter中创建线程:
//创建线程
threadLocalRequest、threadLocalResponse
在doFilter()方法中写
//把request、response传入
import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class RequestFilter implements Filter { //创建线程 public static ThreadLocal<HttpServletRequest> threadLocalRequest = new ThreadLocal<HttpServletRequest>(); public static ThreadLocal<HttpServletResponse> threadLocalResponse = new ThreadLocal<HttpServletResponse>(); public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { threadLocalRequest.set((HttpServletRequest) arg0); threadLocalResponse.set((HttpServletResponse) arg1); arg2.doFilter(arg0, arg1); } public void destroy() { } public void init(FilterConfig arg0) throws ServletException { } }
在类RequestFilter中写好代码后在WEB-INF目录下的web.xml文件中注册此类,
<filter> <filter-name>RequestFilter</filter-name> <filter-class>包名.RequestFilter</filter-class> </filter> <filter-mapping> <filter-name>RequestFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>RequestFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping>
注册好后就可以在Java类中轻松获取自己在Action或页面上保存在Session中值,具体调用
//获取request
HttpServletRequest request = RequestFilter.threadLocal.get();
request.getSession().getAttribute("所保存的名称");
HttpServletRequest request = RequestFilter.threadLocal.get();这句话一定要放在方法里面,不能放在方法外面。
相关文章推荐
- 在java中如何在非servlet的普通类中获取request、response、session
- 在java中如何在非servlet的普通类中获取request、response、session
- 【javaweb】Session原理以及浏览器禁止Cookie之后服务器如何获取Session
- 教你在Java的普通类中轻松获取Session以及request中保存的值
- 项目中一个普通的Java类如何获取serviceimpl实现类(二)
- java 注解annotation的使用,以及反射如何获取注解
- 普通javaBean如何获取到spring托管对象
- java的Calendar类如何获取当前时间的时分秒以及毫秒。
- Java如何获取当前的jar包路径以及如何读取jar包中的资源
- 返回解释Java乔晓松-Android SD卡路径问题以及如何获取SDCard内存大小
- Java如何获取当前的jar包路径以及如何读取jar包中的资源
- Java如何获取当前的jar包路径以及如何读取jar包中的资源
- JAVA后台程序以及JSP页面如何获取properties文件中的值
- 转:如何从普通Java类中获取WEB-INF目录绝对路径
- java中的反射机制,以及如何通过反射获取一个类的构造方法 ,成员变量,方法,详细。。
- Java乔晓松-Struts2中文件上传和多文件上传以及获取HttpServletRequest / HttpSession / ServletContext / HttpServletRespon
- Java乔晓松-Struts2中文件上传和多文件上传以及获取HttpServletRequest / HttpSession / ServletContext / HttpServletRespons
- java 注解annotation的使用,以及反射如何获取注解
- Java获取字符的Unicode编码以及如何过滤特殊字符ZWNJ
- java进阶之反射:反射基础之如何获取一个类以及如何获取这个类的所有属性和方法(1)