10.Servlet API
在struts2的开发中依然需要使用到ServletAPI,比如用户登录后,需要将用户信息保存到session中。在struts2中有两种方式可以获取到ServletAPI,一种是解耦的方式,一种是耦合的方式。
- 解耦方式:
关键代码:
ActionContext.getContext().getSession().put("currentUser","user");
//获取application对象
ActionContext.getContext().getApplication();
//获取request
Map<String,Object> req=(Map<String,Object>)ActionContext.getContext().get("request");
req.put("pwd","user.getPassword");
- 耦合的方式来获取
一、直接通过ServletActionContext来获取
//直接获取servlet的API,所以是耦合的方式
HttpServletRequest req=ServletActionContext.getRequest();
req.getSession().setAttribute("currentUser",user);
二、通过ActionContext对象获取HttpServletRequest对象,关键代码如下。
HttpServletRequest req=(HttpServletRequest)ActionContext.getContext().get(StrutsStatics.HTTP_REQUEST);
req.getSession().setAttribute("currentUser",user);
三、通过IOC的方式直接获取到ServletAPI对象。
总结:这几种方法是相互之间有关联的,具体看源码。