我们在实际的
								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 
有猫相伴的日子 阅读(2888) 
评论(0)  编辑  收藏  所属分类: 
dwr