决心好好把Web页面的报错机制搞清楚
1. web应用的错误页面
web.xml中可以设置error-page, 其中这个标记可以有这样的子标签
error-code,exception-type:HTTP错误码,或者异常信息的类型
exception-type指定的必须是一个Throwable,并且这个类在容器的类路径下能够被找到
location:错误页面的位置
<!ELEMENT error-page ((error-code | exception-type), location)>
<!ELEMENT exception-type (#PCDATA)>
<!ELEMENT error-code (#PCDATA)>
那么在错误页面我们可以拿到什么信息呢?
首先,在这个页面,我们可以知道出现了什么异常,这个有error-page的配置决定
2. 在JSP页面指定错误页面
exception-type指定的必须是一个Throwable,并且这个类在容器的类路径下能够被找到
容器会为错误页面提供一个exception对象,不过要想在错误页面里访问这个对象,
必须在错误页面里指定isErrorPage属性:
error.jsp
<%@ page isErrorPage="true" %>
然后,在scriptlet中就可以使用隐式对象exception,在EL中可以使用EL隐式对象${pageContext.exception}。
3.stuts中设置错误页面(版本1.2.4)
在struts-config.xml的global-exceptions标签中可以设置
<exception key="all.excption" path="/jsp/error/errorAll.jsp" type="java.lang.Exception"/>
dtd
<!ELEMENT global-exceptions (exception*)>
<!ATTLIST global-exceptions id ID #IMPLIED>
<!ELEMENT exception (icon?, display-name?, description?, set-property*)>
<!ATTLIST exception id ID #IMPLIED>
<!ATTLIST exception bundle %AttributeName; #IMPLIED>
<!ATTLIST exception className %ClassName; #IMPLIED>
<!ATTLIST exception handler %ClassName; #IMPLIED>
<!ATTLIST exception key CDATA #REQUIRED>
<!ATTLIST exception path %RequestPath; #IMPLIED>
<!ATTLIST exception scope CDATA #IMPLIED>
<!ATTLIST exception type %ClassName; #REQUIRED>
bundle Servlet context attribute for the message resources bundle
associated with this handler. The default attribute is the
value specified by the string constant declared at
Globals.MESSAGES_KEY.
[org.apache.struts.Globals.MESSAGES_KEY]
className The configuration bean for this ExceptionHandler object.
If specified, className must be a subclass of the default
configuration bean
["org.apache.struts.config.ExceptionConfig"]
handler Fully qualified Java class name for this exception handler.
["org.apache.struts.action.ExceptionHandler"]
key The key to use with this handler's message resource bundle
that will retrieve the error message template for this
exception.
path The module-relative URI to the resource that will complete
the request/response if this exception occurs.
scope The context ("request" or "session") that is used to access
the ActionError object [org.apache.struts.action.ActionError]
for this exception.
type Fully qualified Java class name of the exception type to
register with this handler.
这里注意几点
1.机制
映射异常和错误页面,struts找到异常对应的配置后,按照配置,根据key找到resource_bundle,
然后转到错误页面,错误页面应该使用<html:errors/>标记将错误信息显示出来
2.key是用于找到resource bundle对应信息的关键字,由于这里规定死了,所以要显示一种错误信息就要配置一个
3.resource bundle的配置
<message-resources parameter="resources.MessageResources"/>
这里,bundle文件应放置在WEB-INF/classes/resource/目录,
并且名称类似于MessageResources_zh_CN.properties
4.在action中也可以设置exception
参考
1.隔叶黄莺 《JSP的errorPage 指令异常转向错误页的实现机制及应用》 http://www.blogjava.net/Unmi/archive/2008/05/17/200963.html
2.孙卫琴 《精通Struts:基于MVC的Java Web设计与开发》
分享到:
相关推荐
Struts2是一个强大的Java Web应用程序框架,用于构建和部署企业级的MVC(Model-View-Controller)架构的Web应用。这个框架简化了开发过程,提供了丰富的特性来处理请求、控制流程、展示视图以及与数据库交互。在本文...
在使用Struts2框架进行Web开发的过程中,有时会遇到访问Web应用首页时出现拦截并报错的情况。错误信息通常为:“There is no Action mapped for namespace / and action name.”,这意味着Struts2在尝试处理请求时找...
4. **STRUTS报错机制**:Struts提供了内置的异常处理机制,当程序运行时出现错误,可以捕获并显示定制的错误页面,增强了应用的健壮性和用户体验。通过在配置文件中定义全局异常处理,可以统一处理各类未预见的错误...
Struts是一个非常流行的Java Web应用程序框架,它提供了一种组织和控制MVC(Model-View-Controller)架构的方式。在处理表单提交时,Struts框架需要将用户输入的数据转换成适合模型对象的类型,这其中包括日期。...
Struts2是Apache软件基金会的一个开源项目,是一个基于MVC设计模式的Web应用框架,用于简化Java Web应用程序的开发。本课程的第三讲主要聚焦在Struts2的实践操作上,通过源代码分析来深入理解其工作原理和解决实际...
4. **404错误和响应头问题**:发布应用后,无论执行哪个action,页面底部都会显示404错误,这可能是因为响应头已经提交。这通常提示需要更新或修复应用。在升级Websphere后,别忘了安装必要的补丁。 5. **Websphere...
3. **Struts框架**:Struts是基于MVC模式的Web应用框架,负责处理HTTP请求并返回响应。在登录场景中,Struts的Action类会处理登录请求,然后转发到相应的JSP页面显示结果。如果Struts的配置文件(如`struts-config....
3. **Struts报错机制**:在应用中,Struts框架提供了丰富的异常处理机制,如全局异常处理类(Global Exception Handler)和自定义错误页面。当发生错误时,系统能够捕获并适当地呈现错误信息,保持用户体验的一致性...
11. **Struts错误处理**:正确步骤为编辑属性文件(2)、修改对应的Action代码(1)和在页面上显示报错信息(3),即213(d)。 12. **Web服务端口**:默认的HTTP服务端口号是80(d)。 13. **ActionBean定义**:...
在"青鸟搜藏 SSH"中,Struts2的报错机制可能涉及到自定义异常处理和错误页面的配置,确保了系统在遇到问题时能提供友好的用户反馈。 其次,Spring框架在此项目中主要承担服务层的角色,它提供了依赖注入...
总的来说,Guava、Struts2和Spring的整合提供了强大的功能和灵活性,可以帮助开发者构建更健壮、更易于维护的Java Web应用。通过充分利用Guava的工具类和数据结构,可以提升代码质量,减少潜在错误,同时利用Guice和...
综上所述,Java三大框架(Spring、Struts、Hibernate)的使用过程中,开发者需密切关注配置细节、依赖管理及缓存机制,以保障应用的稳定性和性能。通过上述问题分析与解决方案,可有效提升开发效率,减少调试时间,...
在本教程中,我们将深入探讨如何利用Maven构建一个基于SSH的Web应用程序。 首先,Struts2作为MVC(Model-View-Controller)架构的一部分,负责处理HTTP请求并管理视图与控制器之间的交互。它的核心是Action类,它...
14. **JSP内置对象**:包括page、request、response、session、application、out、config、exception等,用于处理页面、请求、响应、会话和应用程序级数据。 15. **JSP跳转**:有两种方式,分别是`jsp:forward`...
##### SpringMVC、struts1和struts2区别 - **SpringMVC**:轻量级框架,与Spring无缝集成。 - **Struts1**:较早的MVC框架,使用ActionForm。 - **Struts2**:基于拦截器的设计模式。 ##### Struts2中result中的...
- **在 JBuilder 中使用 Java Web Start**:介绍了如何使用 Java Web Start 来部署和运行 Web 应用程序。 #### 第九章 Web 服务 - **Apache Axis 工具包**:集成了 Apache Axis 工具包来支持 Web 服务开发。 - **...
3. **异常处理**:全局异常处理机制,保证系统在出错时能给出友好的错误提示,而不是直接报错。 综上所述,基于JSP的网上购物系统设计与实现涉及了众多技术和环节,从架构设计到功能实现,再到安全性和性能优化,每...
根据给定的信息,我们可以将这些知识点大致分为几个类别:数据库技术、Java Web 开发、Java 基础编程以及 Maven 和 Eclipse 的使用技巧等。接下来,我们将针对每一部分进行详细的阐述。 ### 数据库技术 #### ...
- **application**:整个Web应用有效。 ##### List, Set, Collection, Collections - **Collection**:所有集合类的根接口。 - **List**:有序且可重复元素的集合。 - **Set**:不允许有重复元素的集合。 - **...