基于Struts2拦截器的使用总结
来源:互联网 发布:数据库搭建步骤 编辑:程序博客网 时间:2024/05/24 04:47
Struts2 中的拦截器和 servelt 中的过滤器是非常的相似的。如果学过过滤器的话,肯定能够感觉的到,尽管有些微的不同。可是struts2的拦截器到底如何使用呢,为什么会有这些配置呢? 接下来一一来看。
过滤器和拦截器是非常相似的,过滤器 public interface Filter 接口里面有三个方法:
• init(FilterConfig filterConfig),
• destroy(),
• doFilter(ServletRequest request, ServletResponse response, FilterChain chain),
这里面的 doFilter() 方法是最重要的,在 struts2 中 String intercept(ActionInvocation invocation)就相当于此方法。
如何完成一个拦截器呢?在 struts2 中要实现一个接口,里面也有三个方法,有 init, destroy 和 intercept 三个方法,而在 struts2 里面的所有的拦截器都继承这个接口!
实现如下 Java代码 package com.interceptor; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; public class MyInterceptor implements Interceptor{ private String string; public String getString() { return string; } public void setString(String string) { this.string = string; } public void init() { System.out.println("init"); } public String intercept(ActionInvocation invoker) throws Exception { System.out.println("intercept"); String result=invoker.invoke(); return result; } public void destroy() { System.out.println("destory"); } }
intercept 方法返回一个字符串,这个里面最重要的是 ActionInvocation 也是个抽象的接口,里面有个 invoke() 方法
作用:Invokes the next step in processing this ActionInvocation. 即调用下一个拦截器,如果有的话!
拦截器进行了实现,但是如何让struts2知道我们写了个拦截器呢,此时必须在struts.xml中配置一下。如下所示
Xml代码 1. <struts> 2. <package name="struts2" extends="struts-default"> 3. <interceptors> 4. <interceptor name="myinterceptor" class="com.interceptor.MyInterceptor"> 5. <param name="string">world</param> 6. </interceptor> 7. </interceptors> 8. </package> 9. <struts>
这里为了测试,用了一个虚拟的注册页面register.jsp 和 RegisterAction
Xml代码 1. <action name="register" class="com.test.action.RegisterAction" > 2. <result name="input">/register.jsp</result> 3. <result name="success">/success.jsp</result> 4. </action>
将上面的配置整合起来就是:
ml代码 1. <struts> 2. <package name="struts2" extends="struts-default"> 3. <interceptors> 4. <interceptor name="myinterceptor" class="com.interceptor.MyInterceptor"> 5. <param name="hello">world</param> 6. </interceptor> 7. </interceptors> 8. 9. <action name="register" class="com.test.action.RegisterAction" > 10. <result name="input">/register.jsp</result> 11. <result name="success">/success.jsp</result> 12. <interceptor-ref name="myinterceptor"></interceptor-ref> 13. </action> 14. </package> 15. <struts>
接着上面result后面添加一个把!
Xml代码 1. <interceptor-ref name="defaultStack"></interceptor-ref>
为拦截器添加参数
好了,到了这里,让我们来处理上面为myinterceptor拦截器添加的参数问题吧
Xml代码
<param name="hello">world</param>
这里我们可以通过配置文件,给拦截器添加一个参数,那这个在拦截器中怎么取得的呢?
了解过滤器的朋友都知道,里面有个init(FilterConfig filterConfig)方法在这里可以取值,而在struts2中没有这么麻烦,做法吗,上面其实已经给出来了! get和set方法
写个变量,然后加上get和set方法,当然变量的名字必须和设定的参数是相同的,这个是赋值成功的前提条件
“`
- 基于Struts2拦截器的使用总结
- Struts2 拦截器的使用总结
- Struts2的拦截器总结
- Struts2的拦截器总结
- Struts2的拦截器总结
- Struts2的拦截器总结
- 基于Struts2拦截器的权限控制
- struts2基于注解的拦截器配置
- Struts2拦截器的使用
- Struts2拦截器的使用
- struts2拦截器的使用
- Struts2拦截器的使用
- Struts2拦截器的使用
- Struts2的拦截器使用
- struts2拦截器的使用
- Struts2拦截器的使用
- Struts2拦截器的使用
- Struts2拦截器的使用
- css使用字体文件
- URI和URL的区别
- bash脚本实现fabnacci函数
- Java开发的流量分析系统
- DateUtil.java 日期格式处理
- 基于Struts2拦截器的使用总结
- JAVA蓝桥杯Fibonacci求余
- Gstreamer整体分析1——Element的创建及Plugin的加载
- 基础练习 龟兔赛跑预测
- 【转】深度学习路线
- 122. Best Time to Buy and Sell Stock II
- psmisc工具
- 可重入函数与线程安全的区别和联系
- Spring源码学习之BeanFactory和FactoryBean