概述
- 通过实现 ServletRequestAware, ServletContextAware 等接口的方式
- 步骤
1.实现ServletXxxAware接口
2.实现其中的方法,并将参数存储为成员变量(会自动的被调用)
3.使用成员变量
测试代码
TestServletXxxAware.java
package top.itcourse.aware;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.util.ServletContextAware;
/*
* 解耦方式访问web资源之ServletXxxAware:
* 1.实现ServletXxxAware接口
* 2.实现其中的方法,并将参数存储为成员变量(会自动的被调用)
* 3.使用成员变量
*/
// 1.实现ServletXxxAware接口
public class TestServletXxxAware implements ServletRequestAware,ServletContextAware,ServletResponseAware{
private HttpServletRequest request;
private ServletContext application;
private HttpServletResponse response;
// action方法
public String execute() {
// 3.使用成员变量
System.out.println("request: " + request);
System.out.println("application: " + application);
System.out.println("response: " + response);
// 其它能从request中获取的东西都可以获取,比如session、参数等等
System.out.println("session: " + request.getSession());
return "success";
}
// 2.实现其中的方法,并将参数存储为成员变量
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
@Override
public void setServletContext(ServletContext application) {
this.application = application;
}
@Override
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
}
结果
其它
关注下方公众号,回复:struts2_course.code
欢迎加入交流群:451826376
更多信息:www.itcourse.top