我想實現(xiàn)的就是除了登錄頁面,訪問其他的都需要登錄后才能訪問,各位慕課網(wǎng)的朋友幫忙看看代碼哪里有問題。謝謝?。oginInterceptor.javapackage?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值,如果存在說明該用戶已經(jīng)登錄,讓他執(zhí)行操作,如果未登錄讓他進行登錄
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>
添加回答
舉報
0/150
提交
取消