struts2 获得request session application的四种方式

(一)Map(在web.xml中必须使用2.1以上的配置)

public class LoginAction1 extends ActionSupport {

private Map request;
private Map session;
private Map application;

public LoginAction1() {
request = (Map)ActionContext.getContext().get("request");
session = ActionContext.getContext().getSession();
application = ActionContext.getContext().getApplication();
}

public String execute() {
request.put("r1", "r1");
session.put("s1", "s1");
application.put("a1", "a1");
return SUCCESS; 
}

}

(二)继承并实现RequestAware,SessionAware, ApplicationAware 接口(依赖注入,强烈推荐使用)

public class LoginAction2 extends ActionSupport implements RequestAware,SessionAware, ApplicationAware {

private Map<String, Object> request;
private Map<String, Object> session;
private Map<String, Object> application;

//DI dependency injection
//IoC inverse of control
public String execute() {
request.put("r1", "r1");
session.put("s1", "s1");
application.put("a1", "a1");
return SUCCESS; 
}

@Override
public void setRequest(Map<String, Object> request) {
this.request = request;
}

@Override
public void setSession(Map<String, Object> session) {
this.session = session;
}

@Override
public void setApplication(Map<String, Object> application) {
this.application = application;
}

}

(三)获得真实对象

public class LoginAction3 extends ActionSupport {

private HttpServletRequest request;
private HttpSession session;
private ServletContext application;

public LoginAction3() {
request = ServletActionContext.getRequest();
session = request.getSession();
application = session.getServletContext();
}

public String execute() {
request.setAttribute("r1", "r1");
session.setAttribute("s1", "s1");
application.setAttribute("a1", "a1");
return SUCCESS; 
}

}

(四)依赖注入+获得真是对象

public class LoginAction4 extends ActionSupport implements ServletRequestAware {

private HttpServletRequest request;
private HttpSession session;
private ServletContext application;

public String execute() {
request.setAttribute("r1", "r1");
session.setAttribute("s1", "s1");
application.setAttribute("a1", "a1");
return SUCCESS; 
}

@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
this.session = request.getSession();
this.application = session.getServletContext();
}

}

时间: 2024-10-30 17:01:08

struts2 获得request session application的四种方式的相关文章

Struts2中操作request,session,application的方法

  Map类型--request,session,application 真实类型--HttpServletRequest,HttpSession,ServletContext Map类型是Struts对真实类型的一个封装,会将真实类型映射到Map类型中   取得上述元素有以下4种方法 1  通过ActionContext来访问request,session,application对象 2  通过实现RequestAware.SessionAware.ApplicationAware接口来访问r

JSP中的page,request,session,application

application|js|request|session application和session比较简单,这里主要说明request和page的作用范围.application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止.session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态.生命周期:会话超时,或者服务器端强制使会话失效.request:请求作用域,就是客户端的一次请求.page:一个J

.net cs后台刷新aspx页面的四种方式

 这篇文章主要介绍了.net cs后台刷新aspx页面的四种方式,需要的朋友可以参考下 一:Response.Redirect(Request.Url.ToString());    二:Response.Write("<script language=javascript>window.location.href=document.URL;</script>");    三:Response.AddHeader("Refresh",&quo

网页添加CSS样式表的四种方式

核心提示:网页添加CSS样式表的四种方式 一.使用STYLE属性: 将STYLE属性直接加在个别的元件标签里. <元件(标签) STYLE="性质(属性)1: 设定值1; 性质(属性)2: 设定值2; ...}例如: <TD STYLE="COLOR:BLUE; font-size:9pt; font-family:"标楷体"; line-height:150%>这种用法的优点 是可灵巧应用样式於各标签中,但是缺点则是没有整篇文件的『统一性』. 二

Java线程安全的四种方式及五个等级

四种方式 sychronized关键字 sychronized method(){} sychronized (objectReference) {/*block*/} static synchronized method(){} sychronized(classname.class) 其中1和2是代表锁当前对象,即一个对象就一个锁,3和4代表锁这个类,即这个类的锁 要注意的是sychronized method()不是锁这个函数,而是锁对象,即:如果这个类中有两个方法都是sychronize

Java的线程安全四种方式五个等级

四种方式 sychronized关键字 sychronized method(){} sychronized (objectReference) {/*block*/} static synchronized method(){} sychronized(classname.class) 其中1和2是代表锁当前对象,即一个对象就一个锁,3和4代表锁这个类,即这个类的锁 要注意的是sychronized method()不是锁这个函数,而是锁对象,即:如果这个类中有两个方法都是sychronize

给事件响应函数传参数的四种方式小结

     这篇文章主要介绍了给事件响应函数传参数的四种方式.需要的朋友可以过来参考下,希望对大家有所帮助      如何给事件handler传参数?在刚刚接触Javascript的时候,由于对闭包理解不深刻,常常纠结于该问题.   在讨论群里也经常碰到这样的问题,如下   代码如下: <!DOCTYPE HTML> <html> <head>     <meta charset="utf-8">     <title>如何给事

网络虚拟化提高安全性的四种方式

  虚拟化已经给IT部门带来了很多礼物.它让不可能不仅成为可能,更成为普遍.从服务器整合到云计算,虚拟化是目前世界范围内占主导地位的计算平台. 除了扩展计算能力,虚拟化也被认为是增加网络安全性的一种方法.VMware运营和销售发展总监Rod Stuhlmuller认为,在网络虚拟化中可以通过四种方式改善安全性. 网络虚拟化如何提高安全性 在云数据中心,应用程序工作负载随意配置,迁移和下线,云管理软件按需分配计算.存储和网络容量. 添加网络虚拟化到动态环境,彻底改变网络的运作模式.这样的深刻变化往

喷墨打印机印后表面处理四种方式

  喷墨打印机印后表面处理方法多样而且新技术新材料层出不穷,不过目前喷墨打印机印后表面处理常用的主要方式还是以淋膜.塑封.冷裱.覆膜这样四种方式居多. 1.淋膜 淋膜就是把一种专用液体均匀的涂抹在印后的纸张表面然后通过固化的一种处理方式,由专门的淋膜机进行操作,淋膜特点是: A.质量好淋膜的粘合牢度强.不起泡.密封性能好,表面如同镜面. B.成本便宜属于印后纸张表面处理成本最便宜的,甚至每平米材料费不足一元. C.操作简单淋膜后没有什么后期工作,不会留下什么边条,没有了裁切工作,省了很多人工,是