Struts2跟servlet不一样.不能直接调用request
但是有很多地方又需要用到request
通过request可以操作很多东西.
比如:
HttpSession session = request.getSession();
session.setAttribute("object", object);
request.setAttribute("object", object);
等等...
既然不让直接调用,那就得想办法调用.
每个Strut2文件都需要继承一个类:ActionSupport.想要调用request需要实现两个接口.所有有了以下解决方案
1.自定义一个基础类.继承ActionSupport类并且时间ServletRequestAware, ServletResponseAware接口.
2.在基础类中得到想要的东西.比如request,response或者session.
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import com.opensymphony.xwork2.ActionSupport;
public class BaseAction extends ActionSupport implements ServletRequestAware, ServletResponseAware{
private static final long serialVersionUID = 1L;
public HttpServletRequest request;
public HttpServletResponse response;
@Override
public void setServletResponse(HttpServletResponse response) {
this.response=response;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request=request;
}
}
如果用到session的话,也可以取出session来.
3.以后每个Struts2的java类继承这个BaseAction 类就可以同时使用了.
高手勿喷.
分享到:
相关推荐
本文将详细讲解在Struts2中获取`request`对象的几种常见方法,以及它们的适用场景。 1. **Action上下文(ActionContext)** `ActionContext`是Struts2的核心组件之一,它封装了与当前请求相关的所有上下文信息,...
在Action中,可以直接调用`ServletActionContext.getRequest()`、`ServletActionContext.getResponse()`、`ServletActionContext.getRequest().getSession()`等方法来获取这些对象。 #### 示例代码: ```java ...
这种方法利用了Struts2中的ActionContext对象,它包含了当前执行环境的信息,可以通过它来获取request对象。 2. **使用`ServletActionContext`**: ```java HttpServletRequest request = ServletActionContext....
本文将重点讨论Struts2中的API耦合和动态方法调用,这两种特性对于理解框架的工作原理和提高代码的灵活性至关重要。 首先,我们来看看Struts2 API耦合的几种方式: 1. **ActionContext类**:ActionContext是Struts...
请求首先到达的是Struts2的过滤器Dispatcher,它通常是web应用部署描述符(web.xml)中的一个Filter。过滤器Dispatcher负责拦截所有请求,检查是否属于Struts2的请求。 3. **ActionContext初始化**: 在请求被...
### STRUTS2中获取Session和Request的方法 在STRUTS2框架中,有多种方式可以访问`session`和`request`对象。下面我们将详细介绍其中的两种主要方法:实现接口法和使用ActionContext。 #### 实现接口法 STRUTS2...
- **原理**:Struts2 的拦截器会在 Action 执行完成后,调用 getter 方法并将结果存储到适当的范围对象中。 **3.4 请求转发与重定向** - **转发**:Action 的 execute 方法返回一个字符串,根据这个字符串找到对应...
在Struts2中,标签库是其核心特性之一,它提供了一系列预定义的JSP标签,用于简化视图层的编码,提高代码的可读性和可维护性。下面我们将详细探讨Struts2标签的使用方法以及EL(Expression Language)表达式。 1. *...
如果一个动作类实现了 ServletResponseAware 接口,Struts2 在调用 execute 方法之前,就会先调用 setServletResponse 方法,并将 response 参数传入这个方法。 方法 2:使用 RequestAware 拦截器 这种方法和第 1 ...
ConfigurationProvider 是 Struts2 中配置文件的解析器,Struts2 中的配置文件主要是 XmlConfigurationProvider 及其子类 StrutsXmlConfigurationProvider 来解析。ConfigurationProvider 负责解析配置文件,并将...
在Struts框架中,请求(Request)扮演着至关重要的角色,因为它承载了客户端的所有请求信息。本篇文章将深入探讨“Struts的request包装替换的思想”,以及如何通过自定义Filter来实现这一过程。 在标准的Struts框架...
14. **对象比较与equals方法**:在Struts2中,比较两个对象是否相等通常通过调用`equals`方法来实现。正确重写`equals`方法对于保证业务逻辑的正确性至关重要。 通过以上对Struts2基本配置与关键概念的深入解析,...
在Struts2中,Request与Response的处理通过.struts2-struts2-2.3.34.jar中的DispatcherServlet完成。DispatcherServlet作为前端控制器,接收HTTP请求,解析请求参数,调用对应的Action,然后根据Action的返回值决定...
Struts2 的主要特点是使用 FilterDispatcher 作为核心控制器,将请求分发到相应的 Action 中。下面是 Struts2 面试题中涉及到的知识点: 1. Struts1 和 Struts2 的区别: Struts1 和 Struts2 是两个不同的框架,...
3. **Action上下文(Action Context)**:`org.apache.struts2.dispatcher`包下的`ActionContext`类存储了请求处理过程中的上下文信息,如值栈(Value Stack)、session、request、response等。 4. **值栈(Value ...
ActionContext是Struts2框架中一个关键的组件,它提供了当前请求上下文的信息,而OGNL(Object-Graph Navigation Language)则是Struts2中的表达式语言,用于在模型和视图之间进行数据传递。下面将详细探讨这两个...
OGNL(Object-Graph Navigation Language)是Struts2框架中的一个重要组件,用于在Web应用中访问和操作Java对象的属性,调用其方法,以及执行类型转换等操作。 OGNL是对象图导航语言的缩写,它是一种功能强大的...
在Struts2中,Servlet的配置和使用方式与标准Servlet容器中的配置有所不同,主要是为了更好地整合框架的功能。以下是关于Struts2中Servlet配置的相关知识点: 1. **实现ServletResponseAware/ServletRequestAware...
另外,按照惯例,在Struts1.x中只有“execute”方法能调用Action, 但在Struts2中并非必要,任何声明为public String methodName() 方法,都能通过配置来调用Action。 最后,和Struts1.x最大的革命性的不同是,...
- **Action类**:在Struts2中,Action类是处理用户请求的中心组件,它封装了业务逻辑,并通过调用Service层来处理实际的业务操作。 - **配置文件**:`struts.xml`是Struts2的主要配置文件,用于定义Action、结果...