如果我想只过滤某个页面(比如说a.jsp),不过滤其他页面,该怎么配置?因为不需要过滤的url太多,不好一一配置,所以我需要只配置过滤的url,求解下面是部分web.xml的配置<filter>
<!-- 设计过滤处理类,生成静态页面 -->
<filter-name>loginFilter</filter-name>
<filter-class>com.niit.filter.CheckLoginFilter</filter-class> <!-- 重定向的URL -->
<init-param>
<param-name>redirectURL</param-name>
<param-value>/index.jsp</param-value>
</init-param> <!-- 过滤的字段 -->
<init-param>
<param-name>checkSessionKey</param-name>
<param-value>username</param-value>
</init-param> <!-- 不需要过滤的url -->
<init-param>
<param-name>notCheckURLList</param-name>
<param-value>/index.jsp</param-value>
</init-param> </filter> <filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>如果我想只过滤某个页面(比如说a.jsp),不过滤其他页面,该怎么配置?因为不需要过滤的url太多,不好一一配置,所以我需要只配置过滤的url,求解urlfilterjavaaction

解决方案 »

  1.   

    <filter-mapping>
            <filter-name>loginFilter</filter-name>
            <url-pattern>a.jsp</url-pattern>
        </filter-mapping>
      

  2.   


    修改    <url-pattern>a.jsp</url-pattern>的值就行了
      

  3.   

    过滤器可以配置只拦截某个请求,当然你也可以在过滤器中判断该url是否需要你过滤的。
      

  4.   

    如果是两个呢?需要过滤啷个jsp页面(比如说a.jsp和b.jsp)
      

  5.   


    public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
    HttpServletRequest req=(HttpServletRequest) request;
                    String path = req.getServletPath(); 
                    if(path.endWith("/a.jsp"))
                           //过滤的处理
                    else
    chain.doFilter(request, response);
      

  6.   

    我想过滤 tijiaodingdan.jsp其中过滤器如下:import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.StringTokenizer;
    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 javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;public class IsLoginFilter implements Filter
    {
    protected FilterConfig filterConfig = null;
    private String redirectURL = null;
    private List notCheckURLList = new ArrayList();
    private String username = null; public void destroy()
    {
    notCheckURLList.clear(); // 清楚list里面的所有元素
    System.out.println("过滤器销毁");
    } public void doFilter(ServletRequest servletRequest,
    ServletResponse servletResponse, FilterChain filterChain)
    throws IOException, ServletException
    {
    HttpServletRequest request = (HttpServletRequest) servletRequest;
    HttpServletResponse response = (HttpServletResponse) servletResponse; HttpSession session = request.getSession();
    if (username == null)
    {
    filterChain.doFilter(request, response);
    return;
    }
    if ((!checkRequestURIIntNotFilterList(request))
    && session.getAttribute(username) == null)
    {
    response.sendRedirect(request.getContextPath() + redirectURL);
    return;
    }
    filterChain.doFilter(servletRequest, servletResponse);
    } private boolean checkRequestURIIntNotFilterList(HttpServletRequest request)
    {
    String uri = request.getServletPath()
    + (request.getPathInfo() == null ? "" : request.getPathInfo());
    return notCheckURLList.contains(uri);
    } public void init(FilterConfig filterConfig) throws ServletException
    {
    this.filterConfig = filterConfig;
    redirectURL = filterConfig.getInitParameter("redirectURL");
    username = filterConfig.getInitParameter("checkSessionKey"); String notCheckURLListStr = filterConfig
    .getInitParameter("notCheckURLList"); if (notCheckURLListStr != null)
    {
    StringTokenizer st = new StringTokenizer(notCheckURLListStr, ";");
    notCheckURLList.clear();
    while (st.hasMoreTokens())
    {
    notCheckURLList.add(st.nextToken());
    }
    }
    // TODO Auto-generated method stub
    System.out.println("过滤器初始化"); }
    web.xml文件部分代码如下:<filter>
    <filter-name>loginFilter</filter-name>
    <filter-class>com.niit.action.islogin.IsLoginFilter</filter-class>
    <init-param>
    <param-name>redirectURL</param-name>
    <param-value>/index.jsp</param-value>
    </init-param>
    <init-param>
    <param-name>checkSessionKey</param-name>
    <param-value>username</param-value>
    </init-param> <init-param>
    <param-name>notCheckURLList</param-name>
    <param-value>/index.jsp</param-value>
    </init-param> </filter> <filter-mapping>
    <filter-name>loginFilter</filter-name>
    <url-pattern>/jiayongdianqijsp/tijiaodingdan.jsp</url-pattern>
    </filter-mapping>
    为什么总是过滤不了tijiaodingdan.jsp这个文件呢?????????我debug发现,程序没有进去到dofilter中去!!!
      

  7.   

    你过滤器的url就是获取tijiaodingdan.jsp这个路径,不是取到了吗。不懂你的意思