`
yanglei008
  • 浏览: 84002 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Dwr 中获取 request session

    博客分类:
  • ajax
阅读更多
在使用DWR时经常有人找不到如何取session,因为Bean的有些方法是要在登陆情况下才能使用,所以网上有很多人想了其它的方法,比如使用过滤器来处理等等,这里我讲的是使用DWR自身的方法来取到,代码如下:
源码复制打印
 
import uk.ltd.getahead.dwr.WebContext;  
import uk.ltd.getahead.dwr.WebContextFactory;  
...  
  public String getSessionId() {   
            WebContext webContext = WebContextFactory.get();    
            return webContext.getSession().getId();   
    }  
 
...  

import uk.ltd.getahead.dwr.WebContext;
import uk.ltd.getahead.dwr.WebContextFactory;
...
  public String getSessionId() {
            WebContext webContext = WebContextFactory.get(); 
            return webContext.getSession().getId();
    }

...


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


而WebContext的原型如下
源码复制打印
package uk.ltd.getahead.dwr;  
 
public interface WebContext  {  
      
    uk.ltd.getahead.dwr.Container getContainer();  
      
    javax.servlet.http.HttpSession getSession();  
      
    javax.servlet.http.HttpSession getSession(boolean b);  
      
    javax.servlet.ServletConfig getServletConfig();  
      
    javax.servlet.ServletContext getServletContext();  
      
    javax.servlet.http.HttpServletRequest getHttpServletRequest();  
      
    javax.servlet.http.HttpServletResponse getHttpServletResponse();  
      
    java.lang.String forwardToString(java.lang.String string) throws javax.servlet.ServletException, java.io.IOException;  
      
    java.lang.String getVersion();  
package uk.ltd.getahead.dwr;

public interface WebContext  {
   
    uk.ltd.getahead.dwr.Container getContainer();
   
    javax.servlet.http.HttpSession getSession();
   
    javax.servlet.http.HttpSession getSession(boolean b);
   
    javax.servlet.ServletConfig getServletConfig();
   
    javax.servlet.ServletContext getServletContext();
   
    javax.servlet.http.HttpServletRequest getHttpServletRequest();
   
    javax.servlet.http.HttpServletResponse getHttpServletResponse();
   
    java.lang.String forwardToString(java.lang.String string) throws javax.servlet.ServletException, java.io.IOException;
   
    java.lang.String getVersion();


可以看到所有你想要的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中使用
WebContext webContext = WebContextFactory.get();    
webContext.getSession() ;  
webContext.getHttpServletRequest() ;  
webContext.getHttpServletResponse();  
分享到:
评论

相关推荐

    dwr中文文档dwr中文文档dwr中文文档

    dwr中文文档dwr中文文档dwr中文文档dwr中文文档dwr中文文档dwr中文文档dwr中文文档

    DWR中文文档DWR

    DWR中文文档DWR中文文档DWR中文文档DWR中文文档DWR中文文档

    DWR中取得session等信息.doc

    DWR框架取得session信息, 1,使用DWR的API (很多人都不推荐这种做法,经测试,使用起来肯定没问题) 2,在Java的服务方法中定义这些类型的参数,让DWR自动传入相应的对象

    DWR中文帮助文档(最好的DWR中文帮助文档)

    最好的DWR中文帮助文档,最好的DWR中文帮助文档

    DWR中文文档(pdf)

    dwr ajax dwr框架 dwr中文手册

    DWR中文文档.pdfDWR中文文档.pdf

    DWR中文文档.pdfDWR中文文档.pdfDWR中文文档.pdfDWR中文文档.pdf

    DWR中处理List

    DWR中处理List例子,很好,经典,欢迎大家下载

    DWR中文文档 ,非常详细

    DWR中文文档 ,非常详细 自学好帮手DWR中文文档 ,非常详细 自学好帮手

    DWR中文文档v0.9PDF

    DWR中文文档v0.9

    DWR中文文档

    DWR中文文档,DWR中文文档,DWR中文文档,DWR中文文档,DWR中文文档

    DWR如何获得返回对象

    DWR如何获得返回对象 DWR如何获得返回对象 DWR如何获得返回对象

    dwr dwrdwr

    dwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwr

    DWR中文教程(外带DWR包)

    DWR中文教程(外带DWR包) 很好的入门级教程,想学习DWR的同学可以下载看看的

    DWR中文官方文档

    DWR的中文官方文档,以及V0.9的文档一共两份 在网站不容易找到合适的说明.这个包里是整合网站的dwr所有帮助信息下载下来的,因为时间缘故没有及时做成电子文档,希望有时间了在做一份. 如果还是看着不方便建议到...

    DWR中文文档v0.9

    本书可以当作一本 DWR 完整的教程,也可以当作一本详细介绍 DWR 的“词典”,我 的目的只是通过本书,希望您能够了解一些 DWR 的基本知识、常用的用户界面组件、远程 方法调用等。并能够搭建 DWR 开发环境,实现 DWR...

    Ajax DWR中文文档

    Ajax DWR中文文档Ajax DWR中文文档Ajax DWR中文文档Ajax DWR中文文档Ajax DWR中文文档Ajax DWR中文文档Ajax DWR中文文档Ajax DWR中文文档Ajax DWR中文文档

    DWR2.0中文文档

    DWR2.0中文文档,讲的很好,值得一看

    DWR中文文档.pdf

    DWR中文文档 包含了环境配置, 主要js讲解, 还有不错的示例, 很适合学习DWR

    DWR中文文档.rar

    第5章.DWR中的JavaScript简介,含4小节;第6章.engine.js的功能,含3小节;第7章.util.js的功能,含13小节;第8章.DWR进阶,含5小节;第9章.范例精讲——购物车,含8小节;第10章.附录,含常见问题(4节)和JavaScript高级...

    dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;

    dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;

Global site tag (gtag.js) - Google Analytics