Servlet过滤器 - 错误404 - 从RFC 2068超文本传输​​协议 - HTTP / 1.1找不到

时间:2014-03-11 07:07:03

标签: java servlets web-applications servlet-filters weblogic11g

我在servlet过滤器中使用下面的代码,以避免从URL直接访问页面,但我得到错误404 - 未找到 - 来自RFC 2068超文本传输​​协议 - HTTP / 1.1 ,而不管我试试的网址。

代码:

  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

    HttpServletRequest req = (HttpServletRequest) request;
    HttpServletResponse res = (HttpServletResponse) response;

    String uri = req.getRequestURI();
    this.context.log("Requested Resource::"+uri);

    HttpSession session = req.getSession(false);
    if(session == null && !(uri.endsWith("html") || uri.endsWith("LoginServlet"))){
        this.context.log("Unauthorized access request");
        res.sendRedirect("login.html");
    }else{
        // pass the request along the filter chain
        chain.doFilter(request, response);
    }   

}

我的Web.xml

    <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
 <web-app>
 <display-name>ServletFilterExample</display-name>
 <filter>
<filter-name>RequestLoggingFilter</filter-name>
<filter-class>com.journaldev.servlet.filters.RequestLoggingFilter</filter-class>
</filter>
<filter>
<filter-name>AuthenticationFilter</filter-name>
<filter-class>com.journaldev.servlet.filters.AuthenticationFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>RequestLoggingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>AuthenticationFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>login.html</welcome-file>
</welcome-file-list>
 </web-app>

使用的环境:Weblogic服务器11gR1和Web应用程序2.5

我正在点击网址:

http://localhost:7001/Filters/LoginServlet
你能帮忙吗?

感谢。

1 个答案:

答案 0 :(得分:0)

  

我强烈建议您检查您的服务器中是否正确部署了应用程序。我看到web.xml中的配置很好,使用URL正确映射过滤器。请仔细检查一下。