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

通过ServletActionContext提供的一系列静态方法,我们可以轻松的获取到request,获取到request就能获取到Session、ServletContext了
再介绍一个类ActionContext,它是ServletActionContext的父类,通过它我们可以获得一些关于servlet api底层的一些东西,观察如下代码:

通过ActionContext对象我们可以获取HttpSession底层的数据结构,这样其实就可以操纵session,那么为什么要提供这样的方法呢?主要是为了简化测试
了解部分:
WEB测试分为:容器内测试(jetty)、模拟测试(mock)
所谓的容器内测试就是通过java代码来启动服务器,可以编写代码向某一个资源发送请(不是通过浏览器),服务器收到请求创建HttpServletRequest等对象,我们拿到这些对象就可以操纵他们了
模拟测试就是模拟HttpServletRequest对象,如何模拟呢?就是继承HttpServletRequest、HttpSession等Servlet APIS,当然是由测试框架来继承的,我们再用这些APIS来进行测试
网友评论