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

这是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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值