import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class NonIoCServlet extends ActionSupport {
private String message;
public String getMessage() {
return message;
}
@Override
public String execute() {
ActionContext.getContext().getSession().put("msg",
"Hello World from Session!");
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse(); //这个response是什么用的呢?
HttpSession session = request.getSession();
StringBuffer sb = new StringBuffer("Message from request: ");
sb.append(request.getParameter("msg"));
sb.append("<br>Response Buffer Size: ");
sb.append(response.getBufferSize()); //这个response里的内容是什么呢?
sb.append("<br>Session ID: ");
sb.append(session.getId());
message = sb.toString();
return SUCCESS;
}
}
------解决方案--------------------
HttpServletResponse response = ServletActionContext.getResponse();
这是与Servlet API耦合的访问方式,获取HttpServletResponse对象
也可以直接访问Servlet环境中的HttpRequest,HttpSession和ServletContext对象。通过ServletActionContext类提供的静态方法直接获取:
HttpServletRequest request=ServletActionContext.getRequest();
ServletContext context=ServletActionContext.getServletContext();
HttpSession session=request.getSession();
HttpServletResponse response=ServletActionContext.getResponse();