|
曾经有多少人因为不知如何在业务类中获取自己在Action或页面上保存在Session中值,当然也包括我,但是本人已经学到一种办法可以解决这个问题,来分享下,希望对你有多多少少的帮助!
前期准备:如下图,创建一个项目,并配置好一些需要的文件:
创建好项目后就在net.zrg.text.web.filter包中创建一个类RequestFilter(当然你的包名可以不是我这里所写的一样)
创建RequestFilter类是需要继承一接口,如下:必须是javax.Servlet包下的Filter接口
创建好后在RequestFilter中创建线程:
//创建线程
public static ThreadLocal<HttpServletRequest> threadLocal = new ThreadLocal<HttpServletRequest>();
在doFilter()方法中写
//把request传入
threadLocal.set((HttpServletRequest)arg0);
arg2.doFilter(arg0, arg1);
如下代码:
在类RequestFilter中写好代码后在WEB-INF目录下的web.xml文件中注册此类,
<!-- (RequestFilter)过滤器注册,创建日期:09-07-2010,创建者:张日光 -->
<filter>
<filter-name>RequestFilter</filter-name>
<filter-class>net.zrg.test.web.filter.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("所保存的名称");
如下图代码:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|