filter-mapping(filter参数)

admin 293 0

大家好,filter-mapping相信很多的网友都不是很明白,包括filter参数也是一样,不过没有关系,接下来就来为大家分享关于filter-mapping和filter参数的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

一、web.xml lt;filter-mapping>我不想过滤html文件,怎么设置

1、不使用/*拦截所有,拦截想拦截的就可以了

2、<filter-name>encodingFilter</filter-name>

3、<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

4、<param-name>encoding</param-name>

5、<param-value>UTF-8</param-value>

6、<filter-name>encodingFilter</filter-name>

7、<url-pattern>*.action</url-pattern>

8、<filter-name>encodingFilter</filter-name>

9、<url-pattern>*.usl</url-pattern>

10、<filter-name>encodingFilter</filter-name>

11、<url-pattern>*.jsp</url-pattern>

12、<filter-name>encodingFilter</filter-name>

13、<url-pattern>*.view</url-pattern>

14、<filter-name>encodingFilter</filter-name>

15、<url-pattern>/jaxrs/*</url-pattern>

16、在filter类中判断一下,如果是.html结尾的就不过滤。

17、HttpServletRequest req=(HttpServletRequest)request;

18、//由于web.xml中设置Filter过滤全部请求,可以排除不需要过滤的url

19、String reqURI= req.getRequestURI();

20、if(reqURI.endsWith(".html")) chain.doFilter(request, response);

21、HttpServletRequest req=(HttpServletRequest)request;

22、//由于web.xml中设置Filter过滤全部请求,可以排除不需要过滤的url

23、String reqURI= req.getRequestURI();

24、if(reqURI.endsWith(".html")) chain.doFilter(request, response);

25、chain是以下过滤方法中的chain吗?

26、public void doFilter(ServletRequest request,

27、FilterChain chain) throws IOException, ServletException{

28、另外, if(reqURI.endsWith(".html"))到底是真还是假

29、HttpServletRequest req=(HttpServletRequest)request;

30、//由于web.xml中设置Filter过滤全部请求,可以排除不需要过滤的url

31、String reqURI= req.getRequestURI();

32、if(reqURI.endsWith(".html")) chain.doFilter(request, response);

33、chain是以下过滤方法中的chain吗?

34、public void doFilter(ServletRequest request,

35、FilterChain chain) throws IOException, ServletException{

36、另外, if(reqURI.endsWith(".html"))到底是真还是假

37、就是这个chain,这个判断就是判断你放问的路径是否以.html结尾,你可以试试。

38、HttpServletRequest req=(HttpServletRequest)request;

39、//由于web.xml中设置Filter过滤全部请求,可以排除不需要过滤的url

40、String reqURI= req.getRequestURI();

41、if(reqURI.endsWith(".html")) chain.doFilter(request, response);

42、chain是以下过滤方法中的chain吗?

43、public void doFilter(ServletRequest request,

44、FilterChain chain) throws IOException, ServletException{

45、另外, if(reqURI.endsWith(".html"))到底是真还是假

46、就是这个chain,这个判断就是判断你放问的路径是否以.html结尾,你可以试试。

47、java.lang.IllegalStateException: getWriter() has already been called for this response

48、public void doFilter(ServletRequest request, ServletResponse response,

49、FilterChain chain) throws IOException, ServletException{

50、//把ServletRequest和ServletResponse转换成真正的类型

51、HttpServletRequest req=(HttpServletRequest)request;

52、String reqURI= req.getRequestURI();

53、if(reqURI.endsWith(".do")) chain.doFilter(request, response);

54、chain.doFilter(request, response);

55、我这里用过的原代码,没错,你看下你别的地方,用到response的地方

56、//把ServletRequest转换成真正的类型

57、HttpServletRequest req=(HttpServletRequest)request;

58、String reqURI= req.getRequestURI();

59、if(reqURI.endsWith(".html")) chain.doFilter(request, response);

二、filter-mapping元素的简介

filter-mapping元素用来声明Web应用中的过滤器映射。过滤器可被映射到一个servlet或一个URL模式。将过滤器映射到一个servlet中会造成过滤器作用于servlet上。将过滤器映射到一个URL模式中则可以将过滤器应用于任何资源,只要该资源的URL与URL模式匹配。过滤是按照部署描述符的filter-mapping元素出现的顺序执行的。

三、filter过滤器url-pattern如何设定

filter的url-pattern的设置、多个url-pattern

当前报表采用如下filter处理ec的excel导出,并且这个filter被封装好了的<filter><filter-name>eXtremeExport</filter-name><filter-class>org.extremecomponents.table.filter.ExportFilter</filter-class></filter><filter-mapping><filter-name>eXtremeExport</filter-name><url-pattern>*.report</url-pattern></filter-mapping>

有其它页面也用到了ec,也需要导出excel,但是后缀以action结尾,且只有2个特别的url("action1.action"、"action2.action")需要导出excel,尝试这么写不行<filter-mapping><filter-name>eXtremeExport</filter-name><url-pattern>action1.action</url-pattern></filter-mapping>这么写可以

<filter><filter-name>drpEcExportFilter</filter-name><filter-class>com.common.filter.DrpEcExportFilter</filter-class></filter><filter-mapping><filter-name>drpEcExportFilter</filter-name><url-pattern>*.action</url-pattern></filter-mapping><filter-mapping><filter-name>drpEcExportFilter</filter-name><url-pattern>*.multidimensionalreport</url-pattern></filter-mapping>但是不够精确

于是采用继承的方式共享.DrpEcExportFilter,而url的处理由自己控制<filter-name>drpEcExportFilter</filter-name><filter-class>com.common.filter.DrpEcExportFilter</filter-class></filter><filter-mapping><filter-name>drpEcExportFilter</filter-name><url-pattern>*.action</url-pattern></filter-mapping>

其中DrpEcExportFilter.java的代码-------------------------------------------------------------------------------------------------------package com.common.filter;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 org.apache.commons.lang.StringUtils;import org.extremecomponents.table.filter.ExportFilter;

public class DrpEcExportFilter extends ExportFilter implements Filter{

public void destroy(){ super.destroy();}

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{ HttpServletRequest hrequest=(HttpServletRequest)request; String requestURI= hrequest.getRequestURI(); if(StringUtils.isNotEmpty(requestURI)&&(requestURI.indexOf("action1.action")!=-1|| requestURI.indexOf("action2.action")!=-1)){ super.doFilter(request, response, chain);} else{ chain.doFilter(request, response);}}

public void init(FilterConfig config) throws ServletException{ super.init(config);}

以上是本人福沃德滤器回答,有需要请搜索福沃德滤器。

如果你还想了解更多这方面的信息,记得收藏关注本站。