我想实现的就是除了登录页面,访问其他的都需要登录后才能访问,各位慕课网的朋友帮忙看看代码哪里有问题。谢谢!!
LoginInterceptor.java
package com.yeka.oa.interceptor;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
import com.yeka.oa.entity.SysEmployee;
@SuppressWarnings("serial")
public class LoginInterceptor extends MethodFilterInterceptor {
@SuppressWarnings("unchecked")
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
ActionContext context = invocation.getInvocationContext();
//通过ActionContext获取session的信息,以Map形式返回
Map session = context.getSession();
//获取容器里面的username值,如果存在说明该用户已经登录,让他执行操作,如果未登录让他进行登录
SysEmployee user = (SysEmployee) session.get("user");
if(user!=null){
invocation.invoke();
}
context.put("nologin", "对不起,你没有登录,不能进行该操作");
return "login";
}
}struts.xml配置
<!-- 配置拦截器 --> <package name="my-default" extends="struts-default"> <interceptors> <!-- 配置未登录进行操作的拦截器 --> <interceptor name="loginInterceptor" class="com.struts2.interceptor.LoginInterceptor"> </interceptor> <!-- 重新封装一个默认的拦截器栈 --> <interceptor-stack name="myDefaultStack"> <interceptor-ref name="loginInterceptor" /> <interceptor-ref name="defaultStack" /> </interceptor-stack> </interceptors> <!-- 为这个包设置默认的拦截器栈 --> <default-interceptor-ref name="myDefaultStack" /> <!-- 设置全局的返回值 --> <global-results> <result name="login" type="redirect">login.jsp</result> </global-results> </package>
qq_脚本
出任CEO迎娶白富美
随时随地看视频慕课网APP
相关分类