-、获取ServletAPI的三种方式:
1.直接方式:(IoC:控制反转,将设计好的类让系统控制)
1、IOC方式:
public class IocAction extends ActionSupport implements ServletRequestAware {
//必须要是实现setServletRequest(HttpServletRequest req)方法
public void setServletRequest(HttpServletRequest req) {
HttpServletRequest request = req;
request.setAttribute("name", "haoren");
}
}
2、非IOC方式:
ServletActionContext.getRequest()
ServletActionContext.getPageContext();
ServletActionContext.getResponse()
2.间接方式:
1、Struts中提过了一个ActionContext来获得ServletAPI(注意:ActionContext只能获得request而不能获得response)
ActionContext.getContext().put("name", "haoren");//request范围
ActionContext.getContext().getSession().put("name", "haoren");//session范围
ActionContext.getContext().getApplication().put("name","haoren");//servletContext范围
取值:(jsp里面)
${applicationScope.name }
${sessionScope.name }
${requestScope.name }
2、Action运行是所用到的数据都保存在ActionContext中,如session和客户所提交的参数等。
3.推荐间接方式和非IOC方式