0

次のように、プロジェクトにフィルターを適用しました。

public class Filter implements javax.servlet.Filter{

    @Override
    public void destroy() {
        // TODO Auto-generated method stub

    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
            if (((HttpServletRequest) request).getSession().getAttribute("admin") == null) {
                // Not logged in, so redirect request to login page.
                ((HttpServletResponse) response).sendRedirect("../index.xhtml");
            }
        }


    @Override
    public void init(FilterConfig arg0) throws ServletException {
        // TODO Auto-generated method stub

    }

web.xml 内のエントリは次のとおりです。

<filter>  
        <filter-name>Filter</filter-name>  
        <filter-class>com.kc.aop.bean.Filter</filter-class>  
  </filter> 
  <filter-mapping>  
        <filter-name>Filter</filter-name>  
        <url-pattern>/admin/*</url-pattern>  
   </filter-mapping>

管理フォルダー内に次のファイルがあります。

dashboard.xhtml
introduction.xhtml
news.xhtml

Introduction.xhtml と news.xhtml は、dashboard.xhtml 内に埋め込まれています。

<iframe id= "iframe" width="1000px" height="300px" src="introduction.xhtml"></iframe> 

index.xhtml にログインしていますが、ログインしようとすると、dashboard.xhtml が表示されますが、introduction.xhtml を使用する iframe に次のエラーが表示されます。

XML Parsing Error: no element found
Location: http://localhost:8080/AOP/admin/introduction.xhtml
Line Number 1, Column 1:

どんな考えでも、なぜそのような行動をするのか。私の doFilter 実装に何か問題がありますか?

4

1 に答える 1

1

メソッドの実装を呼び出す必要がありfilterChain.doFilter(request, response);ます。doFilterそうしないと、残りのフィルターが呼び出されません。

于 2013-05-01T11:17:26.563 に答える