Tag: custom error pages

配置@PathVariable类型不匹配的错误页面

假设我有一个控制器: @Controller public class SomeController { @RequestMapping(value = “{id}/object.do”) public String showObject(@PathVariable(“id”) Integer id, HttpServletRequest request) { //do smth return “somePage”; } } 当“id”不是数字,但字符串如“aaa / object.do”时,Tomcat会向我显示错误 – “客户端发送的请求在语法上是不正确的”。 有没有办法配置一个错误页面,只有当“id”路径变量的类型不正确时才会显示?

是否可以提交从WEB-INF中的JSF页面位置呈现的表单?

我正在开发的基于JSF 2.2 Web的应用程序使用位于WEB-INF目录中的各种错误页面,并在基于web.xml文件中的配置遇到HTTP错误或Javaexception时显示。 在某些错误页面上,我想要包含一个表单,该表单允许用户报告问题并包含在调查问题(例如请求URI和错误消息)时有用的各种属性。 我遇到的问题是,当用户尝试提交失败的表单时,找不到页面错误,因为HTTP post请求方法正在使用WEB-INF目录中的页面的URI而不是失败的原始页面因此将用户发送到错误页面。 我知道WEB-INF中的文件不可公开访问,并且理解这是上述问题的根本原因。 在WEB-INF目录中定位错误页面的合理性是防止用户直接访问这些页面并通过我试图实现的表单报告错误的问题。 我的问题是询问是否有任何其他方式允许最终用户提交一个表格(在这种情况下是一个错误报告),该表格已经从WEB-INF目录中的页面呈现,或者是唯一的解决方案来移动错误页面到WEB-INF目录之外的某个地方? 如果这是不可能的,还有其他选择来实现类似的结果吗?

如何在JSP错误页面中显示请求的URL?

在错误页面中,我想显示用户请求的URL。 在我的web.xml中 : MyStuff 404 /WEB-INF/error-404.jsp 这将转发到error-404.jsp ,这是该文件的内容: Page Not found 问题是request.getRequestURL()需要更改,但不知道搜索内容的关键字。 当我启动浏览器http://localhost:8080/MyStuff我收到以下错误: Requested resource: http://localhost:8080/MyStuff/WEB-INF/error-404.jsp not found 怎么解决这个?

web.xml中的标记不会捕获java.lang.Throwableexception

我有一个用servlet和JSP开发的web应用程序。 如果我插入错误的参数,我将我的应用程序配置为抛出IllegalArgumentException 。 然后我以这种方式配置了我的web.xml文件: 404 /error.jsp java.lang.Throwable /error.jsp 当我出现404 error ,然后它工作并调用error.jsp ,但是当我上升java.lang.IllegalArgumentException ,它不起作用,我有一个blank page而不是error.jsp 。 为什么? 服务器是Glassfish,日志显示IllegalArgumentException上升了。