-、获取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方式