`

Struts2如何实现与Servlet API的交互

 
阅读更多

1.通过拦截器来实现

需要实现org.apache.struts2.interceptor包下的RequestAware 、sessionAware和applicationAware接口



 

 2.使用ActionContext类

这种方法比较简单,我们可以通过org.apache.struts2.ActionContext类的get方法获得相应的对象。



 3.使用ServletActionContext类

Struts2为我们提供了一种最简单的方法获得HttpServletReqeust及其他对象。这就是 org.apache.struts2.ServletActionContext类。我们可以直接使用ServletActionContext类的方法来获得Servlet对象。这是最简单的一种方法。



 总结:为了避免代码的重复性,可以写一个基本的action父类,用于给其他Action继承,该父类继承ActionSupport实现ApplicationAware、SessionAware,ServletRequestAware, ServletResponseAware 接口,具体代码如下:

import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.interceptor.ApplicationAware;
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 BaseAction extends ActionSupport implements SessionAware,ApplicationAware,
		ServletRequestAware, ServletResponseAware {
	
	 public Map<String, Object>session;
	 public Map<String, Object>application;
	 public HttpServletRequest request;    
	 public  HttpServletResponse response;
	 
	public void setServletResponse(HttpServletResponse response) {
		this.response = response;

	}

	
	public void setServletRequest(HttpServletRequest request) {
		this.request = request;
	}


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


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

}

 其他的Action继承该类,可以直接使用request、response等来操作。

  • 大小: 65.2 KB
  • 大小: 21.9 KB
  • 大小: 54.4 KB
  • 大小: 53.2 KB
分享到:
评论

相关推荐

    Struts2访问ServletAPI

    在Struts2框架中,我们有时需要直接与Servlet API交互,例如处理HTTP请求、响应,或者使用Session、Cookie等。本文将深入探讨如何在Struts2中访问Servlet API。 首先,理解Struts2的执行流程至关重要。当一个请求...

    Struts2中直接和间接访问ServletAPI以及动态方法调用之感叹号

    然而,在Struts2中,我们通常不直接与Servlet API交互,而是通过Action类和Struts拦截器来处理请求。直接访问Servlet API可能涉及使用`HttpServletRequest`、`HttpServletResponse`和`ServletConfig`等对象,这可能...

    Struts2 part 3:在Action中使用ServletAPI

    在"Struts2 part 3:在Action中使用ServletAPI"这一主题中,我们将深入探讨如何在Struts2的动作类(Action)中集成和利用Servlet API来增强应用的功能。 Servlet API是Java Servlet规范的一部分,它提供了一系列...

    strut2 servletapi

    6. **Struts2与Servlet API的结合**:尽管Struts2提供了丰富的功能,但有时候直接使用Servlet API可能是必要的,例如,当需要进行低级的HTTP操作时。在这种情况下,开发者可以在Action类或自定义拦截器中集成Servlet...

    servlet api servlet api

    MVC(Model-View-Controller)框架如Spring MVC、Struts等,虽然提供了更高级别的抽象,但底层仍然基于Servlet API处理请求和响应。 综上所述,Servlet API是构建Java Web应用的基础,提供了处理HTTP请求的核心...

    Struts2中Servlet的配置

    综上所述,Struts2提供了多种方式来与Servlet API交互,同时通过适当的过滤器配置,可以确保在Struts2框架下,直接编写的Servlet也能正常工作。理解和掌握这些配置技巧对于开发和维护Struts2应用至关重要。

    java上传与下载——struts2和servlet案例

    本案例聚焦于使用Struts2和Servlet两种不同的技术来实现这一功能。这两个技术都是Java Servlet的重要扩展,用于增强Web应用程序的功能和用户体验。 首先,让我们深入理解Struts2框架。Struts2是一个基于MVC(Model-...

    详解Struts2中Action访问Servlet API的几种方法

    Struts2的Action并未直接与任何Servlet API耦合,这是Struts2的一个改良之处,因为Action类不再与Servlet API耦合,能更轻松的测试该Action。但如何访问?  Web应用中通常需要访问的Servlet API就是...

    Struts2之Servlet文件上传详解案例struts010

    本案例“Struts2之Servlet文件上传详解”将聚焦于如何使用Struts2框架配合Servlet实现文件上传功能。在Web应用中,文件上传是一个常见的需求,例如用户可能需要上传头像、附件等。 首先,我们来理解文件上传的基本...

    关于struts和servlet同时用

    Struts和Servlet是Java Web开发中的两个重要组件,它们在构建动态、交互式的Web应用程序时起着关键作用。Struts是一种基于MVC(Model-View-Controller)设计模式的开源框架,而Servlet则是Java标准库中用于处理HTTP...

    Struts2.3.4 API帮助文档chm格式

    这些插件使得Struts2能更好地与各种技术集成,如JSON数据交互、模板引擎使用等。 4. **标签库(Tags)**:Struts2提供了一套丰富的JSP标签,简化了视图层的开发。例如s:form、s:textfield、s:submit等,它们对应于...

    Struts1 Struts2 JQuery api

    与Struts1和Struts2结合使用时,JQuery可以用来增强前端的交互性,与服务器端进行异步通信。 **Ajax** Ajax(Asynchronous JavaScript and XML)并非一种单一的技术,而是一种使用现有Web技术(JavaScript、XML、...

    Struts1-1API.rar_Struts1_API_struts 1 api_struts1_struts1 api_st

    通过深入理解Struts1的API,开发者可以更有效地实现业务逻辑,处理用户请求,构建出高效、可维护的Web应用程序。对于初学者,了解每个组件的作用以及它们之间的交互方式至关重要,这有助于提高开发效率和代码质量。...

    struts_2.5_API (CHM格式)

    Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,...

    Struts2和Struts1的区别,详细点,主要说说Struts2

    - **Struts2**的Action类并不直接依赖Servlet API,而是通过中间层(如拦截器)间接与Servlet API交互,这样的设计使得**Struts2**的Action更加独立,也更容易进行单元测试。 #### 请求处理流程 - **Struts1**执行...

    servlet-api.jar

    综上所述,servlet-api.jar对于理解Java Web开发至关重要,它构成了Web应用与服务器之间通信的基础,同时也是许多Web框架如Spring MVC、Struts、JSF等工作的核心。熟悉并掌握Servlet API,能帮助开发者更高效地构建...

    struts2所需的包和Struts2_json所需包

    而Struts2与JSON的集成则进一步增强了其功能,使得数据交换更为简洁,特别是在AJAX和移动应用中。 在标题和描述中提到的"struts2所需的包和Struts2_json所需包",主要是指为了实现Struts2框架与JSON数据交互所需要...

    struts2JAR包

    Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,...

Global site tag (gtag.js) - Google Analytics