⑴ 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);}
}
以上是本人福沃德滤器回答,有需要请搜索福沃德滤器。
⑵ 什么是URL过滤器
电子书的网址
⑶ 请问:如何在java过滤器更改url请求地址,然后交给下一个过滤器处理
更改地址?除非你在这个filter里重定向,第二次直接放行,到第二个filter
⑷ 在JSP中,过滤器中的url-pattern要过滤的资源具体是什么什么是资源是具体的javaBean吗
资源包括jsp,servlet,所有参与抄跳转和传值的文袭件,一般来说就是指业务层和逻辑层的文件,这个<url-pattern>?</url-pattern> ?是可以随便写的,但一般保证命名有意义.但上面有具体的映射,映射到某个文件中就是要对该文件做过滤,也可以使用前缀和后缀来模糊匹配一系列的文件(如*.do,x*y),也可以使用文件夹形式的匹配(/admin/*).
其实不用太纠结这个资源是什么东西,如果你要来设置编码方式的过滤器,那么别想其他的路,直接/*
⑸ jsp 过滤器拦截URL时,如何把URL后面参数加上求答案
最近在做项目中,发现jsp的过滤器在获取到拦截的URL时,得到的URL没有加入URL后面的参数,这样就造成在用response.sendRedirect时,无法加入后面的参数,本人研究后,发现可以这么解决,希望对大家有所帮助<pString currentURL = req.getRequestURI(); // 取得根目录所对应的绝对路径: java.util.Enumeration enumParam = req.getParameterNames(); StringBuffer condition = new StringBuffer("?"); boolean isHasCondition = false; while(enumParam.hasMoreElements()){ isHasCondition = true; String paramName = enumParam.nextElement(); condition.append(paramName); condition.append("="); condition.append(request.getParameter(paramName)); condition.append("&"); } if(isHasCondition){ currentURL += condition.toString(); }</p<p </p<p </p
⑹ java 中 使用Filter过滤器 如何获取URL中的数据,具体如下:
不知道你说的是什么意思,你可以吧数据加在url上一起发送,在filter中用request.getParameter(“数据名称”)获得,request要转为HttpServletRequest
⑺ java filter 如何中获取请求地址
当我们访问index.jsp/时,其实并不是我们浏览器真正访问到了服务器上的index.jsp 文件,而是先由代理服务器去访问index.jsp。
代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问index.jsp的。
所以index.jsp中通过 request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。
于是可得出获得客户端真实IP地址 的方法:
⑻ URL地址访问的过滤器问题
String path = request.getServletPath();
if("/main.jsp".equals(path)){
//chain.doFilter(sRequest, sResponse);
request.getRequestDispatcher("/error.jsp").forward(request, response);
}
你这样写的是如果path变量if("/main.jsp".equals(path))==true就到error.jsp哪如果==false呢?你没指版定啊。。权。。。
⑼ JSP中,过滤器的web.xml配置文件中指定过滤器应用的URL用什么符号隔开。请指教!
不支持用符号隔开,如果想达到类似的效果,请配置两个 <url-pattert> 节点即可。 GOOD LUCK!