我在这里使用谷歌应用引擎。
在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有一种简单的方法吗?
答案 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 /图像。