-
拦截器工作原理查看全部
-
struts构架: 客户端通过httpservletrequest向servlet容器,也就是tomcat提交一个请求,这个请求,会经过一些列的过滤器,如ActionContentClearUp过滤器,最终被struts核心过滤器过滤,也就是FilterDispatcher从struts2.1.3版本以后struts的核心控制器发生了变化,变成了PrepqreAndExecuteFiletr,核心过滤器过滤以后,调用访问ActionMapping,决定是否调用某一action,如果action请求的是jsp页面或者是其他资源,不会调用某一action,如果决定调用某一action,ActionMapping会将控制权委派给ActionProxy,也叫action代理,这是action代理会通过一个Configuration Manager也就是配置管理器对象加载struts核心配置文件,也就是struts.xml。如果在struts.xml找到需要创建的action,ActionProxy会创建一个Action Invocation实例,action Invocation包括一些列的拦截器和action,先顺序执行一些列的拦截器,然后执行action处理,返回一个结果,通过result返回一个视图或者调用另外某个action。当返回这个视图以后,将之前执行过的拦截器反向执行一遍,然后通过response响应客户端的请求。查看全部
-
自定义拦截器的实现方法查看全部
-
默认拦截器栈 1.在struts-default.xml中定义一个defaulStack拦截器栈,并将其指定为默认拦截器. 2.只要在定义包的过程中继承struts-default包,那么defaultStack将是默认的拦截器. 3.当为包中的某个action显式指定了某个拦截器,则默认拦截器不会起作用. 4拦截器栈中的各个拦截器的顺序很重要.查看全部
-
fileUpload拦截器 对文件爱你上传提供支持,将文件和元数据设置到对应的Action属性 exception拦截器 -捕获异常,并且将异常映射到用户自定义的错误页面 validation拦截器 调用验证框架进行数据验证查看全部
-
Struts2内建拦截器 params拦截器 负责将请求参数设置为Action属性 staticParams拦截器 将配置文件中action元素的子元素param参数设置为Action属性 servletConfig拦截器 - 将源于Servlet API的各种对象注入到Action,必须实现对应接口查看全部
-
方式二`: 继承AbstractInterceptor类 提供了init()和destory()方法的空实现 只需要实现intercept方法即可查看全部
-
如何自定义拦截器 方式一: 实现Interceptor接口 void init() : 初始化拦截器中所需的资源 void destroy(): 释放在init()中分配的资源 String intercept(ActionInvocation ai) throws Exception 实现拦截器功能 利用ActionInvocation参数获得Action状态 返回result字符作为逻辑视图查看全部
-
拦截器的执行过程是一个递归的过程查看全部
-
拦截器栈 从结构上看,拦截器栈相当于多个拦截器的组合. 从功能上看,拦截器栈也是拦截器.查看全部
-
Struts2大多数核心功能是通过拦截器实现的,每个拦截器完成某项某项功能. 数据转移,类型转换,数据校验 拦截器方法在Action执行之前或者之后执行.查看全部
-
拦截器栈: 注册: 在interceptors标签中注册,和interceptor注册好像 <interceptor-stack name=""> <interceptor name=""/> ........ </interceptor-stack> 配置: 和interceptor配置一样,使用<interceptor-ref>引用 指定默认拦截器或拦截器栈 <default-interceptor-ref>标签name属性指定 一般先引用默认拦截器栈,再引用其他拦截器 自定义拦截器栈,在拦截器栈标签内使用interceptor-ref引用其他拦截器或拦截器栈 如: <interceptors> <interceptor name="authInterceptor" class="com.interceptor.AuthInterceptor"></interceptor> <interceptor-stack name="myStack"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="authInterceptor"></interceptor-ref> </interceptor-stack> </interceptors>查看全部
-
拦截器:Interceptor 拦截器的创建: 实现Interceptor接口(实现该接口的init、destory、interceptor方法,init、destory方法可以空实现) 或者继承AbstractInterceptor抽象类(该类已经空实现了init、destory方法,所以只需要实现interceptor方法即可) interceptor方法: 第一次拦截操作; 执行下一个拦截器,如果为最终拦截器,则执行Action的执行方法(invocation.invoke();,//invocation为interceptor方法的ActionInvocation参数名,invocation.invoke()返回一个string类型的返回值,该值等于action执行方法的返回值,可以使用变量result接受) 第二次拦截操作,return result; 拦截器配置: 1.注册拦截器 <package>标签下创建<interceptors>标签 <interceptors>标签内创建<interceptor>子标签,并给其name属性赋值 2.引用拦截器 <action>标签下使用<interceptor-ref>标签引用,<interceptor-ref>标签的name属性值对应拦截其的name查看全部
-
什么是拦截器? struts中很多功能都是通过拦截器实现的,每个拦截器完成某项功能 拦截器在action执行之前或者是在action执行之后执行 什么是拦截器栈? 从结构上看,拦截器栈相当于多个拦截器的组合 从功能上看,拦截器栈也是拦截器 拦截器栈的使用和拦截器使用完全相同 过滤器的执行流程和拦截器几乎一样查看全部
-
struts构架: 客户端通过httpservletrequest向servlet容器,也就是tomcat提交一个请求,这个请求,会经过一些列的过滤器,如ActionContentClearUp过滤器,最终被struts核心过滤器过滤,也就是FilterDispatcher从struts2.1.3版本以后struts的核心控制器发生了变化,变成了PrepqreAndExecuteFiletr,核心过滤器过滤以后,调用访问ActionMapping,决定是否调用某一action,如果action请求的是jsp页面或者是其他资源,不会调用某一action,如果决定调用某一action,ActionMapping会将控制权委派给ActionProxy,也叫action代理,这是action代理会通过一个Configuration Manager也就是配置管理器对象加载struts核心配置文件,也就是struts.xml。如果在struts.xml找到需要创建的action,ActionProxy会创建一个Action Invocation实例,action Invocation包括一些列的拦截器和action,先顺序执行一些列的拦截器,然后执行action处理,返回一个结果,通过result返回一个视图或者调用另外某个action。当返回这个视图以后,将之前执行过的拦截器反向执行一遍,然后通过response响应客户端的请求。查看全部
举报
0/150
提交
取消