标签:
struts.xml配置: <!-- 自定义用户登录拦截器 --> <!-- 对于其他需要登录拦截的struts配置文件,如果继承了“default”,则不需要进行配置,直接可以通过继承来实现该拦截器,若没有继承“default“,都需要配置登录拦截器,配置方式和此处一样,若某个action不需要拦截,则在该action下添加默认拦截器即可(<intercentor-ref name="defaultStack" />)--> <!-- 说明: loginInterceptor:可随意取,和<intercentor-ref name="loginInterceptor" />中一样就行 mydefault:随意取,和重写默认拦截器是的name一样即可 defaultStack:默认拦截器,必须这样写 --> <intercentors> <intercentor class="拦截器java文件路径" name="loginInterceptor"/> <intercentor-stack name="mydefault" > <intercentor-ref name="defaultStack" /> <intercentor-ref name="loginInterceptor" /> </intercentor-stack> </intercentors> <!-- 重写默认拦截器 --> <default-interceptor-ref name="mydefault" /> <!-- 定义全局 变量,跳转到登录页面 opsLogin.jsp为登录页面 --> <global-results> <resutl name="login" type="redirect">/opsLogin.jsp</result> </global-results>
//拦截器java代码 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 LoginInterceptor extends AbstractInterceptor{ public string intercept(ActionInvocation invaction) throws Exception{ //获取session中的用户ID ActionContext ctx = invocation.getIncovationContext(); Map<String,Object> session = ctx.getSession(); Object object = session.get("id"); //若不为空,则struts将会继续执行 if(object != null){ return invocation.invoke(); }else{ //若为空,直接跳转到登录页面 return Action.LOGIN; } } }
//用户登录action代码 public String login(){ //根据用户名和密码查询用户信息 user = opsUserManager.findByNameAndPwd(name,password); //若果查询到的用户信息不为空,则将用户ID存进Session中,并且跳转到主页面 if(user != null){ HttpServletRequest request = ServletActionContext.getRequest(); Map<String,Object> map = ActionContext.getContext().getSession(); map.put("id",user.getId()); return SUCCESS; }else{ //如果查询不到,则跳转到登录页面 return ERROR; } }
SSH2登陆拦截配置(若登陆,则跳转到用户需要访问的网页,若没登录,直接跳转到登录页面)
标签:
原文地址:http://blog.csdn.net/u013126217/article/details/51355316