博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用户登陆,退出等基本Action(3)拦截器
阅读量:2453 次
发布时间:2019-05-10

本文共 4859 字,大约阅读时间需要 16 分钟。

1、使用cookie自动登陆的拦截器(IMemberAware.java):

/** *  */package com.web.struts.inteceptor;import com.model.Member;/** * @author Administrator *  */public interface IMemberAware {	public Member getMember();	public void setMember(Member member);}

 

/** *  */package com.web.struts.inteceptor;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.commons.lang.StringUtils;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.AbstractInterceptor;import com.model.Member;import com.service.IMemberService;import com.tools.Constant;/** * title:会员cookie自动登陆 *  * @author Administrator * @时间 2009-4-24:下午03:42:25 */public class MemberCookieLoginInterceptor extends AbstractInterceptor {	private Member member;	private IMemberService memberService;	/**  */	private static final long serialVersionUID = 6998551363568297012L;		@SuppressWarnings("null")	@Override	public String intercept(ActionInvocation invocation) throws Exception {		HttpServletRequest request = ServletActionContext.getRequest();		HttpSession session = request.getSession();		if (StringUtils.isBlank(username)) {			Cookie[] cookies = request.getCookies();			Cookie member_cookie = null;			if (cookies != null || cookies.length >= 0) {				for (int i = 0; i < cookies.length; i++) {					member_cookie = cookies[i];					if (member_cookie != null							&& StringUtils.isNotBlank(member_cookie.getName())							&& StringUtils.isNotBlank(member_cookie.getValue())							&& member_cookie.getName().equals(									Constant.MEMBER_SESSION_ID)) {						member = memberService.getMember(member_cookie								.getValue());						if (member != null) {							session.setAttribute(Constant.MEMBER_SESSION_ID,									member_cookie.getValue());						}						break;					} else {						member_cookie = null;					}				}			}		}		return invocation.invoke();	}	public Member getMember() {		return member;	}	public void setMember(Member member) {		this.member = member;	}	public void setMemberService(IMemberService memberService) {		this.memberService = memberService;	}}

 3、会员管理面板的拦截器:

/** *  */package com.web.struts.inteceptor;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.commons.lang.StringUtils;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.AbstractInterceptor;import com.model.Member;import com.service.IMemberService;import com.tools.Constant;/** * title: 用户在线 *  * @author conkeyn * @时间 2009-3-30:下午01:48:10 */public class MemberOnlineInterceptor extends AbstractInterceptor {	/**  */	private static final long serialVersionUID = 2470845588966783260L;	private Member member;	private IMemberService memberService;	@SuppressWarnings("null")	@Override	public String intercept(ActionInvocation invocation) throws Exception {		HttpServletRequest request = ServletActionContext.getRequest();		HttpSession session = request.getSession();		String username = (String) session				.getAttribute(Constant.MEMBER_SESSION_ID);		if (StringUtils.isBlank(username)) {			Cookie[] cookies = request.getCookies();			Cookie member_cookie = null;			if (cookies != null || cookies.length >= 0) {				for (int i = 0; i < cookies.length; i++) {					member_cookie = cookies[i];					if (member_cookie != null							&& StringUtils.isNotBlank(member_cookie.getName())							&& StringUtils.isNotBlank(member_cookie.getValue())							&& member_cookie.getName().equals(									Constant.MEMBER_SESSION_ID)) {						member = memberService.getMember(member_cookie								.getValue());						if (member != null) {							session.setAttribute(Constant.MEMBER_SESSION_ID,									member_cookie.getValue());						}						break;					} else {						member_cookie = null;					}				}			}		}		if (StringUtils.isBlank(username)) {			return "global_login";		} else {			System.out.println(invocation.getClass().getName());			if (invocation instanceof IMemberAware) {				member = memberService.getMember(username);				if (member != null) {					((IMemberAware) invocation).setMember(member);				}			}			return invocation.invoke();		}	}	public Member getMember() {		return member;	}	public void setMember(Member member) {		this.member = member;	}	public void setMemberService(IMemberService memberService) {		this.memberService = memberService;	}}
 

 

4、相关配置文件:

   1)spring配置方式:

   2)struts配置方式:

/
login
 

 

 

转载地址:http://jzdhb.baihongyu.com/

你可能感兴趣的文章
sql基础_SQL基础
查看>>
一个工作表可以有两个事件吗_你有两个工作
查看>>
Raul的新机器学习书!
查看>>
python制作可视化图表_可视化数据–用python覆盖图表
查看>>
双耳节拍 枕头_枕头3-0-0不在
查看>>
谷歌聊天机器人api_如何编写针对Google地图等网络应用量身定制的聊天机器人
查看>>
npm和angular_如何开发,使用和发布Angular库到NPM
查看>>
为什么要远离对日外包_远离魔法-或:为什么我不想再使用Laravel
查看>>
二进制数据结构:JavaScript中的树和堆简介
查看>>
机器学习与分布式机器学习_这就是为什么任何人都可以学习机器学习的原因
查看>>
django 部署_狂野的Django:部署生存的技巧
查看>>
面向前端开发人员的Visual Studio Code概述
查看>>
2017年最喜欢的Visual Studio代码扩展
查看>>
gvim文本编辑器帮助_如何帮助您的文本编辑器帮助您
查看>>
函数setState是React的未来
查看>>
山东大学有人陪!真的吗?_10,000小时! 您真的需要那么多吗?
查看>>
macos 安装scala_如何在MacOS上安装Scala和Apache Spark
查看>>
ES6中修复的5个JavaScript“不良”部分
查看>>
实习一年算工作一年吗?_如何在不到一年的时间里获得开发人员的工作
查看>>
lynda ux_UX编排原理
查看>>