0
点赞
收藏
分享

微信扫一扫

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


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中获取作用域的2种方式,RequestAware_struts2的作用域



举报

相关推荐

0 条评论