为了账号安全,请及时绑定邮箱和手机立即绑定

<action name="auth" >的执行流程是怎样的?

<action name="auth" >

<result>/WEB-INF/page/manager.jsp</result>

<result name="login">/login.jsp</result>

<!-- 引用自定义拦截器栈 -->

<interceptor-ref name="myStack"></interceptor-ref>

</action>

有没有哪位大神解释一下,上面这段代码的执行流程。。。

正在回答

2 回答

我自己是这样理解的,因为auth没有指定对应的action,所以系统会自动生成一个默认的action,该action默认返回SUCCESS。在视频中,老师第一次通过auth可以直接访问/WEB-INF/page/manager.jsp,就是因为那个默认的action返回了一个SUCCESS,而且,那时候并没有加入我们自定义的拦截器,所以可以直接访问WEB-INF下的文件。后来,我们自定义了的拦截器和拦截器栈,在自定义拦截器中添加了相关的处理代码,并在auth的action中引用了myStack,这时候auth执行的流程发生了变化。当用户直接在URL中输入auth后,这时候它会经过多个拦截器,自然也会被我们自定义的拦截器拦截到,接着执行拦截器中的处理代码,判断用户是否成功登陆过,如果没有成功登陆过,则返回登陆页面;如果已成功登陆过,则通过invoke()方法调用默认的action,因为默认的action默认返回SUCCESS,然后跳转到/WEB-INF/page/manager.jsp页面。整个执行的流程应该就是这样子的。。。

2 回复 有任何疑惑可以回复我~

首先, 你得关注还有一个name="login"的action 它能够获取到session, 然后在auth中它会先执行拦截器myStack,获取到session 判断是否存在 ,存在的话就就调用invoke方法 将“success”字符串返回给result 否则就返回一个“login字符串 ”(因为此action为默认action 在调用invoke时不会执行action) 然后再调用一次拦截器 ,最后返回字符串给result 我的理解 流程就这样。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

<action name="auth" >的执行流程是怎样的?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信