action访问servlet获取页面信息

1、Action访问ActionContext

ActionContext类是一个Action执行的上下文,Action执行期间所用到的对象都保存在ActionContext中,如客户端提交的参数,session会话信息等。

创建ActionContext的方法:ActionContext  ac  =  ActionContext.getContext();

ActionContext类中的常用方法:

Map getApplication();   返回一个application级别的Map对象

Map getSession();  返回Map类型的HttpSession对象

public String execute() throws Exception{
		if("qq".equals(getUserName()) && "123".equals(getPassword())) {
			ActionContext ac = ActionContext.getContext();
			ac.getApplication().put("userName", getUserName());
			ac.getSession().put("userName", getUserName());
			return SUCCESS;
		}
		return INPUT;
	}

2、Action直接访问Servlet,IoC方式

在Struts2框架中,可以通过IoC方式将Servlet对象注入到Action中,这需要在Action中实现以下接口

1)ServletRequestAware:实现该接口的Action可以直接访问request对象

2)ServletResponseAware:实现该接口的Action可以直接访问response对象

3)SessionAware:实现该接口的Action可以直接访问session对象

public class LoginActionIoC extends ActionSupport implements ServletRequestAware{
	private String userName;
	private String password;
	private HttpServletRequest request;
	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;
	}

	@Override
	public void setServletRequest(HttpServletRequest arg0) {
		request = arg0;
	}
	public String execute() throws Exception{
		if("qq".equals(getUserName()) && "123".equals(getPassword())) {
			HttpSession session = request.getSession();
			session.setAttribute("userName", getUserName());
			return SUCCESS;
		}
		return INPUT;
	}
}

3、Action直接访问Servlet,非IoC方式

在非IoC方式中,Struts2提供了ServletActionContext类帮助获得Servlet。该类中的常用方法如下:

1)static getRequest()  获取Web应用程序的request对象

2)static getResponse()  获取Web应用程序的response对象

public String execute() throws Exception{
		if("qq".equals(getUserName()) && "123".equals(getPassword())) {
			HttpServletRequest request = ServletActionContext.getRequest();
			HttpSession session = request.getSession();
			session.setAttribute("userName", getUserName());
			return SUCCESS;
		}
		return INPUT;
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值