1.自定义拦截器
1.implements Interceptor
2.extends AbstractInterceptor
二) 在struts.xml中
<interceptors>
<interceptor name="xx" class="xx"/>
..
<interceptor-stack name="xxx">
<interceptor-ref name="xx">
<param name="属性">值</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
在Action中覆盖拦截器中属性值
<interceptor-ref name="拦截器栈">
<param name="拦截器.属性">值</param>
</interceptor-ref>
对于方法过滤的拦截器
extends MethodFilterInterceptor
关键是在struts.xml中的配置
<interceptor-ref name='x'>
<!--不需要拦截的方法-->
<param name="excludeMethods">方法名</param>
<!--需要拦截-->
<param name="includeMehtods"></param>
</interceptor-ref>
2.表单的重复提交 token
在页面表单中使用<s:token></s:token>
3.文件的上传
页面 <form enctype="multipart/form-data" method="post">
File <input type="file" name="pic"/>
</form>
Action
属性 private File pic;
private String picFileName;文件名称
private String picContentType;文件类型
如何由逻辑路径获得绝对路径
1.implements ServletRequestAware/ServletContextAware
2.ServletActionContext 工具类,获得Servlet API
4.在src中提供struts.properties配置文件
修改文件上传异常的错误信息
1.在src中创建 资源文件
上传文件太大
struts.messages.error.file.too.large
上传的类型不允许
struts.messages.error.content.type.not.allowed
2.要再struts.xml中配置资源文件
5.Struts2.0的异常处理机制
1.什么是异常?软件在开发和运行过程中可能遇到的错误。【对象】
2.异常的种类?
Check异常【检测时异常】在编译过程中必须进行处理(编译器不通过)
IOException / ClassNOTFoundException
Runtime异常[运行时异常] 运行时出现的异常,在程序开发过程中不需要额外的处理
NUllPOINException/ArrayOutofIndexException
自定义异常
如何定义异常
1.写一类继承Exception/RuntimeException
A public class MyException extends Exception{ }
继承了Exception,检测异常,必须进行处理 try...catch/throw
B public class MyExceptionA extends RuntimeException{}
继承了RuntimeException,运行时异常,不做处理
如何定义异常的方式?
现在java开发思路,主要的异常处理采用RuntimeException
jdbc和hibernate
3.如何处理异常
try..catch:如果try块中出现异常,交给catch块处理,如果发生的异常在本类中能够 处理则使用try..catch
throw : 如果异常本类不能处理,将异常抛给调用者
4.在J2EE体系中如何处理异常
MVC模型:DB-->DAO-->BIZ-->Action
DB数据库:数据库异常和java的关系不大,主要讨论Dao/Biz/Action的异常处理
DAO操作数据库的异常:Dao层异常不能处理,抛给Biz层
Biz Dao的异常,业务异常:向上抛Action
Action Dao的异常,业务异常:Action的异常不能向上抛,只能处理,使用try..catch
Struts2.0只能使用一个页面处理异常,告诉用户异常的原因。
在实际开发过程中对于
Dao层的异常,不需要具体交代,整个封装告知数据库异常即可
业务异常,需要具体交代【余额不足,账户不存在】
Struts2.0对于异常处理的机制
问题:如果在Action中使用大量的try...catch语句会造成代码的结构,以及可维护性的降低
在Action中不处理异常,主要在配置文件struts.xml中进行处理
Struts2day05学习笔记
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.