Struts2自定义拦截器,检查用户是否登录
2017-03-14 14:34
441 查看
自定义拦截器,检查用户是否登录
1.创建自定义拦截器类
import javax.interceptor.InvocationContext;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
public class CheckLoginInterceptor extends MethodFilterInterceptor{
//自定义拦截器
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
HttpSession session = ServletActionContext.getRequest().getSession();
Object attribute = session.getAttribute("user");
if (attribute==null) {
return "login";
}else {
return invocation.invoke();
}
}
}
2.配置struts文件
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.ui.theme" value="simple" />
<include file="user.xml"></include>
<!--修改上传大小-->
<constant name="struts.multipart.maxSize" value="10485760">
</constant>
<package name="mydefault" extends="struts-default">
<interceptors><!--拦截机组-->
<interceptor name="checklogin" class="com.itcast.interceptor.CheckLoginInterceptor"></interceptor>
<interceptor-stack name="mydefault">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="checklogin">
<param name="excludeMethods">login</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="mydefault"></default-interceptor-ref>
<global-results><!--全局结果视图要放在<default-interceptor-ref>下-->
<result>/login/login.jsp</result>
</global-results>
</package>
</struts>
3.这样一个自定义的拦截器就生效了,可以拦截任何没有登录的用户进入登录界面
在拦截器栈中添加
[align=left] <interceptor-refname="checklogin">[/align]
[align=left] <paramname="excludeMethods">login</param>[/align]
</interceptor-ref>
可以放过登录方法,不进行拦截。
1.创建自定义拦截器类
import javax.interceptor.InvocationContext;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
public class CheckLoginInterceptor extends MethodFilterInterceptor{
//自定义拦截器
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
HttpSession session = ServletActionContext.getRequest().getSession();
Object attribute = session.getAttribute("user");
if (attribute==null) {
return "login";
}else {
return invocation.invoke();
}
}
}
2.配置struts文件
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.ui.theme" value="simple" />
<include file="user.xml"></include>
<!--修改上传大小-->
<constant name="struts.multipart.maxSize" value="10485760">
</constant>
<package name="mydefault" extends="struts-default">
<interceptors><!--拦截机组-->
<interceptor name="checklogin" class="com.itcast.interceptor.CheckLoginInterceptor"></interceptor>
<interceptor-stack name="mydefault">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="checklogin">
<param name="excludeMethods">login</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="mydefault"></default-interceptor-ref>
<global-results><!--全局结果视图要放在<default-interceptor-ref>下-->
<result>/login/login.jsp</result>
</global-results>
</package>
</struts>
3.这样一个自定义的拦截器就生效了,可以拦截任何没有登录的用户进入登录界面
在拦截器栈中添加
[align=left] <interceptor-refname="checklogin">[/align]
[align=left] <paramname="excludeMethods">login</param>[/align]
</interceptor-ref>
可以放过登录方法,不进行拦截。
相关文章推荐
- Struts2自定义拦截器案例:验证用户是否登录拦截器
- struts2定义拦截器(Interceptor)检查用户是否已经登录
- Struts2重新学习之自定义拦截器(判断用户是否是登录状态)
- Struts2自定义拦截器,实现发表文章检查是否已登陆功能
- Struts2自定义拦截器,实现登录检查。
- struts2用户是否登录拦截器,拦截之后异步跳转到登录页面
- 用Struts2的拦截器验证用户是否登录
- Struts2拦截器—自定义拦截器验证用户登录
- Struts2通过自定义拦截器实现登录之后跳转到原页面
- Struts2拦截器,简单的用户登录拦截及静态缓存的使用
- struts2拦截器判断用户是否为ajax请求
- 拦截器验证用户是否登录
- 防止未登录用户操作—struts2拦截器简单实现
- 防止未登录用户操作―基于struts2拦截器的简单实现
- struts2 在拦截器进行注入(根据Action是否实现自定义接口)
- 2.服务器自定义的In拦截器,负责检查用户名,密码是否正确:拦截器
- Struts2自定义拦截器拦截登录 推荐
- Struts2+Spring+Hibernate step by step 11 ssh整合之拦截器验证用户是否登录
- 检查session判断用户是否退出登录
- java Filter之拦截jsp页面检查用户是否已经登录