关于struts2中拦截器(interceptor)的问题!!

问题描述

<!-- 系统级包 --><package name="systemPackage" extends="struts-default,json-default"abstract="true"><interceptors><interceptor name="status" class="com.util.statusInterceptor" /><interceptor-stack name="systemStack"><interceptor-ref name="status"><param name="loginResult">redirectLogin</param><param name="excludeActions">image,login</param></interceptor-ref><interceptor-ref name="paramsPrepareParamsStack"></interceptor-ref></interceptor-stack></interceptors><default-interceptor-ref name="systemStack" /><global-results><result name="login">/login.jsp</result><result name="redirectLogin" type="redirect">/login.jsp </result></global-results></package> 以下是问题:1--这个包被所有的包继承,   那么这里面的interceptor  和interceptor-stack  都会执行吗? 还是说只执行default-interceptor-ref ????? 2--其次,<interceptor-ref name="paramsPrepareParamsStack"></interceptor-ref>有什么作用? 3--拦截器和拦截器栈有什么区别?   为什么配置了一个interceptor   又配置个interceptor-stack ???  不是多此一举吗? 问题补充:另外,我这里没有配置defaultStack, 为什么不出错呢???????

解决方案

1--这个包被所有的包继承, 那么这里面的interceptor 和interceptor-stack 都会执行吗? 还是说只执行default-interceptor-ref ?????如果需要执行拦截器,则需要配置引用。两个位置: 1、包级别 <default-interceptor-ref name="systemStack" /> 2、action级别 <interceptor-ref name="paramsPrepareParamsStack">顺序从action找,如果没有找包,如果还没有找父包,找到一个配置使用它并停止搜索。 2--其次,<interceptor-ref name="paramsPrepareParamsStack"></interceptor-ref>有什么作用?这是引用的意思,你可以把它认为是变量,,之前定义好了,可以通过名字引用 3--拦截器和拦截器栈有什么区别? 为什么配置了一个interceptor 又配置个interceptor-stack ??? 不是多此一举吗?栈:一种数据结构,组合多个拦截器的,即把多个拦截器看作一个整体
解决方案二:
会执行你那个自定义的拦截器栈的,至于paramsPrepareParamsStack的作用你可以通过http://zhou137520.iteye.com/blog/1562376这个连接看看;配置拦截器栈是因为一个拦截器栈乐意存放多个拦截器或拦截器栈,这样如果需要多个拦截器的话放到拦截器栈中就不需要多次引用了,只需要引用拦截器栈就可以了。

时间: 2024-08-31 04:08:50

关于struts2中拦截器(interceptor)的问题!!的相关文章

Struts2之拦截器篇

拦截器是Struts2框架的核心和基础,Struts2绝大多数功能都是通过拦截器来完成的,当StrutsPrepareAndExecuteFilter拦截到用户请求后,大量拦截器会对该请求进行处理,然后才调用用户自定义的Action类中的方法进行处理请求,由此可见,拦截器是Struts2的核心所在. Struts2框架内建了大量的拦截器,我们可以在struts-default.xml中进行查看: 那么这些内置拦截器的具体作用是什么呢?     alias 实现在不同请求中相似参数别名的转换 au

Java的Struts2框架中拦截器使用的实例教程_java

1.拦截器小介 拦截器的功能类似于web.xml文件中的Filter,能对用户的请求进行拦截,通过拦截用户的请求来实现对页面的控制.拦截器是在Struts-core-2.2.3.jar中进行配置的,原始的拦截器是在struts-default.xml中配置的,里面封存了拦截器的基本使用方法. Struts2拦截器功能类似于Servlet过滤器.在Action执行execute方法前,Struts2会首先执行struts.xml中引用的拦截器,如果有多个拦截器则会按照上下顺序依次执行,在执行完所有

[转载]难经3:Struts2,拦截器拦不住Result?

[问题] 使用Struts2作为web框架,知道它的拦截器(Interceptor)机制,类似与Filter和spring的AOP,于是实现了一个为Action增加自定义前置(before)动作和后置动作(after)的拦截器(曰:WInterceptor),不过用一段时间发现,在WInterceptor的after中,对Action对象的属性修改在页面看不到,对请求对象的属性设置也无效.为什么在调用了Action之后(invokeAction())之后,request就不能使用了呢,拦截器不能

Flume-NG源码阅读:SourceRunner及选择器selector和拦截器interceptor的执行

在AbstractConfigurationProvider类中loadSources方法会将所有的source进行封装成SourceRunner放到了Map<String, SourceRunner> sourceRunnerMap之中.相关代码如下: Map<String, String> selectorConfig = context.getSubProperties( BasicConfigurationConstants.CONFIG_SOURCE_CHANNELSEL

struts2自定义拦截器怎么进不去

问题描述 一个破拦截器搞了半天没发现哪里出问题了就是进不去自定义的拦截器里,下面贴代码:struts.xml<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dt

struts2整合spring3后,指定spring管理action之后,配置的struts2的拦截器,拦截不到东西

问题描述 struts2整合spring3后,指定spring管理action之后,配置的struts2的拦截器,拦截不到东西 struts2整合spring3后,指定spring管理action之后,配置的struts2的拦截器,拦截不到东西,这是什么原因??? Struts2的Action可以交给Spring管理,但Struts2的拦截器就拦截到不到请求了,望高手帮忙! 解决方案 我也遇到同样的问题 不整合的时候struts什么都能拦,整合后就拦不了了

java-有关Java中拦截器的问题???

问题描述 有关Java中拦截器的问题??? public boolean preHandle(HttpServletRequest request HttpServletResponse response Object handler) throws Exception { if (!(handler instanceof HandlerMethod)) { return true; } ...... } 中这个判断有什么意义吗 解决方案 判断的意义:如果传入的handler不是HandlerM

Android的OkHttp包中的HTTP拦截器Interceptor用法示例_Android

OkHttp(GitHub:https://github.com/square/okhttp) 的 Interceptor 就如同名称「拦截器」一样,拦截你的 Request 做一些你想做的事情再送出去.例如: 1.自动加上使用者目前使用的语言送出去取得对应语言的回传内容. 2.将 Request 计算出这个 Request 的 sigunature 再附加上送出去. 在 okHttp 中分成 Application Interceptor 和 Network Interceptor 两种. A

Struts2的拦截器中属性页面获取问题,求解呀!

问题描述 首先表示感谢,我的问题是这样,客户端通过Jquery与后台Action进行交互,Action返回JSON数理由Jquery在前台页面外理,此时我想在Action中加入一个拦截器判断用户是否登录过,拦截器有一个字段标识用户是否登录,我需要在页面上显示,但是页面获取到的数据总为null,拦截器代码如下:public class GroupManagerInterceptor extends AbstractInterceptor {private static final long ser