我所有的.jsp直接放在了WebContent里面,所有的Servlet也放在同一个包中了,求指教!!

解决方案 »

  1.   

    if(url==登录||url==注册){
    排除
    }
      

  2.   

    匹配url,登陆的注册的就跳过
      

  3.   

    判断URL是否和注册,登录的一致!如果一致 排除 ,反则验证
      

  4.   

    在过滤器的配置,添加允许访问的URL字符串参数,,,filter拦截后循环看看是否有指定的URL,有就放行,没有就拦截。
      

  5.   

    在过滤器中获取uri,对于登陆或者注册页面,放行。
      

  6.   

    登录页面换成 .html  
      

  7.   

    登陆或注册页面直接放在WebContent下。
    所有功能界面放WebContent/main下
    过滤器拦截所有main下即可!
      

  8.   


    这里的“url”怎么取呢,“登陆”是指完整的可以在浏览器中看到的路劲吗?
      

  9.   


    这里的“url”怎么取呢,“登陆”是指完整的可以在浏览器中看到的路劲吗?一个很搓的办法就是url.contains("login")
      

  10.   


    这里的“url”怎么取呢,“登陆”是指完整的可以在浏览器中看到的路劲吗?request.getRequestURL();
      

  11.   


    我的doFilter是这样写的,但为什么它都不跳转呢?代码如下:
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

    HttpServletRequest req=(HttpServletRequest) request;
    HttpServletResponse res = (HttpServletResponse) response;
    HttpSession session=req.getSession(true);
    String userId=session.getAttribute("userId").toString();
    if(userId==null || "".equals(userId)){
        res.sendRedirect("http://localhost:8080/libraryManagementSystem/userLogin.jsp");
    }else{
    chain.doFilter(request, response);
    }
    }
      

  12.   

    最好能区分开呀,我给你一个例子:<filter>
    <filter-name>sessionFilter</filter-name>
    <filter-class>com.essp.uas.filter.SessionFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>sessionFilter</filter-name>
    <url-pattern>/application/*</url-pattern>
    </filter-mapping>上面的过滤去可以过滤所有application目录下的请求
      

  13.   

    //获取访问地址,如果是登录页面则放行
    String path = req.getRequestURI();
    System.out.println(path);
    //验证码图片和js放行
    if(path.endsWith("/login.jsp")||path.endsWith("/register.jsp")){
    System.out.println("----------");
    chain.doFilter(request, response);
    }