大家好,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);}
以上是本人福沃德滤器回答,有需要请搜索福沃德滤器。
如果你还想了解更多这方面的信息,记得收藏关注本站。