package loginAction;
import com.opensymphony.xwork2.ActionSupport;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
public class IoCAction extends ActionSupport implements ServletRequestAware{
private String userName;
private String password;
private HttpServletRequest request;
public String getUserName() {
return userName;
}
/**
* @param userName the userName to set
*/
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 hsr) {
request=hsr;
}
public String execute() throws Exception{
if(getUserName().equals("QQ")&&getPassword().equals("123")){
//通过request对象获取session对象
HttpSession session=request.getSession();
//把登录名传入session中
session.setAttribute("userName", this.getUserName());
return SUCCESS;
}
else{
return INPUT;
}
}
}
下面来看非IOC方式的代码
package loginAction;
import com.opensymphony.xwork2.ActionSupport;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
public class NoIoCAction extends ActionSupport{
private String userName;
private String password;
/**
* @return the userName
*/
public String getUserName() {
return userName;
}
/**
* @param userName the userName to set
*/
public void setUserName(String userName) {
this.userName = userName;
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
public String execute() throws Exception{
if(getUserName().equals("QQ")&&getPassword().equals("123")){
/*调用ServletActionContext的getRequest()方法获取HttpServletRequest类的对象request对象。*/
HttpServletRequest request=ServletActionContext.getRequest();
//调用request对象的getSession()方法获取session对象
HttpSession session=request.getSession();
//调用session对象的方法设置数据
session.setAttribute("userName", this.userName);
session.setAttribute("password", this.password);
return SUCCESS;
}
else{
return INPUT;
}
}
}