`
ldzyz007
  • 浏览: 701037 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ActionContext和ServletActionContext区别

阅读更多
1.ActionContext
xwork框架的ActionContext是Action执行时的上下文,存放Action执行时需要用到的对象。在使用webwork时,其中放有Parameter、Session、ServletContext、Locale等信息。这样,webwork负责将Servlet相关数据转换为与ServletAPI无关的Map对象(即ActionContext),使得xwork的Action实现与web层、逻辑层与表现层的解耦。

2.ServletActionContext
提供直接与Servlet容器交互的途径。通过它,可以取得HttpServletRequest、HttpServletResponse 、ServletConfig、ServletContext、PageContext 对象。但是,使用ServletActionContext意味着Action与ServletAPI的紧密耦合。

3.由于WebWork对request,parameter,Session和Application都进行了封装,将这些隐含的对象封装成了相应的Map,如RequestMap,ParameterMap,SessionMap和ApplicationMap,而这些Map就组成

了ActionContext,因此我们通常都不再需要与request,session这些底层的对象打交道了,这也是我一开始觉得迷惑的地方,因为我找不到Session了。事实上,对于SessionMap的处理即是对Session的

处理了。我们可以通过ActionContext的静态方法getContext返回一个ActionContext的实例,然后再调用其getSession方法获得SessionMap,接着就可以利用put和get方法对session进行读写的操作了。


Map params = new HashMap();;  
params.put(String, String);;  
......  
Map extraContext = new HashMap();;  
extraContext.put(ActionContext.PARAMETERS,params);

Map session = new HashMap();;  
session.put("foo", "bar");;  
extraContext.put(ActionContext.SESSION, session);

ActionContext ctx = ActionContext.getContext();
Map session = ctx.getSession();
session.put("username",loginInfo.getUsername());

ActionContext ctx = ActionContext.getContext();
Map params = ctx.getParameters();
String username = ctx.getParameters("username");

OgnlValueStack stack = new OgnlValueStack();
stack.push(new User());//首先将欲赋值对象压入栈中
stack.setValue("name","erica");//为栈顶对象的指定属性名赋值

分享到:
评论

相关推荐

    strut2 详解

    struts2.0 详细介绍了struts.xml的配置,以及web.xml的配置和ActionContext,ServletActionContext的用法和区别。ActionContext主要用于设置属性,而ServletActionContext主要用来得到属性

    Struts2_TypeConvertion

    这种方式主要是利用了com.opensymphony.xwork2.ActionContext类以及org.apache.struts2.ServletActionContext类,具体的方法如下所示。 获得request对象: A . HttpServletRequest request = ServletActionContext....

    struts2深入浅出(备java基础,javaweb,javaee,框架)

    Struts2框架介绍、工作原理与架构分析、6大配置文件分析使用通配符定义action、动态方法调用,ActionContext及ServletActionContext使用,模型驱动、属性驱动,默认转换器的介绍,中的表单校验,中的国际化,文件...

    Action获取Web元素

    Action获取Web元素: 1通过ActionContext获取 2通过ServletActionContext获取 3框架注入

    Struts2实战总结

    3:在action类中取得request和session对象的方法 Map session = ActionContext.getContext().getSession(); HttpServletRequest request = ServletActionContext.getRequest (); 设置它们的值的方法

    stuts2.2_API文档

    org.apache.struts2.ServletActionContext (implements org.apache.struts2.StrutsStatics) org.apache.struts2.RequestUtils org.apache.struts2.StrutsConstants java.lang.Throwable (implements java.io....

    struts应用3

    1). Action 类的要求 2). ActionSupport 3)、在 Action 中如何访问 WEB 资源: ①. 通过 ActionContext ②. 通过 Aware 接口 ③. 通过 ServletActionContext

    struts2文件上传,与struts2-xml校验

    System.out.println("上下文路径="+ ActionContext.getContext()); System.out.println("aaa="+ServletActionContext.getActionContext(ServletActionContext.getRequest())); filename=new String[myFile....

    struts基础入门

    主要实现了用户的登录系统.....还有对于struts中紧耦合的servletActionContext类的使用..还有struts与servlet松耦合的ActionContext的使用..并且从request域中,session域和application整个应用程序域中获取信息..

    java 同一用户不能同时登陆问题

    import org.apache.struts2.ServletActionContext; import com.jswf.sys.SysParams; import com.jswf.vo.UserVo; import com.opensymphony.xwork2.ActionContext; public class DialogHttpSessionListner ...

Global site tag (gtag.js) - Google Analytics