`
forget丶兰
  • 浏览: 1975 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Struts2回忆:struts2获取servlet API

 
阅读更多

Struts2 获取servlet api 有以下几种方式:

1.与servlet 解耦的方式:

1)通过获取ActionContext实例  获取对应的map对象

action代码:

 

               

 

                //获取ActionContext  实例
                ActionContext ac =ServletActionContext.getContext();
                //获取request
		/*Map  request= (Map) ac.get("request");
		request.put("username", username);*/
		
		//获取session
	   /* Map session=ac.getSession();
	    session.put("username", username);*/
		
		//获取application
	     Map application= ac.getApplication();
		 application.put("username", username);

 表單:

 

  <h4>欢迎${requestScope.username}来到xxxx系统</h4>
   
  <h4>欢迎${sessionScope.username}来到xxxx系统</h4>
  
  <h4>欢迎${applicationScope.username}来到xxxx系统</h4>

 2.实现aware接口   由action实例注入对应的map对象

 

代码:

 

public class TestAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{
	private Map<String, Object> application;
	public void setApplication(Map<String, Object> application) {
		this.application=application;
	}
	private  Map<String, Object> session;
	public void setSession(Map<String, Object> session) {
		this.session=session;
	}
	private Map<String, Object> request;
	public void setRequest(Map<String, Object> request) {
		this.request=request;
	}

 回显代码 略

2.与servlet 耦合的方式

1.ServletActionContext 对象获取httprequest 和servletcontext

 

		//耦合
		//获取request
		HttpServletRequest request =ServletActionContext.getRequest();
		
		//获取session
		HttpSession session =request.getSession();
		
		//获取 servlet 的上下文
		ServletContext context = ServletActionContext.getServletContext();
		/* 获取web容器初始化参数 (应用:strus2 自定义类型转换器需要用到的)
		 * context.getInitParameter("");
		 * 获取application真实路径 (应用:struts2文件上传必须要用到的)
		 * context.getRealPath("");
		 */

 2)通过实现 ServletRequestAware 接口 和 ServletContextAware接口

   由action实例注入对应的 httprequest 和servletcontext

 

    implements ServletContextAware ,ServletRequestAware
    private HttpServletRequest request;
	public void setServletRequest(HttpServletRequest request) {
		// TODO Auto-generated method stub
		this.request=request;
	}
	
	private ServletContext context;
	public void setServletContext(ServletContext context) {
		// TODO Auto-generated method stub
		this.context=context;
	}

 

 

 

 

分享到:
评论

相关推荐

    Struts2访问ServletAPI

    本文将深入探讨如何在Struts2中访问Servlet API。 首先,理解Struts2的执行流程至关重要。当一个请求到达服务器时,Struts2的过滤器(通常名为`FilterDispatcher`或`StrutsPrepareAndExecuteFilter`)会捕获这个...

    Struts2 part 3:在Action中使用ServletAPI

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

    Struts2之Servlet API及单元测试初识案例struts005

    在这个“Struts2之Servlet API及单元测试初识案例struts005”中,我们将探讨Struts2如何与Servlet API结合使用,以及如何进行单元测试。 Servlet API是Java EE平台的核心部分,用于构建动态Web应用程序。Struts2...

    MAX的struts2教程、struts2 API、servlet API

    在本教程和API文档中,我们将深入理解Struts2的核心概念、功能以及与之相关的Servlet API。 首先,"MAX的struts2教程"提供了全面的Struts2学习指南,帮助初学者快速上手。这个教程可能涵盖以下内容: 1. **基础...

    struts2之Action访问Servlet API

    Struts2 访问 Servlet API 方法总结 Struts2 框架提供了多种方式来访问 Servlet API,包括使用 ActionContext 类、实现接口和使用 ServletActionContext 类等。在本文中,我们将详细介绍 Struts2 访问 Servlet API ...

    Struts2 直接访问Servlet API(二十五)

    在“Struts2直接访问Servlet API(二十五)”这个主题中,我们可能探讨的是如何在Struts2框架下直接利用Servlet API来实现某些特定功能或者优化性能。Servlet API是Java Web开发的基础,它提供了处理HTTP请求和响应...

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

    在Struts2框架中,直接和间接访问Servlet API以及动态方法调用是两个关键概念,它们对理解和优化应用性能至关重要。 首先,让我们深入理解直接访问Servlet API。在传统的MVC模式中,Servlet扮演着控制器的角色,...

    struts1和struts2的区别

    - **Struts2**: Struts2的Action不直接依赖于Servlet API。Action内部并不直接操作`HttpServletRequest`或`HttpServletResponse`。取而代之的是,通过配置将这些对象注入Action中,或者通过拦截器来处理。 #### ...

    Struts2.3.4 API帮助文档chm格式

    这些jar包可能包括Struts2的核心库、额外的插件库以及其他依赖库,如Servlet API、Commons Logging等。 通过阅读Struts2.3.4 API文档,开发者可以了解到每个类、接口、方法的详细说明,包括参数类型、返回值、异常...

    servlet api servlet api

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

    Servlet简单模拟Struts2

    在本主题"Servlet简单模拟Struts2"中,我们将探讨如何利用Servlet来实现类似Struts2框架的一些关键功能,包括请求拦截、XML配置解析、动态代理以及日志拦截。 首先,让我们了解一下Struts2框架的核心特性。Struts2...

    struts1和struts2区别

    - **Struts1**:由于Action与Servlet API紧密耦合,测试较为困难,需要使用如Struts TestCase的第三方工具。 - **Struts2**:Action可以通过依赖注入进行测试,使得测试更加容易和独立。 5. **输入捕获**: - **...

    Struts2中Servlet的配置

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

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

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

    转:struts1与struts2的区别

    - **Struts1**: Struts1的Action类依赖于servlet API,这意味着在执行Action方法时,必须传递`HttpServletRequest`和`HttpServletResponse`参数。这种方式增加了测试的难度,因为测试过程中往往需要模拟这些servlet ...

    strut2 servletapi

    这个压缩包“strut2 servletapi”显然包含了使用Struts2框架访问Servlet API的示例代码。Servlet API是Java Servlet规范的一部分,提供了一系列接口和类,允许开发者处理HTTP请求、响应以及与Web服务器交互。 在...

    struts1和struts2的区别(详细)

    - **Struts2**: Struts2的Action设计更为灵活,它不直接依赖于Servlet API。Struts2使用拦截器机制来处理HTTP请求,因此Action只需要关注业务逻辑部分。这也使得Struts2的Action更易于测试和维护。 #### 三、表单...

    Struts1与Struts2本质区别

    - **Struts 2**:通过松耦合的设计,Action不再直接依赖于Servlet API。这不仅简化了Action的编写,也使得Action可以在没有Web容器的情况下独立测试,提高了测试效率和便利性。 #### 4. 可测性方面的对比 - **...

Global site tag (gtag.js) - Google Analytics