struts2如何获取Request-Session-ServletContext-Response
1. 访问和添加request/session/application属性
如果只是往request/session/application中设置属性,可以用下面的方式
ActionContext ctx = ActionContext.getContext();ctx.getApplication().put("app", "应用范围");//往ServletContext里放入appctx.getSession().put("ses", "session范围");//往session里放入sesctx.put("req", "request范围");//往request里放入reqctx.put("names", Arrays.asList("老张", "老黎", "老方"));jsp页面上获取方式
${applicationScope.app}<br> ${sessionScope.ses}<br> ${requestScope.req}<br>2. struts2中如何获取httpServletRequest/HttpSession/ServletContext/HttpServletResponse对象
public String rsa() throws Exception{HttpServletRequest request = ServletActionContext.getRequest();ServletContext servletContext = ServletActionContext.getServletContext();request.setAttribute("req", "请求范围属性");request.getSession().setAttribute("ses", "会话范围属性");servletContext.setAttribute("app", "应用范围属性");HttpServletResponse response = ServletActionContext.getResponse();return "message";}方法二,实现指定接口,由struts框架注入:
import com.opensymphony.xwork2.ActionContext;public class HelloWorldAction2 implements ServletContextAware,ServletRequestAware,ServletResponseAware{private HttpServletRequest request ;private HttpServletResponse response ;private ServletContext servletContext ;public void setServletContext(ServletContext context) {//context对象不是应用程序传进去的,而是由struts框架自动注入的this.servletContext = context ;}public void setServletRequest(HttpServletRequest request) {this.request = request ;}public void setServletResponse(HttpServletResponse response) {this.response = response ;}}