在struts2中有两种方式可以得到这些对象
1、非IoC方式
要获得上述对象,关键Struts 2中com.opensymphony.xwork2.ActionContext类。我们可以通过它的静态方法getContext()获取当前Action的上下文对象。有了这个对象我们想获得其他几个对象就好办了
ActionContext ctx = ActionContext .getContext(); Map session = ctx.getSession(); 细心的朋友可以发现这里的session是个map对象在Struts2中底层的session都被封装成了Map类型我们可以直接操作这个map 进行对session的写入和读取操作而不用去直接操作HttpSession对象
另外,org.apache.struts2.ServletActionContext作为辅助类(Helper Class),可以帮助您快捷地获得这几个对象。
HttpServletRequest request = ServletActionContext. getRequest(); HttpServletResponse response = ServletActionContext. getResponse(); HttpSession session = request.getSession(); 如果你只是想访问session的属性(Attribute),你也可以通过ActionContext .getContext().getSession()获取或添加session范围(Scoped)的对象。
2、IoC方式(这种方式在tapestry中也是这样实现的) 要使用IoC方式,我们首先要告诉IoC容器(Container)想取得某个对象的意愿,通过实现相应的接口做到这点。具体实现
- import java.util.Map;
-
-
import javax.servlet.http.HttpServletRequest;
-
import javax.servlet.http.HttpServletResponse;
-
import javax.servlet.http.HttpSession;
-
-
import org.apache.struts2.interceptor.ServletRequestAware;
-
import org.apache.struts2.interceptor.ServletResponseAware;
-
import org.apache.struts2.interceptor.SessionAware;
-
-
import com.opensymphony.xwork2.ActionSupport;
-
-
public class IoCServlet extends ActionSupport implements SessionAware,
- ServletRequestAware, ServletResponseAware {
-
private String message;
-
private Map att;
-
private HttpServletRequest request;
-
private HttpServletResponse response;
-
-
public String getMessage() {
-
return message;
- }
-
-
public void setSession(Map att) {
-
this.att = att;
- }
-
-
public void setServletRequest(HttpServletRequest request) {
-
this.request = request;
- }
-
-
public void setServletResponse(HttpServletResponse response) {
-
this.response = response;
- }
-
-
@Override
-
public String execute() {
-
att.put("msg", "Hello World from Session!");
-
- HttpSession session = request.getSession();
-
StringBuffer sb = new StringBuffer("Message from request: ");
-
sb.append(request.getParameter("msg"));
-
sb.append(" Response Buffer Size: ");
- sb.append(response.getBufferSize());
-
sb.append(" Session ID: ");
- sb.append(session.getId());
-
- message = sb.toString();
-
return "success";
- }
- }
分享到:
相关推荐
本文将详细介绍如何在Struts2中使用request和response。 #### 二、Struts2中request与response的获取方式 在Struts2中,可以通过以下几种方式来获取request和response对象: 1. **使用Struts2提供的拦截器:** - ...
struts2 获取request session对象
这种方式与第一种方式相似,但使用了Struts2提供的`ServletActionContext`来获取Request,而不是从`ActionContext`中获取。 4. **Servlet相关的IoC取得Request等对象的方式** 最后一种方式也是通过注解,但是使用...
本文将详细讲解在Struts2中获取`request`对象的几种常见方法,以及它们的适用场景。 1. **Action上下文(ActionContext)** `ActionContext`是Struts2的核心组件之一,它封装了与当前请求相关的所有上下文信息,...
在Struts2框架中,对request和session的管理和获取是实现Web应用中用户交互和状态维护的重要手段。本文将深入探讨Struts2中如何获取request和session,以及这两种对象的作用和应用场景。 ### Struts2框架简介 ...
以下将详细介绍如何在Struts2的Action中获取request、response、session。 ### 1. 使用ActionContext获取request、response、session Struts2的Action可以通过`ActionContext`来间接获取`request`、`response`和`...
在 Struts2 中,处理用户请求时经常需要使用到 Servlet 的内置对象,比如 Request、Session 和 Application,这些对象可以帮助开发者存储和获取数据。然而,在实际应用中,为了避免代码与 Servlet API 过度耦合,...
在Struts框架中,请求(Request)扮演着至关重要的角色,因为它承载了客户端的所有请求信息。本篇文章将深入探讨“Struts的request包装替换的思想”,以及如何通过自定义Filter来实现这一过程。 在标准的Struts框架...
Struts2中获得Request,Response的几种方法,有代码作为参考。
Struts2上传文件(直接用request)
例如,你可以使用`ActionContext.getContext().get("key")`来获取请求或会话中的值,而`ActionContext.getContext().getValueStack()`则可以获取ValueStack,它是Struts2中处理模型驱动的一个关键部分。 2. **...
// 从request中获取属性 public String execute() { String receivedMessage = message; // 这里可以从请求中获取message // ... } } ``` 接下来是session对象,它比request具有更长的生命周期,可以跨多个...
在Struts2框架中,理解并正确使用request、response、session和application范围对于有效地管理数据和状态至关重要。这些范围帮助我们在Web应用程序中实现逻辑和数据流的分离,提高代码的可维护性和可扩展性。通过...
在实际应用中,通常会结合Struts2的拦截器(Interceptor)来处理这些域数据,例如,可以在预处理(preintercept)阶段将数据放入域,然后在后处理(postintercept)阶段取出使用。 此外,Struts2还提供了Action上...
Struts2 允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂、多变的需求。 Struts2 标签分类 Struts2 标签库可以分为三大类:UI 标签、非 UI 标签和 Ajax 标签。 UI 标签 UI 标签主要用于生成 HTML ...
Struts是Java Web开发中的一款经典MVC框架,它的核心组件之一是DispatchAction,这个组件在...通过学习和分析这些文件,初学者可以更深入地理解Struts中DispatchAction的使用和工作原理,从而更好地进行Java Web开发。
请求首先到达的是Struts2的过滤器Dispatcher,它通常是web应用部署描述符(web.xml)中的一个Filter。过滤器Dispatcher负责拦截所有请求,检查是否属于Struts2的请求。 3. **ActionContext初始化**: 在请求被...
在探讨STRUTS2框架中如何获取session和request这一核心知识点时,我们首先需要理解STRUTS2框架的运行机制以及session与request在Web开发中的基础概念。 ### STRUTS2框架简介 STRUTS2是Apache软件基金会下的一个...
Struts中文手册提供了全面的指南,帮助中国开发者更好地理解和使用Struts框架。 在Struts框架中,核心组件包括: 1. **ActionServlet**:这是Struts框架的核心,它是一个扩展了Servlet的类,负责处理所有HTTP请求...
这里我们将详细探讨如何解决 Struts 中的中文乱码问题。 一、在 Action 类中的解决方法: 当在 Action 类中遇到中文乱码问题时,可以使用以下代码进行转换。创建一个静态工具类,如 `Chinese`,并定义一个 `...