struts2 servlet之間通信
阿新 • • 發佈:2017-09-11
ring 之間 scope response app name aca req user
Servlet之間通信的方式有兩大類,每個類有三種不同的方法
1.request
2.session
3.application
不實現ServletContextAware,SessionAware,ServletRequestAware這三個接口的通信
HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("request_username", "username"); HttpServletResponse response = ServletActionContext.getResponse(); //這個是Servlet的session // HttpSession session = request.getSession(); // session.setAttribute("session_username", "username");
ServletContext servletContext = ServletActionContext.getServletContext(); servletContext.setAttribute("application_username", "username");
實現ServletContextAware,SessionAware,ServletRequestAware這三個接口的通信
public class Servlet2Action extends ActionSupport implements ServletContextAware,SessionAware,ServletRequestAware { private HttpServletRequest request; private ServletContext servletContext; private Map<String,Object> sessionMap; /** * {}struts2包裝以後的session,本質上是一個map [email protected] servlet中的application [email protected] struts2包裝後的request */ public void setSession(Map<String, Object> arg0) { this.sessionMap=arg0; sessionMap. } public void setServletContext(ServletContext arg0) { this.servletContext=arg0; } public void setServletRequest(HttpServletRequest arg0) { this.request=arg0; } public String testServelet() { System.out.println(sessionMap.toString()); System.out.println(servletContext.toString()); System.out.println(request.toString()); return "servelet"; } }
在目標頁面取出
request:${requestScope.request_username }<br> session:${sessionScope.session_username }<br> application:${applicationScope.application_username }<br>
struts2 servlet之間通信