struts2拿到session的三种方法。
其中ActionContext完全与web 容易不耦合。
1,通过ActionContext得到session,实现如下
ActionContext ac = ActionContext.getContext();
Map session = ac.getSession();
2,实现ServletRequestAware(只是只这一个就可以),和ServletResponseAware接口
package cn.edu.cqupt.action;
import java.util.Map;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class Login2Action extends ActionSupport implements ServletRequestAware,ServletResponseAware{
private String username;
private String password;
private HttpServletRequest request;
private HttpServletResponse response;
@Override
public String execute() throws Exception {
if(username.equals("kevin")&&password.equals("123456"))
{
HttpSession session = request.getSession();
session.setAttribute("result", "success");
return SUCCESS;
}
return INPUT;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
public void setServletResponse(HttpServletResponse response) {
this.response=response;
}
}
3、通过ServletActionContext 得到
HttpServletRequest request =ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();