使用JSP,除了管理页面请求之外,如何将所有内容重定向到保留页面

时间:2011-09-06 14:06:54

标签: jsp

我在这里使用谷歌应用引擎。

在web.xml中我设置了安全性:

    <security-constraint>
      <web-resource-collection>
        <url-pattern>/admin/*</url-pattern>
      </web-resource-collection>
      <auth-constraint>
        <role-name>admin</role-name>
      </auth-constraint>
    </security-constraint>

现在我想通过在/ admin使用servlet对数据存储的架构进行一些大的更改,同时将所有其他请求重定向到BeBackSoon.jsp

之类的内容

使用web.xml有一种简单的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用filter

@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) req;
    HttpServletResponse response = (HttpServletResponse) res;
    String contextPath = request.getContextPath();

    if (request.getRequestURI().startsWith(contextPath + "/admin") {
        chain.doFilter(req, res);
    } else {
        response.sendRedirect(contextPath + "/BeBackSoon.jsp");
    }
}

将此映射到/*的网址格式。请注意,如果您在不同路径后面有CSS / JS /图像等静态资源,那么您希望在条件中包含对"/static"等公共路径的检查,否则您的管理页面最终会没有正确的CSS / JS /图像。