美文网首页
[Struts2]5-访问ServletAPI对象

[Struts2]5-访问ServletAPI对象

作者: 我相信你爱过gg | 来源:发表于2017-05-07 19:57 被阅读12次

例如用户登陆了网站,这个使用我们就需要使用Seesion将用户信息存放起来,所以Struts2为我们提供了两种方式,一种是解耦方式,第二种是耦合方式。

第一种方式-与ServletAPI解耦方式(不依赖原有Web组件)

为了避免与Servlet API耦合在一起,方便Action类的测试,Struts2框架使用了普通的Map对象代替了Servlet API中的HttpServletRequest、HttpSeesion和ServletContext。

在Action类中,可以直接访问HttpServletRequest、HttpSeesion和ServletContext对应的Map对象。Struts2提供了com.opensymphony.xwork2.ActionContext类获取ServletAPI对应的Map对象。

获取HttpServletRequest对象
ActionContext ac = ActionContext.getContext();
Map request = (Map)ac.get("request");
获取HttpSeesion对象
ActionContext ac = ActionContext.getContext();
Map session = ac.getSession();
获取Application对象
ActionContext ac = ActionContext.getContext();
Map application = ac.getApplication();

第二种方式-与ServletAPI耦合方式(依赖于原有web组件)

直接访问Servlet API将使Action类与Servlet API耦合在一起,众所周知,Servlet API对象均有Servlet容器来构造,与这些对象绑定在一起,测试过程中就必须有Servlet容器,这样不便于Action类的测试,但有些时候确实需要直接访问这些对象。直接获取Servlet API对象可以直接使用org.apache.struts2.ServletActionContext类,该类是ActionContext类的子类。
获取HttpServletRequest对象使用getRequest()
获取ServletContext对象使用getServletContext()
获取HttpServletResponse对象使用getResponse()

相关文章

  • [Struts2]5-访问ServletAPI对象

    例如用户登陆了网站,这个使用我们就需要使用Seesion将用户信息存放起来,所以Struts2为我们提供了两种方式...

  • 02-资源共享及操作对象

    struts2中采用容器实现资源共享,并并容器对象进行封装,降低与servletAPI的耦合性操作方式:- Act...

  • Java mac idea Struts2的使用02

    1. Struts2的结果处理方式 2. Struts2 获得 servletApi 方式一: 配置文件 Demo...

  • Struts2获得ServletApi

    原理 ActionContext相当于一个数据中心,本身是一个Map。其中存储着各种servlet的对象的引用,比...

  • Struts2(二)

    1.访问ServletApi三种方式 1).在Action访问Servlet API: 在Action类中操作Se...

  • Struts2--获取ServletAPI的方式

    当我们在使用Struts2的时候,在Action类中要怎么获取我们所需要的ServletApi呢,比如常用的req...

  • 五、域对象共享数据

    1、使用ServletAPI向request域对象共享数据 2、使用ModelAndView向request域对象...

  • struts2获取ServletAPI方式介绍

    我们之前使用struts2进行开发看起来就像java工程并没有涉及到servlet API的使用,但我们都知道它是...

  • JavaWeb - Struts2框架

    Struts2是Web层的框架(替代Servlet),处理访问服务器的请求Struts2的概念 Struts2和S...

  • struts2面试题大全含答案

    struts2面试题大全含答案1、SpringMVC与Struts2的主要区别2、Struts2中如何访问Http...

网友评论

      本文标题:[Struts2]5-访问ServletAPI对象

      本文链接:https://www.haomeiwen.com/subject/vdhptxtx.html