struts2中获取作用域的2种方式,RequestAware

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

Servlet中有三大作用域:

request : 作用于一次请求,
session:作用于一个浏览器中,在浏览器不关闭的情况下多次响应都有效
servletContext(application):作用于一个web应用中,在整个程序中都有效,因其作用范围太大所以在开发中用的很少。

那么在struts2中如何获取这三个作用域呢?
有两种方式:

1. 使用ServletActionContext获取到3个作用域对象

//获取request对象
HttpServletRequest request = ServletActionContext.getRequest();
//获取session对象
HttpSession session = Request.getSession();
//获取ServletContext对象
HttpServletContext servletContext = session.getServletContext();

使用作用域对象:
request.setAttribute(“参数名”, 参数);
session.setAttribute(“参数名”, 参数);

2. 实现XxxAware接口 RequestAware SessionAware ApplicationAware

如要获取request对象,
第一步需要在Action类上获取 RequestAware 接口。
第二步要定义一个私有的Map属性,泛型定义为String,Object,属性名为request
例如:
private Map<String,Object> request;
getter && setter

第二步要实现 RequestAware接口的一个方法,

这个方法类似于request的set方法,但并不是。

	@Override
	public void setRequest(Map<String, Object> request) {
		// TODO Auto-generated method stub
		this.request = request;
	}

其他作用域的获取也是一样的,
session要实现SessionAware接口
application要实现ApplicationAware接口
struts2中request对象的获取

猜你喜欢

转载自blog.csdn.net/MacWx/article/details/93974235
今日推荐