`
xubaolin9
  • 浏览: 96194 次
社区版块
存档分类
最新评论

Web应用和Struts1的报错错误页面机制

阅读更多

决心好好把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 框架搭建(基本)和几个报错问题

    Struts2是一个强大的Java Web应用程序框架,用于构建和部署企业级的MVC(Model-View-Controller)架构的Web应用。这个框架简化了开发过程,提供了丰富的特性来处理请求、控制流程、展示视图以及与数据库交互。在本文...

    解决使用struts2 时 访问web工程首页问题

    在使用Struts2框架进行Web开发的过程中,有时会遇到访问Web应用首页时出现拦截并报错的情况。错误信息通常为:“There is no Action mapped for namespace / and action name.”,这意味着Struts2在尝试处理请求时找...

    ACCP_Y2_STRUTS指导学习1_青鸟搜藏

    4. **STRUTS报错机制**:Struts提供了内置的异常处理机制,当程序运行时出现错误,可以捕获并显示定制的错误页面,增强了应用的健壮性和用户体验。通过在配置文件中定义全局异常处理,可以统一处理各类未预见的错误...

    struts日期转换器

    Struts是一个非常流行的Java Web应用程序框架,它提供了一种组织和控制MVC(Model-View-Controller)架构的方式。在处理表单提交时,Struts框架需要将用户输入的数据转换成适合模型对象的类型,这其中包括日期。...

    struts2浪曦第3节课程源代码

    Struts2是Apache软件基金会的一个开源项目,是一个基于MVC设计模式的Web应用框架,用于简化Java Web应用程序的开发。本课程的第三讲主要聚焦在Struts2的实践操作上,通过源代码分析来深入理解其工作原理和解决实际...

    应用移植WebSphere问题列表(经验是买不到的)

    4. **404错误和响应头问题**:发布应用后,无论执行哪个action,页面底部都会显示404错误,这可能是因为响应头已经提交。这通常提示需要更新或修复应用。在升级Websphere后,别忘了安装必要的补丁。 5. **Websphere...

    spring+hibernate+struts登陆例子

    3. **Struts框架**:Struts是基于MVC模式的Web应用框架,负责处理HTTP请求并返回响应。在登录场景中,Struts的Action类会处理登录请求,然后转发到相应的JSP页面显示结果。如果Struts的配置文件(如`struts-config....

    y2javassh 青鸟搜藏

    3. **Struts报错机制**:在应用中,Struts框架提供了丰富的异常处理机制,如全局异常处理类(Global Exception Handler)和自定义错误页面。当发生错误时,系统能够捕获并适当地呈现错误信息,保持用户体验的一致性...

    Java笔试题1Java笔试题1.doc

    11. **Struts错误处理**:正确步骤为编辑属性文件(2)、修改对应的Action代码(1)和在页面上显示报错信息(3),即213(d)。 12. **Web服务端口**:默认的HTTP服务端口号是80(d)。 13. **ActionBean定义**:...

    青鸟搜藏 SSH

    在"青鸟搜藏 SSH"中,Struts2的报错机制可能涉及到自定义异常处理和错误页面的配置,确保了系统在遇到问题时能提供友好的用户反馈。 其次,Spring框架在此项目中主要承担服务层的角色,它提供了依赖注入...

    guavstrutsspring

    总的来说,Guava、Struts2和Spring的整合提供了强大的功能和灵活性,可以帮助开发者构建更健壮、更易于维护的Java Web应用。通过充分利用Guava的工具类和数据结构,可以提升代码质量,减少潜在错误,同时利用Guice和...

    我整理的三大框架的常见问题和解决方案

    综上所述,Java三大框架(Spring、Struts、Hibernate)的使用过程中,开发者需密切关注配置细节、依赖管理及缓存机制,以保障应用的稳定性和性能。通过上述问题分析与解决方案,可有效提升开发效率,减少调试时间,...

    Maven-SSH框架搭建

    在本教程中,我们将深入探讨如何利用Maven构建一个基于SSH的Web应用程序。 首先,Struts2作为MVC(Model-View-Controller)架构的一部分,负责处理HTTP请求并管理视图与控制器之间的交互。它的核心是Action类,它...

    出现几率最高和覆盖范围最广的一套经典Java面试题.docx

    14. **JSP内置对象**:包括page、request、response、session、application、out、config、exception等,用于处理页面、请求、响应、会话和应用程序级数据。 15. **JSP跳转**:有两种方式,分别是`jsp:forward`...

    自整理Java关于基础和框架的面试题

    ##### SpringMVC、struts1和struts2区别 - **SpringMVC**:轻量级框架,与Spring无缝集成。 - **Struts1**:较早的MVC框架,使用ActionForm。 - **Struts2**:基于拦截器的设计模式。 ##### Struts2中result中的...

    JBuilder2006新特性指南.pdf

    - **在 JBuilder 中使用 Java Web Start**:介绍了如何使用 Java Web Start 来部署和运行 Web 应用程序。 #### 第九章 Web 服务 - **Apache Axis 工具包**:集成了 Apache Axis 工具包来支持 Web 服务开发。 - **...

    基于JSP的网上购物系统的设计与实现(源代码+论文).zip

    3. **异常处理**:全局异常处理机制,保证系统在出错时能给出友好的错误提示,而不是直接报错。 综上所述,基于JSP的网上购物系统设计与实现涉及了众多技术和环节,从架构设计到功能实现,再到安全性和性能优化,每...

    iteye的技术博客集合

    根据给定的信息,我们可以将这些知识点大致分为几个类别:数据库技术、Java Web 开发、Java 基础编程以及 Maven 和 Eclipse 的使用技巧等。接下来,我们将针对每一部分进行详细的阐述。 ### 数据库技术 #### ...

    java面试知识

    - **application**:整个Web应用有效。 ##### List, Set, Collection, Collections - **Collection**:所有集合类的根接口。 - **List**:有序且可重复元素的集合。 - **Set**:不允许有重复元素的集合。 - **...

Global site tag (gtag.js) - Google Analytics