Struts2之异常处理
一、学习案例:通过在input.jsp页面输入登录账号和password測试异常处理机制。
二、案例分析:struts2提供了局部异常处理机制和全局异常处理机制。局部优先于全局异常处理,当异常找不到局部异常处理时才会查询全局异常处理。
a)异常类声明
<pre class="java" name="code">public class UsernameException extends Exception { private String message; public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
} public UsernameException(String message){
super(message);
this.message = message;
} }
b)抛异常
if(!"admin".equals(username)){
throw new UsernameException("用户名输入错误! ");
}
c)Struts.xml配置异常处理
1、局部异常处理(作用在当前action。
)
<action name="login" class="com.almostman.action.LoginAction">
<exception-mapping result="usernameInvalid" exception="com.almostman.exception.UsernameException"/>
<exception-mapping result="passwordInvalid" exception="com.almostman.exception.PasswordException"/>
<result>/login.jsp</result>
<result name="usernameInvalid">/usernameInvalid.jsp</result>
<result name="passwordInvalid">/passwordInvalid.jsp</result>
</action>
2、全局异常处理(作用在当前package。)
<!-- 全局结果 -->
<global-results>
<result name="usernameInvalid">/usernameInvalid.jsp</result>
<result name="passwordInvalid">/passwordInvalid.jsp</result>
</global-results> <!-- 全局异常 -->
<global-exception-mappings>
<exception-mapping result="usernameInvalid" exception="com.almostman.exception.UsernameException"/>
<exception-mapping result="passwordInvalid" exception="com.almostman.exception.PasswordException"/>
</global-exception-mappings>
三、经验之谈:
a) 异常处理。一般在敲代码时。一定要记得往外抛异常,千万别搞个try...catch就无论了。特别是面试时,异常处理也是非常重要的。我曾面试过一个公司,当时面试官就指出这一点了。
所以遇到异常一定记得往外抛。
b) 代码的健壮性。什么是代码的健壮性。比方最基础的,我们学习servlet时数据库的增删改查。你可能几十行就能搞定。但这种程序也更easy被别人“搞定”。这里的搞定是破坏的意思。敲代码就算一时不能面面俱到,也要最起码的全面考虑下再下手,别看过需求上来就下手。
遇到问题解决这个问题,到最后可能换一种方式就能非常easy实现的功能被你搞的千疮百孔。
c) 异常处理在项目中是常常见到的。可是不是我们这样处理的。假设异常都这样处理struts2对这一块也就太失败了。每一个系统都有自己的异常处理方案在此就不多讲了。我要说的是,自己开发系统时,在保证代码的健壮性的前提下。我们仅仅需配置全局异常就可以,不是必需全部的出现几率不大的异常都进行处理。
四、參考项目:http://download.csdn.net/detail/u011638419/8182127
五、每日一乐:
20岁之前。爸妈说不许交男朋友,交了就不准进家门。
但是。20岁之后。爸妈又说。再不交个男朋友就别回来了。
终于解释权归爱尚合伙人全部,转载请注明出处。
Struts2之异常处理的更多相关文章
- Struts2的异常处理
Struts2的异常处理 1.异常处理机制(1)发送请求到控制器(Action); (2)Action出现异常后,依照所捕捉的不同异常转入不同的视图资源. 2.异常捕捉 (1)在Action的处理逻辑 ...
- 【struts2】Struts2的异常处理
在Action中execute方法声明为:public String execute() throws Exception,这样,Action可以抛出任何Exception. 1)自己实现异常处理 我 ...
- (十)struts2的异常处理机制
成熟的MVC框架应该提供成熟的异常处理机制.当然可以在方法中手动捕捉异常,当捕捉到特定异常时,返回特定逻辑视图名. 这种方式非常繁琐,需要在方法中写大量try catch块,最大的缺点还是一旦需要改变 ...
- struts2:异常处理
Struts2框架提供了自己的异常处理机制,只需要在struts.xml文件中配置异常处理即可,而不需要在Action方法中来捕捉异常. 传统方法 public String execute() th ...
- java之struts2之异常处理
1.在应用项目中,异常的出现时很正常的.而且项目上线后发生异常也很正常的.那么需要对这些异常有相应的处理机制,以便客户能够看你到更加友好的界面.Struts2中提供了异常处理机制. 2.Struts中 ...
- 配置Struts2的异常处理
最好的方式是通过声明管理异常处理 1Action里面的execute()方法抛出所有异常:public String execute() throws Exception{} 2声明异常捕捉 ...
- SSH答疑解惑系列(三)——Struts2的异常处理
Struts2的异常采用声明式异常捕捉,具体通过拦截器来实现. 在项目中,我们可以在Action中直接抛出异常,剩下的就交给Struts2的拦截器来处理了.当然,我们需要进行相关配置. Struts2 ...
- Struts2全局异常处理
1.在struts.xml中配置全局异常处理 在Action中抛出异常,此异常可以是action自己抛的,也可以是Service抛出来的,都会跳转到全局异常中,只有在当前Action中配置域全局异常返 ...
- Struts2 语法--异常处理
1. UsersDAO.java里产生一个例外: System.out.println(1/0); 2. 调用DAO的UsersAction1.java 的execute方法, 加抛异常: publi ...
随机推荐
- .NET之美——1.1 C#中的泛型
1.1 C#中的泛型 .Net 1.1版本最受诟病的一个缺陷就是没有提供对泛型的支持.通过使用泛型,我们可以极大地提高代码的重用度,同时还可以获得强类型的支持,避免了隐式的装箱.拆箱,在一定程度上提升 ...
- 【剑指offer 面试题23】从上往下打印二叉树
思路: 没啥好说的,BFS. C++: #include <iostream> #include <queue> using namespace std; struct Tre ...
- Android-day02_广播
1.什么是广播 貌似一个人大声喊一句话,别人听到了这就是广播 2.在android中广播有标准广播和有序广播 标准广播也就是发送一个广播,所有人都能同一时间接收到 有序广播则是有顺序的广播,发送的时候 ...
- 纯css实现扁平化360卫士logo demo
前几天在w3ctech上看到有人用纯css写出了360卫士的logo,感觉蛮好玩的. 因为自己用css以来,还没有写过这种玩意,出于娱乐,我也来试着尝试一下. 开始也不知到怎么下手,最棘手的是那两个像 ...
- 杂谈:HTML 5页面可视性API
译文来源:http://www.ido321.com/1126.html 原文:HTML5 Page Visibility API 译文:HTML 5的页面可视性API 译者:dwqs 在早期,浏览器 ...
- 写i2c_client驱动的两种方式
http://www.cnblogs.com/simonshi/archive/2011/02/24/1963426.html
- MFC学习20160718(GetModuleFileName&&GetAppDataPath)
1.标题栏设置 一.对话框标题栏内容为静态 直接在对话框属性“General”的“Caption”中修改. 二.对话框标题栏内容为动态生成的 在对应对话框的初始化函数OnInitDialog()中添加 ...
- Spark SQL概念学习系列之为什么使用 Spark SQL?(二)
简单地说,Shark 的下一代技术 是Spark SQL. 由于 Shark 底层依赖于 Hive,这个架构的优势是对传统 Hive 用户可以将 Shark 无缝集成进现有系统运行查询负载. 但是也看 ...
- ubuntu 备份安装程序列表
一般情况下,我们重装ubuntu的系统会做如下几个事情 1)修改默认的程序更新源 2)开始根据需求安装软件. 3)配置文件(如vim/tmux等) 对于步骤,只需要cp /etc//etc/apt/s ...
- flask中的request.form对象方法
'add','clear','copy','deepcopy','fromkeys','get','gtlist','has_key','items','iteritems','iterkeys',' ...