1.interceptor的种类
Dubugstruts2源码之后,对其有了一些初步的认识。
对照官方文档,了解了每个拦截器的作用,如下所示的默认拦截器栈:
<interceptor-stackname="defaultStack">
<interceptor-refname="exception"/>
<interceptor-refname="alias"/>
<interceptor-refname="servletConfig"/>
<interceptor-refname="i18n"/>
<interceptor-refname="prepare"/>
<interceptor-refname="chain"/>
<interceptor-refname="scopedModelDriven"/>
<interceptor-refname="modelDriven"/>
<interceptor-refname="fileUpload"/>
<interceptor-refname="checkbox"/>
<interceptor-refname="multiselect"/>
<interceptor-refname="staticParams"/>
<interceptor-refname="actionMappingParams"/>
<interceptor-refname="params">
<paramname="excludeParams">dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,parameters\...*</param>
</interceptor-ref>
<interceptor-refname="conversionError"/>
<interceptor-refname="validation">
<paramname="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<interceptor-refname="workflow">
<paramname="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<interceptor-refname="debugging"/>
</interceptor-stack>
比如针对其中较为主要的几个拦截器进行了源码分析:exception、alias、chain、params。由于拦截器栈里的拦截器是从上往下的顺序执行的,因此我们在自定义拦截器的时候也需注意。
2.对exception拦截器的初步了解
理解的过程中,比较关注的拦截器之一是异常拦截器。
在网上看到了一篇关于java异常处理的文章,现分享点击打开链接,其讲述的原理如下图所示:
异常的分类有:Throwable的子类有Error与Exception,而Exception又分为运行时异常与非运行时异常。
以上-> ->感谢basil的贡献。