本站不再更新,欢迎光临 java开发技术网
随笔-230  评论-230  文章-8  trackbacks-0

我们在实际的 web 应用开发过程中,在用户登录后会向 session 中塞入一些信息(例如用户信息,菜单信息等),在页面提交后,会从 session 中取出这些信息,拼成完整的业务记录,保存到数据库中。此时就要求 DWR 可以与 Servlet 对象通信。

其实 DWR 已经考虑好了,在 DWR1.1 中可以利用 uk.ltd.getahead.dwr.WebContext uk.ltd.getahead.dwr.WebContextFactory 来和 Http Servlet 的标准对象进行通信,包括:

l         HttpServletRequest

l         HttpServletResponse

l         HttpSession

l         ServletContext

l         ServletConfig 

 具体调用的方法如下:

import  javax.servlet.http.HttpServletRequest; 

import  uk.ltd.getahead.dwr.WebContext; 

import  uk.ltd.getahead.dwr.WebContextFactory;
 import org.directwebremoting.WebContextFactory; //DWR2.0改成这样

//

WebContext ctx 
=  WebContextFactory.get(); 

HttpServletRequest req 
=  ctx.getHttpServletRequest(); 
     WebContext 是使用ThreadLocal保存的,你可以看一下uk.ltd.getahead.dwr.impl.DefaultWebContextBuilder源码,所以可以在任何地方使用它,例如在上一篇的demo中进行测试如下:
页面里给session设置值
<%@ page contentType="text/html; charset=GBK" %> 

  

<% 

System.out.println(
"This is DWR servlet object!"); 

  

session.setAttribute(
"dwr","love dwr"); 

%> 
DWR要调用的类文件
package test.dwr; 

  

import javax.servlet.http.HttpServletRequest; 

  

import uk.ltd.getahead.dwr.WebContext; 

import uk.ltd.getahead.dwr.WebContextFactory; 

  

public class MessageDao { 

    
public Message save(Message message) { 

  

        WebContext ctx 
= WebContextFactory.get(); 

        HttpServletRequest req 
= ctx.getHttpServletRequest(); 

        

  

        System.out.println(
"========HttpServletRequest Begin======="); 

        System.out.println(
"req:" + req.getRemoteHost()); 

        System.out.println(
"req-session:" + req.getSession().getAttribute("dwr")); 

        System.out.println(
"text:" + req.getParameter("text")); 

        System.out.println(
"from:" + req.getParameter("from")); 

        System.out.println(
"=========HttpServletRequest End========"); 

  

        System.out.println(
"========Lucky DWR Begin======="); 

        System.out.println(
"text:" + message.getText()); 

        System.out.println(
"from:" + message.getFrom()); 

        System.out.println(
"=========Lucky DWR End========"); 

  

        
return message; 

    } 

  

    
public Message get() { 

        
return new Message("This is the first dwr demo!""test"); 

    } 


posted on 2006-11-21 23:01 有猫相伴的日子 阅读(2703) 评论(0)  编辑  收藏 所属分类: dwr

只有注册用户登录后才能发表评论。


网站导航:
 
本站不再更新,欢迎光临 java开发技术网