您的位置:首页 > 编程语言 > Java开发

【Struts2】③访问web中元素的方式

2014-09-18 14:50 225 查看
整体来说,有四种方式:

1. 通过ActionContext来访问Map类型的request、session、application对象

public class AttributeAction extends ActionSupport{
private Map<String,Object> request;
private Map<String,Object> session;
private Map<String,Object> application;
public  AttributeAction()
{
request=(Map<String,Object>)ActionContext.getContext().get("request");
session=ActionContext.getContext().getSession();
application=ActionContext.getContext().getApplication();
}
public String execute()
{
request.put("req", “req");
session.put("ses", “ses");
application.put("app", “app");
return SUCCESS;
}}
2. 通过实现RequestAware、SessionAware、ApplicationAware接口来访问Map类型的request、session、application对象(IoC方式)

public class AttributeAction  extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{
private Map<String,Object> request;
private Map<String,Object> session;
private Map<String,Object> application;
public void setRequest(Map<String, Object> request) {
this.request=request;
}
public void setSession(Map<String, Object> session) {
this.session=session;
}
public void setApplication(Map<String, Object> application) {
this.application=application;}
public String execute()
{             request.put("req", “req");
session.put("ses", “ses");
application.put("app", “app");
return SUCCESS;	}}
3. 通过ServletActionContext来访问Servlet API类型的HttpServletRequest、 HttpSession、 ServletContext对象(依赖于Servlet API 方式)

public class AttributeAction extends ActionSupport{
private HttpServletRequest request;
private HttpSession session;
private ServletContext application;
public AttributeAction()
{
request=ServletActionContext.getRequest();
session=request.getSession();
application=session.getServletContext();
}
public String execute()
{
request.put("req", “req");
session.put("ses", “ses");
application.put("app", “app");
return SUCCESS;
}}
4. 通过实现ServletRequestAware接口来访问Servlet API类型的HttpServletRequest、 HttpSession、 ServletContext对象(IoC方式)

public class AttributeAction4 extends ActionSupport implements ServletRequestAware{
private HttpServletRequest request;
private HttpSession session;
private ServletContext application;
public void setServletRequest(HttpServletRequest request) {
session=request.getSession();
application=session.getServletContext();
}
public String execute()
{
request.setAttribute("req", "aaa3");
session.setAttribute("ses", "bbb3");
application.setAttribute("app", "ccc3");
return SUCCESS;
}
其中,前两种方式与Servlet API解耦合,后两种方式与Servlet API耦合,推荐使用前两种方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: