/**
* 获取request对象共有两种方式,一种为解耦方式,另一种为耦合方式
* 而耦合方式又有三种方式
*/
public class GetReq {
// 解耦方式 所有的对象已被封装成map
public String getReq1(){
// 获取session
ActionContext.getContext().getSession();
// 获取Application
ActionContext.getContext().getApplication();
// 获取request
Map<String, Object> req = (Map<String, Object>)ActionContext.getContext().get("request");
req.put("attribute","value");
return Action.SUCCESS;
}
// 耦合 第一种方式
public String getReq2(){
HttpServletRequest req = ServletActionContext.getRequest();
req.setAttribute("attribute","value");
return Action.SUCCESS;
}
// 耦合 第二种方式,实际上,三种耦合方式底层实现为第二种方式
public String getReq3(){
HttpServletRequest req = (HttpServletRequest)ActionContext.getContext().get(StrutsStatics.HTTP_REQUEST);
req.setAttribute("attribute","value");
return Action.SUCCESS;
}
}
// 耦合 第三种方式,实现 ServletRequestAware接口
class GetReq4 implements ServletRequestAware{
private HttpServletRequest req;
@Override
public void setServletRequest(HttpServletRequest httpServletRequest) {
this.req = httpServletRequest;
}
public String getReq4() {
req.setAttribute("attribute", "value");
return Action.SUCCESS;
}
}