在Web应用程序开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对JavaServlet Http的请求(HttpServletRequest)、响应(HttpServletResponse)操作。
      例子:我们需要在Action中取得request请求参数username的值:
      ActionContext context=ActionContext.getContext();
      Map params=context.getParameters();
      String username=(String)params.get("username");
(1)、ActionContext是Action执行时的上下文,上下文可以看作是一个容器,它存放的是Action在执行时需要用到的对象,使用webwork时,我们的上下文放有请求的参数(Parameter)、会话(Session)、Servlet上下文(ServletContex)、本地化(Locale)信息等。
      ActionContext的创建都是通过:ActionContext context=(ActionContext)actionContext.get();来获取的,actionContext对象的创建:static ThreadLocal actionContext=new ActionContextThreadLocal();这样设计的好处是线程安全的。
(2) ServletActionContext,这个类直接继承了ActionContext.它提供了直接与JavaServlet相关对象访问的功能,它可以取得的对象有:

1、  javax.servlet.http.HttpServletRequest:HTTPservlet请求对象

2、  javax.servlet.http.HttpServletResponse;:HTTPservlet相应对象

3、  javax.servlet.ServletContext:Servlet 上下文信息

4、  javax.servlet.ServletConfig:Servlet配置对象

5、  javax.servlet.jsp.PageContext:Http页面上下文

1、 取得HttpServletRequest对象:

HttpServletRequest request = ServletActionContext. getRequest();

2、 取得HttpSession对象:

HttpSession session = ServletActionContext. getRequest().getSession();

posted on 2007-06-22 11:46  王永庆  阅读(445)  评论(1编辑  收藏  举报