Struts2 框架中怎么处理异常Exception

Struts2中异常的处理

在开发Java web应用程序时,由于程序的开发不太完善,导致用户在使用过程中会出现程崩溃的情况,结果就是在浏览器上看见一大堆怎么都看不懂的东西。对于一些商业级的应用可能损失上千万。Struts2 框架异常处理机制对于这种情况提供了有效的支持。

一般情况下,开发中往往希望是这样的:当用户请求发生了异常时,就会转入指定的错误视图资源,不同的异常转入不同的指定的视图资源,用户的体验度就提高了。处理方式有:

1. 在Action中使用try catch解决,但是这中解决方法不怎实用,它只适用一些简单、较小、种类少的异常,此类异常比较简单不在举例子了。

2. 直接在struts.xml配置文件中配置异常,通常有两种方式:全局和局部异常配置,如下:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"

"http://struts.apache.org/dtds/struts-2.1.7.dtd">

<struts>

<package name="demo" namespace="/demo" extends="struts-default">

<!-- 全局异常配置 -->

--------------------------------------------------------------

<global-results>

<result name="myexception">/myexception.jsp</result>

<result name="sqlexception">/sqlexception.jsp</result>

</global-results>

<global-exception-mappings>

<exception-mapping result="myexception"

exception="edu.nwsuaf.xc.MyException"/> //自定义异常

<exception-mapping result="sqlexception"

exception="java.sql.SQLException"/>

</global-exception-mappings>

---------------------------------------------------------------

<!-- 局部异常配置 -->

<action name="demo" class="edu.nwsuaf.xc.Demo">

<exception-mapping result="error"

exception="edu.nwsuaf.xc.Myexception"/>

<result name="success">/success.jsp</result>

</action>

--------------------------------------------------------------

</package>

</struts>

<global-exception-mappings>标签下是对所有的action起作用,

而<exception-mapping>只是对当前Action起作用。

在出现异常后,一般我们开发人员会在JSP页面中输出异信息:

<s:property value=”exception.message” /> // 输出异常对象信息;

<s:property value=”exceptionStack” /> // 输出异常堆栈信息;

时间: 2024-10-22 00:44:32

Struts2 框架中怎么处理异常Exception的相关文章

在struts2框架中实现手动处理输入验证

在struts2框架中实现手动处理输入验证,只需要在Action中对父类ActionSupport的validate方法重写即可.就是讲输入验证逻辑写在validate方法中.下面看项目中的Action类checkUser.java package action; import java.util.regex.Matcher; import java.util.regex.Pattern; import com.opensymphony.xwork2.ActionSupport; public

5.Struts2框架中的ServletAPI如何获取

1.完全解耦合的方式 如果使用该种方式,Struts2框架中提供了一个类,ActionContext类,该类中提供一些方法,通过方法获取Servlet的API 一些常用的方法如下 * static ActionContext getContext() -- 获取ActionContext对象实例 * java.util.Map<java.lang.String,java.lang.Object> getParameters() -- 获取请求参数,相当于request.getParameter

Struts2框架中书写XML配置文件时能添加提示技巧(方案二)

1.  先在/工程名/WebRoot/WEB-INF/lib/struts2-core-2.1.8.jar中找到struts-2.1.dtd文件. 2.  在Myeclipse8.6-->Window-->Preferences 3.  在搜索框输入xml文件,找到XMLCatalog,单击XML Catalog出现如上页面,之后单击Add按钮,出现如下图: 4.  在Location中选择FileSystem,选择struts-2.1.dtd文件的位置,如果这个文件在工程里面,可以使用Wor

请求在Struts2框架中的处理步骤

上图来源于Struts2官方站点,是Struts 2 的整体结构. 一个请求在Struts2框架中的处理大概分为以下几个步骤 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3 接着FilterDispatcher被调用,FilterDispatcher询问A

在Struts2框架中使用Servlet的API

1. 在Action类中也可以获取到Servlet一些常用的API * 需求:提供JSP的表单页面的数据,在Action中使用Servlet的API接收到,然后保存到三个域对象中,最后再显示到JSP的页面上. * 提供JSP注册的页面,演示下面这三种方式 <h3>注册页面</h3> <form action="${ pageContext.request.contextPath }/xxx.action" method="post"&g

一个请求在Struts2框架中的处理流程

1.客户端向Servlet容器发起一个请求,将请求封装为HttpServletRequest对象. 2.HttpServletRequest首先经过web.xml中配置的struts2的过滤器,以及struts2内置的一些过滤器. 3.接着FilterDispatcher(现已过时)被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action. 4.如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处

解析xml文件,遍历输出xml文件中的所有节点, 最终模仿实现struts2框架

程序结构:src文件夹下存放xml文件 该文件内容: <?xml version="1.0" encoding="UTF-8"?> <mystruts> <actions name="myaction1" namespace="/"> <action name="userdao" class="org.action.UserDAO"> &l

Struts2框架之-注解开发

Struts2主要解决了从JSP到Action上的流程管理,如何进行Uri和action类中每个方法的绑定这是重点,在这里先简单看一下配置文件中的简单配置: <span style="font-size:18px;">  <!-- 这是包名和命名空间的声明 --> <package name="orgPackage" namespace="/org" extends="struts-default"

struts2框架 转载 精华帖

一.Struts2简介 参考<JavaEE 轻量级框架应用与开发-S2SH> Struts框架是流行广泛的一个MVC开源实现,而Struts2是Struts框架的新一代产品,是将Struts1和WebWork两种技术进行兼容.合并的全新的MVC框架.Struts2框架充分发挥了Struts1和WebWork这两种技术的优势,抛弃原来Struts1的缺点,使得Web开发更加容易. Struts1运行原理:  Struts1工作流程: (1)客户端向Web应用发送请求,请求被核心控制器Action