Wicket中会话管理HttpSession

最近用Wicket框架,要用到session,而Wicket中定义的session与以前常说的session(HttpSession)是不一样。

具体解释摘录《Wicket开发指南》:

Wicket中的Session是指每一个Application中所拥有的数据,离开这个Application,如转向一个网站内部html,或者另一个Application,相应的Session就会无效。

而HttpSession完全不同,它保存的是用户在访问一个网站期间的会话信息。

OK,在Wicket开发时,我们也会用到HttpSession进行会话管理,网上找了一些前辈的资料,再加上自己总结了一下。

有两种方式可以实现:

第一种,使用httpServletSession

    设置httpServletSession:

HttpServletRequest request=getWebRequestCycle().getWebRequest().getHttpServletRequest(); 
request.getSession().setAttribute("username", username);

   获取 httpServletSession

HttpServletRequest request=getWebRequestCycle().getWebRequest().getHttpServletRequest();
 
String userLoginName = (String) request.getSession().getAttribute("username");

第二种,Wicket中提供了一个WebSession类,我们只需要继承WebSession,就可以写我们自己的Session类

   MySession类:

public class MySession extends WebSession{
	
	private String username;
	private String department;
	private String rolename;
	private int userid;
	
	public MySession(Request request){
		
		super(request);
	}
	
	/*
	 * 获得session
	 */
	public MySession session(){
		return (MySession)Session.get();
	}
	/*
	 * 销毁session
	 */
	public void sessionInvalidate(){
		this.session().invalidate();
	}		
	public String getUsername () {
		return userid;
	}
	public void setUserid(String username) {
		this.username = username;
	}


覆写WebApplication中的newSession方法:

public MySession newSession(Request request, Response response) {
		        return new MySession(request);
		}
Application就自动给MySession添上Request对象。

注意,Wicket的Session是由Wicket的Application绑定的,因此MySession只会存活在这个WebApplication里面。

最后,调用Session:

设置session:

MySession mySession = (MySession) super.getSession(); 
 mySession.session().setUsername(username);
获取session:

MySession mySession = (MySession) super.getSession();
String department = mySession.session().getDepartment();
销毁session:

MySession mySession = (MySession) super.getSession();
mySession.session().sessionInvalidate();


完成!

第二种方案是比较好的,Wicket自身的WebSession中,就使用了HttpSession,直接调用方法就行!







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值