拦截器.ppt

上传人:本田雅阁 文档编号:3124221 上传时间:2019-07-13 格式:PPT 页数:16 大小:137.51KB
返回 下载 相关 举报
拦截器.ppt_第1页
第1页 / 共16页
拦截器.ppt_第2页
第2页 / 共16页
拦截器.ppt_第3页
第3页 / 共16页
拦截器.ppt_第4页
第4页 / 共16页
拦截器.ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《拦截器.ppt》由会员分享,可在线阅读,更多相关《拦截器.ppt(16页珍藏版)》请在三一文库上搜索。

1、by Fred Wang,Struts2 Interceptors,本次课程目标,了解拦截器原理 了解Struts2拦截器 拦截器配置 自定义拦截器,为什么需要拦截器,清理与业务无关的操作,封装,独立化 事前,事后 代码重用 可配置,更高层次解耦合,拦截器的工作方式,通过动态调用,指定对应的拦截器和拦截的目标方法,在目标方法运行前后插入需要执行的代码,Struts2的拦截器,Struts2使用ActionProxy,在Action被调用前,拦截并根据配置运行多个拦截器,拦截器配置,定义中传入默认参数: value 堆栈: . 堆栈中可以包含另一个堆栈的引用,拦截器配置二,调用时动态传入参数:

2、在action定义中引用,为参数赋值 默认拦截器: 每一个包可以定义且只能定义一个 包中action如果没有显式定义拦截器,就使用默认,如果有,则运行定义的而不运行默认。,修改拦截器栈內某拦截器的配置,引用堆栈时使用拦截器名.参数名作为参数名 value ,实现拦截器类,实现Interceptor或者继承AbstractInterceptor 在intercept方法中,可以通过invocation.getAction()获得Action实例,做完拦截器自身业务后使用invocation.invoke()继续执行 开发完成后应定义并在action中配置执行,拦截器方法过滤:,继承MethodF

3、ilterInterceptor 重写doFilter(ActionInvocation invok) 有excludeMethods和includeMethods两个属性用于配置哪些方法拦截,哪些不拦截。如果同时配置拦截和不拦截,结果将拦截,拦截器运行顺序,Action执行前按配置顺序 执行后按倒序,拦截action结果,定义监听器MyLisnr() implements PreResultListener实现beforeResult()方法 在拦截器中注册监听器invocation.addPreResultListener(new Mylisnr() 监听器中实现的beforeResult

4、()将在拦截器得到result前执行 在beforeResult()中如果再次调用invoke()将进入死循环!,常用拦截器defaultStack,Exception 处理所有的异常并找对应结果 Alias 不同请求之间相识参数别名的转换 Servlet-config Servlet API注入 Prepare 对实现Preparable接口的action调用prepare() I18n 把所选的语言、区域放入session Chain 构造action chain,配合result type=“chain”使用使action可以访问到前面action的属性, Debugging 提供额外d

5、ebug信息 Profiling 通过参数激活profile Scoped-model-driven 当action实现ScopedModelDriven,它将在对应的scope中寻找model并放入action Model-driven 当action实现ModelDriven,它将getModel()并放入ValueStack fileUpload 文件上传时解析form中的内容 Checkbox添加了checkbox自动处理代码,将没有选中的checkbox的内容设定为false,而html默认情况下不提交没有选中的checkbox Static-params 传入xml中所有param

6、参数 Params 解析http请求参数并放入action,实例:登录验证,Package com.fred.s2.interceptor; Public class LoginInterceptor extends AbstractInterceptor public String intercept(ActionInvocationn ai) throws Exception User user=ai.getInvocationContext() .getSession().get(“user”); if(null!=user) return invocation.invoke(); else return Action.LOGIN; ,配置方法一:单独配置, . /login.jsp ,配置方法二:配置成默认stack,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1