本文共 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/