struts的action访问servlet的IOC方式与非IOC方式

来源:互联网 发布:关于淘宝客服常用语 编辑:程序博客网 时间:2024/05/17 07:03
这是IOC方式,要实现相应接口
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;
}
    } 
}


0 0
原创粉丝点击