struts入门--自定义拦截器(custom interceptor)之耍耍拦截器

哈哈,下午在寝室,无聊。还是干点事情稳当。于是学习了下struts里面的自定义拦截器。

 

八嘎,原来可以这样。好,写下来。

 

今天我做的很简单,就是两个jsp页面(一个登陆,一个登陆后转到的页面),一个action,一个interceptor,当然还是一些配置的xml文件,如:web.xml,我就不说了撒。

 

 

首先说说登陆的那个页面吧。

login.jsp:

多的我就不说了,说多久啰嗦了,上数据。

 

done.jsp:

 

然后是我们的亲爱的action文件。

LoginAction.java:

 

struts.xml:

这个得先给大家看看。

 

 

目标很明确,目的很简单。就是一个表单,填入数字,提交,然后,转到done.jsp里面去,action里面什么都没有做。

 

上面的我还是运行成功了的。

 

接下来就开始我们的拦截器吧!O(∩_∩)O~~

 

 

 

这个拦截器里面干了些什么,文件里面的注释都已经写清楚了,我还是说下。

他继承于import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

1.打印出action里面的 time_now

2.打印出request里面的 time_now(和上面对比)

3.设置action里面的time_now

4.基本完成,下一步给其它操作来处理。

 

 

写完了?不可能我们这样就对了吧。

当然没有。

 

下一步:

注册拦截器:

怎么注册?

 

注册了怎么用喃?

这样用:

注:我另外用了两个struts自带的拦截器。

 

 

 

上面这两个该放在什么地方勒?

 

看了下面你就知道了:

 

 

 

哈哈,知道了撒。

 

 

接下来勒?

运行撒。

 

 

填个数据试试撒:

 

 

提交后的结果:

 

 

不是我们有一些system.out.println()?

 

这里:

 

 

大家看看,一个打印时有个null。为什么呢?

 

 

我们来看看这个(正宗action的生存周期):

 

 

知道打印action里面的   time_now 为什么是null了吧。

 

因为拦截器启动的时候,没有action操作的份,所有action里面当然是什么都没有。但是request里面是有的。

 

当action打印  time_now的时候,拦截器已经重新设置了action里面的time_now了。

 

 

总的流程是:提交——》拦截器拦截——》拦截器打印action的time_now——》拦截器打印request的time_now——》拦截器转到action,action打印time_now——》拦截器打印  what。

 

以上皆是个人实验所得出的结论,不代表完全正确。

 

 

继续修炼。。。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值