Struts2拦截器为什么执行不到?
packagecom.cib.util;importjava.util.Map;importcom.opensymphony.xwork2.Action;importco...
package com.cib.util;
import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class AuthorityInterceptor extends AbstractInterceptor {
//@Override
//public String intercept(ActionInvocation arg0) throws Exception {
// // TODO Auto-generated method stub
// return null;
//}
private static final long serialVersionUID = 1358600090729208361L;
//拦截Action处理的拦截方法
public String intercept(ActionInvocation invocation) throws Exception {
System.out.println("************************************");
// 取得请求相关的ActionContext实例
ActionContext ctx=invocation.getInvocationContext();
Map session=ctx.getSession();
//取出名为user的session属性
String user=(String)session.get("user");
//如果没有登陆,或者登陆所有的用户名不是aumy,都返回重新登陆
if(user!=null && user.equals("aumy")){
return invocation.invoke();
}
//没有登陆,将服务器提示设置成一个HttpServletRequest属性
ctx.put("tip","您还没有登录,请登陆系统");
System.out.println("tip="+ctx.get("tip"));
return Action.LOGIN;
}
}
// 处理用户请求的execute方法
public String execute() throws Exception {
if (isInvalid(getUsername()))
return INPUT;
if (isInvalid(getPassword()))
return INPUT;
if ((getUsername().equals("mm") || getUsername().equals("aumy"))
&& getPassword().equals("111")) {
// 通过ActionContext对象访问Web应用的Session
ActionContext.getContext().getSession().put("user", getUsername());
ActionContext.getContext().getSession().put("pass", getPassword());
System.out.println(getUsername() + "----" + getPassword());
return SUCCESS;
} else {
System.out.println(getUsername() + "----" + getPassword());
return ERROR;
}
} 展开
import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class AuthorityInterceptor extends AbstractInterceptor {
//@Override
//public String intercept(ActionInvocation arg0) throws Exception {
// // TODO Auto-generated method stub
// return null;
//}
private static final long serialVersionUID = 1358600090729208361L;
//拦截Action处理的拦截方法
public String intercept(ActionInvocation invocation) throws Exception {
System.out.println("************************************");
// 取得请求相关的ActionContext实例
ActionContext ctx=invocation.getInvocationContext();
Map session=ctx.getSession();
//取出名为user的session属性
String user=(String)session.get("user");
//如果没有登陆,或者登陆所有的用户名不是aumy,都返回重新登陆
if(user!=null && user.equals("aumy")){
return invocation.invoke();
}
//没有登陆,将服务器提示设置成一个HttpServletRequest属性
ctx.put("tip","您还没有登录,请登陆系统");
System.out.println("tip="+ctx.get("tip"));
return Action.LOGIN;
}
}
// 处理用户请求的execute方法
public String execute() throws Exception {
if (isInvalid(getUsername()))
return INPUT;
if (isInvalid(getPassword()))
return INPUT;
if ((getUsername().equals("mm") || getUsername().equals("aumy"))
&& getPassword().equals("111")) {
// 通过ActionContext对象访问Web应用的Session
ActionContext.getContext().getSession().put("user", getUsername());
ActionContext.getContext().getSession().put("pass", getPassword());
System.out.println(getUsername() + "----" + getPassword());
return SUCCESS;
} else {
System.out.println(getUsername() + "----" + getPassword());
return ERROR;
}
} 展开
3个回答
展开全部
拦截器配置是不是有问题:给你个配置的例子:
<package namespace="/" name="userManager"
extends="struts-default">
<!-- 拦截器 -->
<interceptors>
<interceptor name="securityInterceptor" class="org.itfuture.interceptor.SecurityInterceptor"></interceptor>
<interceptor-stack name="default">
<!-- 自定义拦截器-->
<interceptor-ref name="securityInterceptor"></interceptor-ref>
<!--— 必须引用struts默认的拦截器 ———>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="default"></default-interceptor-ref>
<default-action-ref name="index"></default-action-ref>
<!-- 全局结果集 -->
<global-results>
<result name="login">/login.jsp</result>
</global-results>
<!-- loginAction -->
<action name="login" class="org.itfuture.hr.action.UserAction">
<result name="index">/WEB-INF/hr/index.jsp</result>
<result name="adminIndex">/WEB-INF/hr/user-list.jsp</result>
<result name="input">/login.jsp</result>
</action>
<!-- userAction -->
<action name="user" class="org.itfuture.hr.action.UserAction">
<result name="input">/regist.jsp</result>
<result name="updateInput" type="redirectAction">login</result>
<result name="update">user!list</result>
<result name="list">/WEB-INF/hr/user-list.jsp</result>
<result name="logout">/login.jsp</result>
</action>
<!-- registAction -->
<action name="regist" class="org.itfuture.hr.action.UserAction">
<interceptor-ref name="default"></interceptor-ref>
<interceptor-ref name="token"></interceptor-ref>
<result name="invalid.token">/recommitErr.jsp</result>
<result name="input">/regist.jsp</result>
<result name="update" type="redirect">user!list</result>
<result name="regist" type="dispatcher">/login.jsp</result>
<result>/login.jsp</result>
</action>
<package namespace="/" name="userManager"
extends="struts-default">
<!-- 拦截器 -->
<interceptors>
<interceptor name="securityInterceptor" class="org.itfuture.interceptor.SecurityInterceptor"></interceptor>
<interceptor-stack name="default">
<!-- 自定义拦截器-->
<interceptor-ref name="securityInterceptor"></interceptor-ref>
<!--— 必须引用struts默认的拦截器 ———>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="default"></default-interceptor-ref>
<default-action-ref name="index"></default-action-ref>
<!-- 全局结果集 -->
<global-results>
<result name="login">/login.jsp</result>
</global-results>
<!-- loginAction -->
<action name="login" class="org.itfuture.hr.action.UserAction">
<result name="index">/WEB-INF/hr/index.jsp</result>
<result name="adminIndex">/WEB-INF/hr/user-list.jsp</result>
<result name="input">/login.jsp</result>
</action>
<!-- userAction -->
<action name="user" class="org.itfuture.hr.action.UserAction">
<result name="input">/regist.jsp</result>
<result name="updateInput" type="redirectAction">login</result>
<result name="update">user!list</result>
<result name="list">/WEB-INF/hr/user-list.jsp</result>
<result name="logout">/login.jsp</result>
</action>
<!-- registAction -->
<action name="regist" class="org.itfuture.hr.action.UserAction">
<interceptor-ref name="default"></interceptor-ref>
<interceptor-ref name="token"></interceptor-ref>
<result name="invalid.token">/recommitErr.jsp</result>
<result name="input">/regist.jsp</result>
<result name="update" type="redirect">user!list</result>
<result name="regist" type="dispatcher">/login.jsp</result>
<result>/login.jsp</result>
</action>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企...
点击进入详情页
本回答由Storm代理提供
展开全部
在拦截器那里设置一个断点调试下.调用Action之前是会先进入拦截器的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
拦截器执行不了
如果连第一行的*************都不打印的话,很明显是你
struts.xml中配置文件出问题了。你不把那段代码发出来怎么给你看呢?
如果连第一行的*************都不打印的话,很明显是你
struts.xml中配置文件出问题了。你不把那段代码发出来怎么给你看呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询