`

在Action中获取:request,session,application

    博客分类:
  • SSH
 
阅读更多

在Action中获取:request,session,application。

共四种方式,示例在下面给出,其中第二种常用。

【注意1】:我们需要知道前两种方法得到的是Map<String,Object>,而后两种方式得到的才是真正的request等对象。而Map就是把request对象中的属性取出做成了键值对而已。

【注意2】:另外如果就是为了在action和jsp传递参数的话,只需要在action中定义成员,然后Jsp中利用struts标签<s:property value="name"/>就能够访问到数据,而这些内容都是被保存在了value stack中。关于value stack 和 stack context 会在后面得内容涉及。

?

方法一:

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;
}
}

方法二:

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();
}
}

分享到:
评论

相关推荐

    Struts2的Action中获得request response session几种方法

    以下将详细介绍如何在Struts2的Action中获取request、response、session。 ### 1. 使用ActionContext获取request、response、session Struts2的Action可以通过`ActionContext`来间接获取`request`、`response`和`...

    Struts2学习笔记(三) Struts2中访问request,session,和application对象

    在Struts2中,访问request、session和application对象是进行数据共享和传递的重要手段。这篇学习笔记主要探讨了如何在Struts2框架下有效地利用这三种域对象。 首先,request对象代表一次HTTP请求,它存储的数据仅...

    struts2创建 request response session application

    在Struts2框架中,理解并正确使用request、response、session和application范围对于有效地管理数据和状态至关重要。这些范围帮助我们在Web应用程序中实现逻辑和数据流的分离,提高代码的可维护性和可扩展性。通过...

    struts2访问request,session,application作用域

    在 Struts2 的 Action 类中,可以通过以下方式间接地访问到 Request、Session 和 Application: ```java // 使用 ActionContext 来获取 ActionContext context = ActionContext.getContext(); Map request = (Map)...

    Struts2访问request,session,application的四种方式

    OGNL是Struts2中强大的表达式语言,它允许开发者直接在JSP或Action中通过表达式来访问request、session和application中的数据。例如,`&lt;s:property value="#session['key']" /&gt;`可以在页面上显示session中的值。在...

    struts2访问application、session以及request等web资源的示例代码

    在"struts2-web"这个压缩包文件中,可能包含了一个或多个示例项目,演示了如何在Struts2的Action类中实现对application、session和request域的访问。开发者可以运行这些示例,通过观察控制台输出或页面显示,了解...

    jsp页面间通过request/session传值

    通过以上示例,我们可以清晰地了解到如何利用 JSP 中的 `request` 和 `session` 对象来实现数据在不同页面间的传递。此外,我们还学习了如何使用 JavaBean 来管理更复杂的数据结构。这些技术是构建动态 Web 应用程序...

    ROR绿色最新环境(2013/3/10)

    ActionDispatch::RequestId Rails::Rack::Logger ActionDispatch::ShowExceptions ActionDispatch::DebugExceptions ActionDispatch::RemoteIp ActionDispatch::Reloader ActionDispatch::Callbacks ActiveRecord::...

    Struts2通过使用ActionContext类获取request和response对象

    在Struts2中,ActionContext不仅仅是获取request和response的工具,它还包含了其他有用的上下文信息,如session、application等。例如,你可以通过ActionContext获取session中的数据: ```java Map, Object&gt; ...

    JSP内置对象:Request和Response的简单介绍及使用

    在JSP页面中,Request对象常用于获取表单数据,如下所示: ```jsp ;charset=UTF-8" language="java" %&gt; request.setCharacterEncoding("UTF-8"); String username = request.getParameter("username"); String ...

    struts2之Action访问Servlet API

    该类可以模拟获取 request、session 和 application 的 Map 对象。常用的方法包括: * static ActionContext getContext() : 静态方法,获取 ActionContext 实例 * Object get(Object key) : 类似于 request....

    详解Webwork中Action 调用的方法

    接着,`getParameterMap`、`getSessionMap`、`getApplicationMap`等方法被用于获取请求、session和application级别的参数,这些参数将在后续的Action执行中使用。 3. DefaultActionProxyFactory、...

    struts中数据在action与jsp中的传递总结.pdf

    Struts 中数据在 Action 与 JSP 中的传递总结 Struts 框架中,数据在 Action 与 JSP 之间的传递是一种常见的需求。为了实现这种传递,Struts 提供了多种方式,本文将对这些方式进行总结。 方式一:通过 FormBean ...

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    在这个类中,有一个 request 属性,可以用来 Mock 出 Session,以代替网页请求的真实 Session。这使得我们可以模拟用户的请求,测试 Action 的正确性。 其次,需要解决 JPA 中的 Lazy 机制。在 Hibernate 中,Lazy ...

    JSP与Servlet传值技术总结

    5. 使用RequestDispatcher对象和url参数:使用RequestDispatcher对象来forward请求,并在url中传递参数,例如:RequestDispatcher rd = application.getRequestDispatcher("/queryResult.jsp?a="+000); request....

    赵栋struts2 笔记

    值栈包含四个不同的作用域:Application、Session、Request和Action。每个作用域代表了数据的可见范围。 5. **Ognl表达式**: Object-Graph Navigation Language (Ognl)是Struts2的核心部分,用于在值栈中进行数据...

    Struts1.2Action之处理多个业务

    在处理多个业务时,ActionContext提供了访问当前请求上下文的桥梁,可以用来获取请求参数,或者设置值到Request、Session、Application域中。这对于共享数据或在多个Action之间传递信息非常有用。 **五、异常处理**...

    jsp基础

    在JSP中,有四种不同的属性范围,它们决定了变量或对象的有效范围和生命周期,这些范围包括Page、Request、Session和Application。 1. **Page Scope**: Page范围的属性只存在于当前的JSP页面中,由`pageContext`...

    kohana开发文档

    - **配置**:可以在`application/config/session.php`中设置会话相关的配置选项。 **23.5 Session适配器** - **定义**:支持多种存储后端,如文件、数据库等。 **23.5.1 Session适配器设置** - **配置**:在`...

Global site tag (gtag.js) - Google Analytics