struts2配置定义过滤器无效
2014-03-18 10:13
696 查看
今天在用struts2写一个自定义过滤器的时候发现想要过滤的请求一直没有进入过滤器,一直觉得奇怪了。
在web.xml中就是这样配置的。
我的目地是想将未登录的用户请求(.jsp .action),多转入到过滤器,而且跳转到login
过滤器是这么写的。
public class LoginFilter implements Filter {
开始觉得这没有任何问题啊,至少没发现,
后来把web.xml中的配置改成
确实起作用的,把所以的请求都揽入过滤器中的,但是出现了一个问题,就是连页面的css,js等等全部都过滤了,出现了只有html元素的页面,这也不行。
后面经过查找,只需要把自定义的过滤器在web.xml中的配置放在struts过滤器的前面才会生效。如:
这样就ok,希望还有更好的解决方法的朋友,发表意见。谢谢
在web.xml中就是这样配置的。
<filter> <filter-name>login filter</filter-name> <filter-class>com.danale.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>login filter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>login filter</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>
我的目地是想将未登录的用户请求(.jsp .action),多转入到过滤器,而且跳转到login
过滤器是这么写的。
public class LoginFilter implements Filter {
@Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) arg0; HttpServletResponse response = (HttpServletResponse) arg1; HttpSession session = request.getSession(); String url = request.getRequestURI(); String username = (String) session.getAttribute("username"); if (username == null || username.equals("")) { if (url != null && !url.equals("") && (url.indexOf("Login") < 0 && url.indexOf("login") < 0)) { response.sendRedirect("login.jsp"); return; } } arg2.doFilter(arg0, arg1); return; } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } }
开始觉得这没有任何问题啊,至少没发现,
后来把web.xml中的配置改成
<filter> <filter-name>login filter</filter-name> <filter-class>com.danale.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>login filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
确实起作用的,把所以的请求都揽入过滤器中的,但是出现了一个问题,就是连页面的css,js等等全部都过滤了,出现了只有html元素的页面,这也不行。
后面经过查找,只需要把自定义的过滤器在web.xml中的配置放在struts过滤器的前面才会生效。如:
<filter> <filter-name>login filter</filter-name> <filter-class>com.danale.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>login filter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>login filter</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
这样就ok,希望还有更好的解决方法的朋友,发表意见。谢谢
相关文章推荐
- Struts2的标签及其自定义token拦截器的定义及配置
- Struts2拦截器属性excludeMethods、includeMethods配置无效之解决方法
- Struts2 配置过滤器
- 怎么在web.xml配置spring,struts2配置以及过滤器
- Struts常量 Struts2 action 定义 配置 操作内置对象
- Struts2 get 传值乱码过滤器配置
- Struts2 拦截器(Interceptor )原理和配置 (区别 过滤器Filter)
- 过滤器与拦截器区别,action通配符配置,struts2数据验证
- SSH项目web.xml文件的常用配置【struts2的过滤器、spring监听器、解决Hibernate延迟加载问题的过滤器、解决中文乱码的过滤器】
- 配置struts2的核心过滤器
- 配置struts2过滤器 session失效跳转到登陆页面
- struts2需要在web.xml中配置的过滤器
- Struts2文件上传在配置fileUpload拦截器中设置文件大小无效的问题
- struts2过滤器配置
- 如何在web.xml配置spring,struts2配置以及过滤器
- Struts2过滤器配置
- 解决struts2中validation.xml配置无效的问题
- Struts2拦截器属性excludeMethods、includeMethods配置无效之解决方法
- struts2 2.5以上版本安装中web.xml的配置(包括核心过滤器filter)
- 配置web.xml,配置Struts2的过滤器