Struts2框架里的Struts.xml配置文件里的拦截器和Action各自什么意思,二者有什么关系,初学,求高手指点~

 我来答
fangjinsong200
2011-12-30 · TA获得超过282个赞
知道答主
回答量:160
采纳率:100%
帮助的人:27万
展开全部

拦截器拦截请求(Request),阻止非法请求,比如字符乱码,登录,权限。Action就是业务处理请求的中心,所有请求在这里被处理里,处理结果又Action返回一个逻辑视图。这张图最典型了。

liubingwwww
2011-12-31 · 超过20用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:57.9万
展开全部
1.从设计模式上来讲,struts2拦截器其实是实现了一个责任链模式
请求--->【拦截器1】--->【拦截器2】--->【拦截器3】--->【拦截器4】--->ACTION
2.从数据结构上来讲,struts2拦截器其实是实现堆栈
| 拦截器1 |
| 拦截器2 |
| 拦截器3 |
| action |
——————
先进,后出
3.从拦截器本身实现来说,拦截器必须首先处理请求,最后将请求交给action类实例
而拦截器本身可以调用struts2的值堆栈ValueStack,而且还可以获得的具体action类实例对象。
你可以调试看看,每次请求一个action的时候,有很多struts2自带的拦截帮你做了很多事情,比如说参数paramter处理拦截器。。。
我这样将,不知道你清楚了没有。拦截器的在struts2里面有很广泛的应用,比方说权限控制等等
希望对你又帮助。
追问
您说的这些东西是struts2框架决定的吗?
我不明白拦截器到底拦截什么东西,处理请求后它又把什么东西给action呢,是一个字符串吗,上下文吗?
还有拦截器是不是只执行默认的intercept()方法来处理请求呢?
还有action的定义中如果指定了实现类的方法后,execute()方法还执行么?
struts.xml文件什么时候会被执行呢?

问题比较乱,我的理解比较模糊,希望您能回答我一下,非常感谢啊!
追答
执行顺序:
web.xml-->dispachservlet->struts.xml->intercepts[]--->action
每个拦截器都会走intercept()方法,拦截器也可以实现其他接口,比方说读取国际化文件接口等。根据我上面所讲的,拦截器里面是可以获得上下文信息的。
如果你的action方法在struts.xml里面指定了 method,那么请求就会去找这个指定的方法
如果没有,struts会找默认的 execute()方法。
不管事拦截器还是action,最上面的dispachservlet必须先读取struts.xml文件里面的信息
(你应该懂servlet吧,这是抛开框架外的东西,获得request请求的。获得了请求后,就把请求给到拦截器,最后给到action,最后再次跟据struts.xml里面的配置信息去找到对应的jsp页面)
如果让你自己来实现struts,步骤也是这吧。

说了再多都是浮云,哥们,你只有自己不断的练习多写几个拦截器埋下头认真思考才能有所认识和收获。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lplplpjid
2011-12-30 · TA获得超过100个赞
知道答主
回答量:126
采纳率:0%
帮助的人:64.8万
展开全部
拦截器是用来拦截action的,在你的action处理之前被拦截器拦截,然后进行预处理,比如你在没有登录一个网站的时候想要发表帖子,就被拦截器拦截到你,告诉服务器你没有登录,然后就让你先登录了
更多追问追答
追问
action 和 request 的区别呢?
追答
action 是处理类,是Java类,用来处理你的request请求的。request是一个请求参数,也是一个jsp的内置范围对象,封装这你的浏览请求,比如你的提交的表单内的各个属性啊之类
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式