简体中文
会员名称: 登入密码: [Register] 注册 忘记密码 启用我的帐号
 
[原]在DWR中如何取到request,session等  XML
论坛首页 »项目开发» Java开发交流
发表人 内容
pinke

[Avatar]

注册时间: 2006-11-18 22:27:35
文章: 919
离线
性别: 男
出生:1982-06-18

在使用DWR时经常有人找不到如何取session,因为Bean的有些方法是要在登陆情况下才能使用,所以网上有很多人想了其它的方法,比如使用过滤器来处理等等,这里我讲的是使用DWR自身的方法来取到,代码如下:


如上代码,只为了取一个SessionId,其中有一个Factory是专来处理WebContext的,看到这里应该明白了


而WebContext的原型如下


可以看到所有你想要的HttpServletRequest ,HttpServletResponse ,HttpSession 都可以在这里取得到

那他是如果工作的呢,看了一下代码,我能理解是:
当DWR初始化时: DWRServlet ->AbstractDWRServlet.init(..)
在init中 WebContextFactory.setWebContextBuilder(builder);
当一个client 访问 DWRServlet ->AbstractDWRServlet.doPost(...) 时
builder.set(req, resp, getServletConfig(), getServletContext(), container);
这里线程更新了WebContextBuilder
所以在WebContextFactory中get时取到的都是当前用户的所请求的相关信息(session,request,response)

你能理解了吗:)
不理解没关系,你只要记得在DWR的Bean中使用


享我所想,乐你所乐
[MSN] Tencent QQ:44020567
 
论坛首页 »项目开发» Java开发交流
前往:   
Powered by JForum 2.1.8 © JForum Team Template: Trydone