首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

struts2中针对session应用的过滤器

2012-10-31 
struts2中针对session使用的过滤器?? 在基于struts2开发的web项目中,经常会用到filter过滤器,对session进

struts2中针对session使用的过滤器

?? 在基于struts2开发的web项目中,经常会用到filter过滤器,对session进行验证。如果session失效,则提示登录失效并返回到登录页面。
??? 如下便是简单的实现过程。

首先是Filter:?
public class FirstFilter implements Filter {

? public void init(FilterConfig cong) {
??? // do nothing
? }

? public void doFilter(ServletRequest srequest, ServletResponse sresponse,
??? FilterChain chain) {

??? try {
????? HttpServletRequest requst = (HttpServletRequest) srequest;
????? HttpServletResponse response = (HttpServletResponse) sresponse;
????? HttpSession session = requst.getSession();
????? //从session从取出userid,如果为空说明没有登录,将其转到登录页面.
????? Object obj = session.getAttribute("userId");
????? if (obj == null) {
??????? //跳转到登陆页面
??????? response.sendRedirect("/Expert_DataBase/pages/loginTransfer.jsp");
????? } else {
??????? //如果存在则跳出过滤器继续执行
??????? chain.doFilter(srequest, sresponse);
????? }
??? } catch (Exception e) {
????? e.printStackTrace();
??? }
? }

? public void destroy() {
??? //do nothing
? }

}

?

接下来要在web.xml里对filter进行配置

<!-- Struts2 -->
?<!-- 配置Struts2的session的Filter -->
? <filter>

???????? <!--?声明filter -->
???????? <filter-name>struts-session</filter-name>
???????? <filter-class>com.zxt.expert.util.FirstFilter</filter-class>
???? </filter>
? <!-- 定义Struts2的session Filter拦截的URL -->
? <filter-mapping>
??????? <filter-name>struts-session</filter-name>
??????? <url-pattern>/formengine/zsf_switchSystemMenu.action</url-pattern>
?? ? </filter-mapping>
? <filter-mapping>
??????? <filter-name>struts-session</filter-name>
??????? <url-pattern>/expertsinfo/*</url-pattern>
?? ? </filter-mapping>
? <filter-mapping>
??????? <filter-name>struts-session</filter-name>
??????? <url-pattern>/taskinfo/*</url-pattern>
?? ? </filter-mapping>
? <filter-mapping>
??????? <filter-name>struts-session</filter-name>
??????? <url-pattern>/attachment/*</url-pattern>
?? ? </filter-mapping>
??……

这个可以自己添加需要进行过滤的路径。

?

?

如此,便可以实现对session的过滤了,如果session失效的话,会退回到登录页面。

热点排行