Java EE----Struts2 Action 访问Servlet API

以前 Servlet  doGet(HttpServletRequest,HttpServletResponse) ,doGet方法无法进行单独测试 ,要测试,必须构造request和response对象

Struts2 Action的execute方法非常便于单独测试,这个方法不依赖Servlet API

Servlet常用API对象 : HttpServletRequest、HttpSession、ServletContext (三种服务器端数据范围)、HttpServletResponse

1、与Servlet API 解耦合操作  使用ActionContext

1)创建实例 ActionContext.getContext()

2)获得请求参数 actionContext.getParameters() 返回 Map<String,String[]> 代表请求参数Map 等价于 request.getParameterMap

3)向request保存一个数据 actionContext.put(key,value) ; 等价于 request.setAttribute()

4)读取request范围的一个数据 actionContext.get(key)  等价于 request.getAttribute()

5)读取Session属性 actionContext.getSession() 返回Map  actionContext.getSession().get(key) 等价于 session.getAttribute();

actionContext.getSession().put(key,value)  等价于 session.setAttribute()

6)读写ServletContexnt属性 actionContext.getApplication 返回 Map actionContext.getApplication().get(key) 等价于servletContext.getAttribute

actionContext.getApplication().put(key,value) 等级于 servletContext.setAttribute

* 使用ActionContext 操作了 Servlet对象,但是却没有使用Servlet API

* 例如:销毁Session对象 、添加Cookie 都无法通过ActionContext 完成

2、直接访问ServletAPI (方案一 接口注入 )

ServletContextAware

void setServletContext(javax.servlet.ServletContext context)

ServletRequestAware

void setServletRequest(javax.servlet.http.HttpServletRequest request)

ServletResponseAware

void setServletResponse(javax.servlet.http.HttpServletResponse response)

3、直接访问Servlet API (方案二:ServletActionContext)

static PageContext getPageContext()

static HttpServletRequest getRequest()

static HttpServletResponse getResponse()

static ServletContext getServletContext()

时间: 2024-10-29 02:39:56

Java EE----Struts2 Action 访问Servlet API的相关文章

struts2的action访问servlet API的三种方法

学IT技术,就是要学习... 今天无聊看看struts2,发现struts2的action访问servlet API的三种方法: 1.Struts2提供的ActionContext类 Object get(Object key);可以获取request属性 Map getSession():可以得到session属性 Map getAppliction():可以得到ServletContext实例 2.action类实现 ServletContextAware,ServletRequestAwa

笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用

Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDispatcher 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <filter>     <filter-name>struts2</filter-name>     <filter-class>org.apache.struts2.di

Action访问Servlet API的三种方法

一.为什么要访问Servlet API ? Struts2的Action并未与Servlet API进行耦合,这是Struts2 的一个改良,从而方便了单独对Action进行测试.但是对于Web控制器而言,不访问action是不行的,Struts提供了一种比较简单的方式来访问Servlet API . 二.通常我们需要访问的Servlet API 是 HttpSession.HttpservletRequest.ServletContext,分别对应了JSP内置对象 session,reques

struts2如何访问servlet API

 struts2如何访问servlet API 1.struts2 通过提供一个ActionContext 来访问servlet API 2.ActionContext提供了哪些方法来进行访问 Object  get(Object key):该方法类似于调用HttpServletRequest 的getAttribute(String name) Map getApplication() :返回一个Map对象,模拟该应用的ServletContext static ActionContext

Struts2笔记--Action访问Servlet API

Web应用中通常需要访问的Servlet API就是HttpServletRequest.HttpSession和ServletContext,这三个接口分别代表JSP内置对象中的request.session和application. 1.使用Struts2提供的ActionContext类来访问Servlet API.下面是ActionContext类中包含的几个常用方法. Object get(Object key):该方法类似于调用HttpServletRequest的getAttrib

Struts2学习笔记(五)——Action访问Servlet API

在Strut2中访问Servlet API有三种方式: 1.通过ActionContext访问Servlet API,推荐使用这种,但是这种方案它获取的不是真正的事Servlet API. 步骤: 1).创建一个ActionContext ActionContext context=ActionContext.getContext(); 2).通过context对象获取Servlet API Map<String,Object> getApplication() 获取的是application

Struts2(八)访问Servlet API

一.Struts2中的Servlet API 1.1.struts2的Action实现了MVC中C层的作用 针对请求用户显示不同的信息 登录后段保存用户信息 ----session 保存当前在线人数等功能---application 1.2.传统的Servlet API类型 HttpServletRequest HttpSession ServletContext 1.3.Struts2中将传统的Servlet API类型被处理成Map类型 访问更方便 不依赖传统Servlet API 类型--

struts2中访问servlet API

Struts2中的Action没有与任何Servlet API耦合,,但对于WEB应用的控制器而言,不访问Servlet API几乎是不可能的,例如需要跟踪HTTP Session状态等.Struts2中提供了一个ActionContext类,Struts2的Action可以通过该类来访问Servlet API. ActionContext类中包含的几个常用方法: Object get(Object key):该方法类似于调用HttpServletRequest的getAttribute(Str

struts2 - ation 访问 Servlet api

Web 应用中通常需要访问的 Servlet Api 就是 HttpServletRequest .HttpSession 和 ServletContext,这三个接口分别代表 JSP内置对象中的 request.session 和 application. 一.通过 struts 的 ActionContext 类来访问(间接性访问). eg1: action文件: struts.xml文件: jsp 页面: 二.struts 通过 ServletContextAware.ServletReq