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中访问Servlet API。 首先,理解Struts2的执行流程至关重要。当一个请求到达服务器时,Struts2的过滤器(通常名为`FilterDispatcher`或`StrutsPrepareAndExecuteFilter`)会捕获这个...
在"Struts2 part 3:在Action中使用ServletAPI"这一主题中,我们将深入探讨如何在Struts2的动作类(Action)中集成和利用Servlet API来增强应用的功能。 Servlet API是Java Servlet规范的一部分,它提供了一系列...
在这个“Struts2之Servlet API及单元测试初识案例struts005”中,我们将探讨Struts2如何与Servlet API结合使用,以及如何进行单元测试。 Servlet API是Java EE平台的核心部分,用于构建动态Web应用程序。Struts2...
在本教程和API文档中,我们将深入理解Struts2的核心概念、功能以及与之相关的Servlet API。 首先,"MAX的struts2教程"提供了全面的Struts2学习指南,帮助初学者快速上手。这个教程可能涵盖以下内容: 1. **基础...
Struts2 访问 Servlet API 方法总结 Struts2 框架提供了多种方式来访问 Servlet API,包括使用 ActionContext 类、实现接口和使用 ServletActionContext 类等。在本文中,我们将详细介绍 Struts2 访问 Servlet API ...
在“Struts2直接访问Servlet API(二十五)”这个主题中,我们可能探讨的是如何在Struts2框架下直接利用Servlet API来实现某些特定功能或者优化性能。Servlet API是Java Web开发的基础,它提供了处理HTTP请求和响应...
在Struts2框架中,直接和间接访问Servlet API以及动态方法调用是两个关键概念,它们对理解和优化应用性能至关重要。 首先,让我们深入理解直接访问Servlet API。在传统的MVC模式中,Servlet扮演着控制器的角色,...
- **Struts2**: Struts2的Action不直接依赖于Servlet API。Action内部并不直接操作`HttpServletRequest`或`HttpServletResponse`。取而代之的是,通过配置将这些对象注入Action中,或者通过拦截器来处理。 #### ...
这些jar包可能包括Struts2的核心库、额外的插件库以及其他依赖库,如Servlet API、Commons Logging等。 通过阅读Struts2.3.4 API文档,开发者可以了解到每个类、接口、方法的详细说明,包括参数类型、返回值、异常...
MVC(Model-View-Controller)框架如Spring MVC、Struts等,虽然提供了更高级别的抽象,但底层仍然基于Servlet API处理请求和响应。 综上所述,Servlet API是构建Java Web应用的基础,提供了处理HTTP请求的核心...
在本主题"Servlet简单模拟Struts2"中,我们将探讨如何利用Servlet来实现类似Struts2框架的一些关键功能,包括请求拦截、XML配置解析、动态代理以及日志拦截。 首先,让我们了解一下Struts2框架的核心特性。Struts2...
- **Struts1**:由于Action与Servlet API紧密耦合,测试较为困难,需要使用如Struts TestCase的第三方工具。 - **Struts2**:Action可以通过依赖注入进行测试,使得测试更加容易和独立。 5. **输入捕获**: - **...
综上所述,Struts2提供了多种方式来与Servlet API交互,同时通过适当的过滤器配置,可以确保在Struts2框架下,直接编写的Servlet也能正常工作。理解和掌握这些配置技巧对于开发和维护Struts2应用至关重要。
本案例聚焦于使用Struts2和Servlet两种不同的技术来实现这一功能。这两个技术都是Java Servlet的重要扩展,用于增强Web应用程序的功能和用户体验。 首先,让我们深入理解Struts2框架。Struts2是一个基于MVC(Model-...
- **Struts1**: Struts1的Action类依赖于servlet API,这意味着在执行Action方法时,必须传递`HttpServletRequest`和`HttpServletResponse`参数。这种方式增加了测试的难度,因为测试过程中往往需要模拟这些servlet ...
这个压缩包“strut2 servletapi”显然包含了使用Struts2框架访问Servlet API的示例代码。Servlet API是Java Servlet规范的一部分,提供了一系列接口和类,允许开发者处理HTTP请求、响应以及与Web服务器交互。 在...
- **Struts2**: Struts2的Action设计更为灵活,它不直接依赖于Servlet API。Struts2使用拦截器机制来处理HTTP请求,因此Action只需要关注业务逻辑部分。这也使得Struts2的Action更易于测试和维护。 #### 三、表单...
- **Struts 2**:通过松耦合的设计,Action不再直接依赖于Servlet API。这不仅简化了Action的编写,也使得Action可以在没有Web容器的情况下独立测试,提高了测试效率和便利性。 #### 4. 可测性方面的对比 - **...