概述
- 直接访问 Servlet API 将使 Action 与 Servlet 环境耦合在一起, 测试时需要有 Servlet 容器, 不便于对 Action 的单元测试.
- 直接获取 HttpServletRequest 对象:
ServletActionContext.getRequest()
- 直接获取 HttpSession 对象
ServletActionContext.getRequest().getSession()
- 直接获取 ServletContext 对象
ServletActionContext.getServletContext()
- 步骤:
1.获得HttpServletRequest对象:ServletActionContext.getRequest()
2.通过request对象获得session、application、参数(只要是通过这几个对象可以获得的,那就都可以获得)
测试代码
通过ServletActionContext类访问
package top.itcourse.coupling;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
/*
* 耦合方式访问web资源之ServletActionContext:
* 1.获得HttpServletRequest对象:ServletActionContext.getRequest()
* 2.通过request对象获得session、application、Parameter(只要是通过这几个对象可以获得的,那就都可以获得)
*/
public class TestCoupling {
// action方法
public String execute() {
// ①.获取HttpServletRequest对象
HttpServletRequest request = ServletActionContext.getRequest();
// ②.获取HttpSession对象
HttpSession session = request.getSession();
// ③.获得ServletContext对象(这个也可以通过ServletActionContext.getServletContext()获取到)
ServletContext application = request.getServletContext();
// ④.获得访问参数值
request.getParameterValues("name");
System.out.println("request: " + request + "\nsession: " + session + "\napplication: " + application);
return "success";
}
}
效果
其它
关注下方公众号,回复:耦合的访问方式值之ServletActionContext.code
欢迎加入交流群:451826376
更多信息:www.itcourse.top