1.
- mport java.util.Map;
- import org.apache.struts2.interceptor.ApplicationAware;
- import org.apache.struts2.interceptor.RequestAware;
- import org.apache.struts2.interceptor.SessionAware;
- import org.sunxin.struts2.ch03.model.User;
- import com.opensymphony.xwork2.Action;
- public class LoginAction2 implements Action,RequestAware,SessionAware,ApplicationAware
- {
- private User user;
- private Map request;
- private Map session;
- private Map application;
- public User getUser()
- {
- return user;
- }
- public void setUser(User user)
- {
- this.user = user;
- }
- @SuppressWarnings("unchecked")
- @Override
- public String execute() throws Exception
- {
- if("zhangsan".equals(user.getUsername()) && "1234".equals(user.getPassword()))
- {
- //在请求中放置欢迎信息。
- request.put("greeting", "欢迎您来到程序员之家");
- //在session中保存user对象
- session.put("user", user);
- //统计用户访问量,在application中保存用户访问量数据
- Integer count = (Integer)application.get("counter");
- if(null == count)
- count=1;
- else
- count++;
- application.put("counter", count);
- return SUCCESS;
- }
- else
- {
- return ERROR;
- }
- }
- @Override
- public void setRequest(Map request)
- {
- this.request = request;
- }
- @Override
- public void setSession(Map session)
- {
- this.session = session;
- }
- @Override
- public void setApplication(Map application)
- {
- this.application = application;
- }
- }
2.
- import javax.servlet.ServletContext;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpSession;
- import org.apache.struts2.interceptor.ServletRequestAware;
- import org.apache.struts2.util.ServletContextAware;
- import org.sunxin.struts2.ch03.model.User;
- import com.opensymphony.xwork2.Action;
- public class LoginAction4 implements Action, ServletRequestAware, ServletContextAware
- {
- private User user;
- private HttpServletRequest request;
- private ServletContext context;
- public User getUser()
- {
- return user;
- }
- public void setUser(User user)
- {
- this.user = user;
- }
- @Override
- public String execute() throws Exception
- {
- if ("zhangsan".equals(user.getUsername()) && "1234".equals(user.getPassword()))
- {
- HttpSession session = request.getSession();
- //在请求中放置欢迎信息。
- request.setAttribute("greeting", "欢迎您来到程序员之家");
- //在session中保存user对象
- session.setAttribute("user", user);
- //统计用户访问量,在application中保存用户访问量数据
- Integer count = (Integer) context.getAttribute("counter");
- if (null == count)
- count = 1;
- else
- count++;
- context.setAttribute("counter", count);
- return SUCCESS;
- }
- else
- {
- return ERROR;
- }
- }
- @Override
- public void setServletRequest(HttpServletRequest request)
- {
- this.request = request;
- }
- @Override
- public void setServletContext(ServletContext context)
- {
- this.context = context;
- }
- }
3.
- import javax.servlet.ServletContext;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpSession;
- import org.apache.struts2.ServletActionContext;
- import org.sunxin.struts2.ch03.model.User;
- import com.opensymphony.xwork2.Action;
- public class LoginAction3 implements Action
- {
- private User user;
- public User getUser()
- {
- return user;
- }
- public void setUser(User user)
- {
- this.user = user;
- }
- @Override
- public String execute() throws Exception
- {
- if("zhangsan".equals(user.getUsername()) && "1234".equals(user.getPassword()))
- {
- HttpServletRequest request = ServletActionContext.getRequest();
- HttpSession session = request.getSession();
- ServletContext context = ServletActionContext.getServletContext();
- /*ActionContext ctx = ActionContext.getContext();
- HttpServletRequest request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);
- HttpSession session = request.getSession();
- ServletContext context = (ServletContext)ctx.get(ServletActionContext.SERVLET_CONTEXT);*/
- //在请求中放置欢迎信息。
- request.setAttribute("greeting", "欢迎您来到程序员之家");
- //在session中保存user对象
- session.setAttribute("user", user);
- //统计用户访问量,在application中保存用户访问量数据
- Integer count = (Integer)context.getAttribute("counter");
- if(null == count)
- count=1;
- else
- count++;
- context.setAttribute("counter", count);
- return SUCCESS;
- }
- else
- {
- return ERROR;
- }
- }
- }