使用Cookie记录登录信息

以下为struts2的BaseAction里的处理方法。

public HttpServletResponse getResponse()
{
return ServletActionContext.getResponse();
}

public HttpSession getSession(boolean flag)
{
return this.getRequest().getSession(flag);
}

/**
* 获取当前登录的会员信息
* @return
*/
public Member getLoginMember() throws Exception
{
Member member=null;
String memberId=this.getCookieValue("memberId");
String memberName=this.getCookieValue("memberName");
String grade=this.getCookieValue("grade");
String subject=this.getCookieValue("subject");
if(memberId!=null&&memberName!=null&&grade!=null&&subject!=null)
{
member=new Member();
member.setMemberId(Integer.valueOf(memberId));
member.setMemberName(memberName);
member.setGrade(Integer.valueOf(grade));
member.setSubject(Integer.valueOf(subject));
}
return member;
}

/**
* 获取指定Cookie的值
* @param cName
* @return
* @throws Exception
*/
public String getCookieValue(String cName) throws Exception
{
String cValue=null;
Cookie cookie=this.getCookie(cName);
if(cookie!=null)
{
cValue=cookie.getValue();
}
return cValue;
}

/**
* 获取指定Cookie
* @param cName
* @return
* @throws Exception
*/
public Cookie getCookie(String cName) throws Exception
{
Cookie cookie=null;
Cookie[] cs=this.getRequest().getCookies();
if(cs!=null)
{
for(Cookie c:cs)
{
String name=c.getName();
if(cName.equals(name))
{
cookie=c;
}
}
}
return cookie;
}

/**
* 将设置cookie独立出来便于对cookie的配置统一控制
* @param sName
* @param sValue
*/
public void addACookie(String cName,String cValue) throws Exception
{
Cookie cookie=new Cookie(cName,cValue);
cookie.setMaxAge(365*24*60*60);
this.getResponse().addCookie(cookie);
}

/**
* 将登录的用户信息存放到cookie中
* @param member
*/
public void setLoginMember(Member member) throws Exception
{
this.addACookie("memberId",member.getMemberId().toString());
this.addACookie("memberName",member.getMemberName());
this.addACookie("grade",member.getGrade().toString());
this.addACookie("subject",member.getSubject().toString());
}

/**
* 删除所有Cookie
* @throws Exception
*/
public void invalidateCookies() throws Exception
{
Cookie[] cs=this.getRequest().getCookies();
if(cs!=null)
{
for(Cookie c:cs)
{
c.setMaxAge(0);
this.getResponse().addCookie(c);
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值