struts2获取ServletAPI方式介绍

我们之前使用struts2进行开发看起来就像java工程并没有涉及到servlet API的使用,但我们都知道它是建于servlet之上的,struts2其实也是允许开发者在Action中操作response、request等一系列serlvet API的

通过类ServletActionContext即可,示例:

Action使用servlet方式.png

通过ServletActionContext提供的一系列静态方法,我们可以轻松的获取到request,获取到request就能获取到Session、ServletContext了

再介绍一个类ActionContext,它是ServletActionContext的父类,通过它我们可以获得一些关于servlet api底层的一些东西,观察如下代码:

session.png

通过ActionContext对象我们可以获取HttpSession底层的数据结构,这样其实就可以操纵session,那么为什么要提供这样的方法呢?主要是为了简化测试

了解部分:

WEB测试分为:容器内测试(jetty)、模拟测试(mock)

所谓的容器内测试就是通过java代码来启动服务器,可以编写代码向某一个资源发送请(不是通过浏览器),服务器收到请求创建HttpServletRequest等对象,我们拿到这些对象就可以操纵他们了

模拟测试就是模拟HttpServletRequest对象,如何模拟呢?就是继承HttpServletRequest、HttpSession等Servlet APIS,当然是由测试框架来继承的,我们再用这些APIS来进行测试

你可能感兴趣的:(struts2获取ServletAPI方式介绍)