如何获取servlet对象
struts2里,获取servlet对象都是通过ServletActionContext来获取的。
//BaseAction.java
/**
*
* @return
*/
public HttpServletRequest getRequest() {
HttpServletRequest request = ServletActionContext.getRequest();
return request;
}
protected HttpServletResponse getResponse() {
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=UTF-8");
return response;
}
/**
*
* @return
*/
public HttpSession getSession() {
HttpSession session = ServletActionContext.getRequest().getSession();
return session;
}
ServletActionContext提供了很多的静态方法来获取servlet对象
//ServletActionContext.java
/**
* Sets the HTTP servlet request object.
*
* @param request the HTTP servlet request object.
*/
public static void setRequest(HttpServletRequest request) {
ActionContext.getContext().put(HTTP_REQUEST, request);
}
/**
* Gets the HTTP servlet request object.
*
* @return the HTTP servlet request object.
*/
public static HttpServletRequest getRequest() {
return (HttpServletRequest) ActionContext.getContext().get(HTTP_REQUEST);
}
/**
* Sets the HTTP servlet response object.
*
* @param response the HTTP servlet response object.
*/
public static void setResponse(HttpServletResponse response) {
ActionContext.getContext().put(HTTP_RESPONSE, response);
}
/**
* Gets the HTTP servlet response object.
*
* @return the HTTP servlet response object.
*/
public static HttpServletResponse getResponse() {
return (HttpServletResponse) ActionContext.getContext().get(HTTP_RESPONSE);
}
ServletActionContext的静态方法里,又是调用ActionContext里的方法来获取servlet对象的
具体就不贴代码了。