次のように、プロジェクトにフィルターを適用しました。
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 実装に何か問題がありますか?