-
在自己配置拦截器的时候,Aciton不会再引用默认的拦截器,这时候需要手动的引入默认的拦截器(一般放在自己设置的拦截器之前)查看全部
-
默认拦截器栈查看全部
-
在struts.xml中配置拦截器:1.在package下面配置拦截器。 2.在action下面引入拦截器查看全部
-
定义计算action时间的拦截器,其中invocation.invoke();方法返回的是Action执行结果返回的页面。查看全部
-
struts的执行流程: 1用户发送请求到服务器,服务器通过ActionMapper执行一系列的过滤器,其中包括struts的核心过滤器StrutsPrepareAndExecuteFilter 2.ActionProxy(Action代理)通过ConfigurationManager(配置管理器)加载struts的核心配置文件struts.xml,找到需要调用的action返回给action代理 3.然后执行Action Invocation,其中包含一个或者多个拦截器,依次执行,然后才是执行Action,Action返回一个结果决定跳转到哪个视图或者是action(result的type属性决定)。然后依次反向执行拦截器,之后将结果反馈给用户查看全部
-
拦截器的工作原理查看全部
-
拦截器栈查看全部
-
在创建拦截器时需要继承ActionInterceptor类查看全部
-
struts2 默认拦截器栈查看全部
-
默认拦截器栈 1.在struts-default.xml中定义一个defaulStack拦截器栈,并将其指定为默认拦截器. 2.只要在定义包的过程中继承struts-default包,那么defaultStack将是默认的拦截器. 3.当为包中的某个action显式指定了某个拦截器,则默认拦截器不会起作用. 4拦截器栈中的各个拦截器的顺序很重要.查看全部
-
拦截器配置: 1.注册拦截器 <package>标签下创建<interceptors>标签 <interceptors>标签内创建<interceptor>子标签,并给其name属性赋值 2.引用拦截器 <action>标签下使用<interceptor-ref>标签引用,<interceptor-ref>标签的name属性值对应拦截其的name查看全部
-
自定义拦截器: 有两种方式: 方式一:实现Interceptor接口 有三个方法: -void init():初始化拦截器所需资源 -void destroy() :释放在init()中分配的资源 -String intercept(ActionInvocation ai)throws Exception 实现拦截器功能 利用ActionInvocation参数获取Action状态 返回result字符串作为逻辑视图 方式二:继承AbstractInterceptor类 -提供了init()和destroy() 方法的空实现 -只需要实现intercept方法即可 实际开发当中一般会去继承AbstractInterceptor这个父类查看全部
-
拦截器工作原理: 拦截器的执行过程是一个递归的过程。 拦截器的工作原理与web中的过滤器Filter很相似查看全部
-
客户端通过httpservletrequest向servlet容器,也就是tomcat提交一个请求,这个请求会经过一些列的过滤器,如ActionContentClearUp过滤器,最终被struts核心过滤器过滤,也就是FilterDispatcher.从struts2.1.3版本以后struts的核心控制器发生了变化,变成了PrepqreAndExecuteFiletr,核心过滤器过滤以后,调用访问ActionMapping,决定是否调用某一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响应客户端的请求.查看全部
-
自定义拦截器: 有两种方式: 方式一:实现Interceptor接口 有三个方法: -void init():初始化拦截器所需资源 -void destroy() :释放在init()中分配的资源 -String intercept(ActionInvocation ai)throws Exception 实现拦截器功能 利用ActionInvocation参数获取Action状态 返回result字符串作为逻辑视图 方式二:继承AbstractInterceptor类 -提供了init()和destroy() 方法的空实现 -只需要实现intercept方法即可 实际开发当中一般会去继承AbstractInterceptor这个父类查看全部
举报
0/150
提交
取消