小弟现在开发一个网站,正在考虑如何防止客户在地址栏中删除掉某些路径后返回404页面的问题。
我想问下如何在找不到404页面的时候统一返回到我网站的首页呢?
我自己初步的想法是借助过滤器控制,而且在过滤器中可以获取页面的状态码,产生如下代码:
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
System.err.println("No1:" + response.getStatus());
filter.doFilter(request, response);
System.err.println("No2:" + response.getStatus());
if (response.getStatus()==404) {
response.sendRedirect(request.getContextPath() + "/" + SysConstant.LOGINPATH);
// 这里设置如果没有登陆将要重定向到的页面
return;
}
web.xml:
<!-- 404 未找到 访问的资源不存在 -->
<error-page>
<error-code>404</error-code>
<location>/errors/404</location>
</error-page>
<!-- 500 内部服务器错误 -->
<error-page>
<error-code>500</error-code>
<location>/errors/error</location>
</error-page>
分别写个对应的action(/errors/404,/errors/error)跳到首页
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。