Struts2之拦截器原理分析及使用-上

来源:互联网 发布:郑州航院网络教学平台 编辑:程序博客网 时间:2024/05/21 21:34

一、学习案例:通过在loginUI.jsp页面填写表单提交成功跳转到结果页面,查看控制台输出,初步了解拦截器工作流程。

 

二、案例分析:

a)创建拦截器(MyInterceptor.java)实现Interceptor接口。

创建成功后,会实现三个方法:init(),destroy(),intercept()

我们主要是使用intercept()方法,在此实现功能。

init()会在服务器启动struts.xml加载时进行自动调用。

destroy()会在服务器重启时调用。

 

b)struts.xml定义之前创建的拦截器

拦截器定义是在package下定义的,而不是action中。

 

c)action中引用拦截器

只需填写定义拦截器的名称即可调用,但是在自己的拦截器之后要紧接着调用defaultStack

 

d)struts.xml中定义拦截器时,我们传递了参数,而在拦截器中我们只需定义一个成员变量,并且添加setXXX()方法即可。Struts2会帮我们自动设值。

 

 

 

 

三、经验之谈:

a)对于一些概念性的东西,大家最好明白流程和原理,这样有助于记忆。同时,对于初学者来讲不管是java也好,还是其他语言,千万别死记硬背,这种学习方式是大学之前为了应付考试而出现的。学习语言这些东西,理解就是最好的学习方式。

b)拦截器这一块可以将很重要。但重要是相对struts2讲的。Struts2的很多功能的实现都是依靠拦截器完成的。相对我们开发人员来讲,理解和会使用就OK了,实际使用的情况并不多。在我的“爱尚合伙人”中就只在权限模块中使用了。所以关于拦截器这块我主要会带大家查看源码,毕竟是struts2核心的东西,源码这种好东西是必须要看的。

c)关于考虑问题的方式跟大家讲下。当你学某种东西时,比如学习struts2,那我们考虑问题,就应该用struts2的方式去考虑问题,例如,struts2action中为成员变量赋值是通过setXXX()方法,那么在我们配置拦截器参数,在拦截器中获取时,我们首先就应该想到通过setXXX()方法获取,而不是像过滤器中通过getInitParam()获取。当然这种方式是建立在对工具的了解,以及对工具实现原理了解的基础上的,所以看源码真的很重要哦。

 

四、参考项目:http://download.csdn.net/detail/u011638419/8198713

 

五、每日一乐:

我的女友是个吃货。

有一次她吃得很饱肚子很圆,摸着肚子说:与其让男人把肚子搞大,还不如自己把肚子搞大。

 

最终解释权归爱尚合伙人所有,转载请注明出处。

 

1 1
原创粉丝点击