struts2获取request,session,application的方式
public class LoginAction2 extends ActionSupport implements RequestAware,SessionAware, ApplicationAware {private Map<String, Object> request;private Map<String, Object> session;private Map<String, Object> application;//DI dependency injection//IoC inverse of controlpublic String execute() {request.put("r1", "r1");session.put("s1", "s1");application.put("a1", "a1");return SUCCESS; }@Overridepublic void setRequest(Map<String, Object> request) {this.request = request;}@Overridepublic void setSession(Map<String, Object> session) {this.session = session;}@Overridepublic void setApplication(Map<String, Object> application) {this.application = application;}}??
public class LoginAction4 extends ActionSupport implements ServletRequestAware {private HttpServletRequest request;private HttpSession session;private ServletContext application;public String execute() {request.setAttribute("r1", "r1");session.setAttribute("s1", "s1");application.setAttribute("a1", "a1");return SUCCESS; }@Overridepublic void setServletRequest(HttpServletRequest request) {this.request = request;this.session = request.getSession();this.application = session.getServletContext();}}?
public class LoginAction3 extends ActionSupport {private HttpServletRequest request;private HttpSession session;private ServletContext application;public LoginAction3() {request = ServletActionContext.getRequest();session = request.getSession();application = session.getServletContext();}public String execute() {request.setAttribute("r1", "r1");session.setAttribute("s1", "s1");application.setAttribute("a1", "a1");return SUCCESS; }}?
?
public class LoginAction1 extends ActionSupport {private Map request;private Map session;private Map application;public LoginAction1() {request = (Map)ActionContext.getContext().get("request");session = ActionContext.getContext().getSession();application = ActionContext.getContext().getApplication();}public String execute() {request.put("r1", "r1");session.put("s1", "s1");application.put("a1", "a1");return SUCCESS; }}
<struts> <constant name="struts.devMode" value="true" /> <package name="login" extends="struts-default" namespace="/login"> <action name="login*" name="code">?<body>取得Map类型request,session,application,真实类型 HttpServletRequest, HttpSession, ServletContext的引用:<ol><li>前三者:依赖于容器</li><li>前三者:IOC</li> (只用这种)<li>后三者:依赖于容器</li><li>后三者:IOC</li></ol><br /><form name="f" action="" method="post">用户名:<input type="text" name="name"/>密码:<input type="text" name="password"/><br /><input type="button" value="submit1" onclick="javascript:document.f.action='login/login1';document.f.submit();" /><input type="button" value="submit2" onclick="javascript:document.f.action='login/login2';document.f.submit();" /><input type="button" value="submit3" onclick="javascript:document.f.action='login/login3';document.f.submit();" /><input type="button" value="submit4" onclick="javascript:document.f.action='login/login4';document.f.submit();" /></form></body>
?
?
?