`
萝__卜
  • 浏览: 5175 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Struts2 Servlet解耦

阅读更多
struts2对应封装
HttpServletRequest-------->RequestMap
HttpServletSession-------->SessionMap
ServletContext-------->ApplicationMap


ActionContext与Servlet api的解耦

在com.opensymphony.xwork2.ActionContext类中存在一个Map对象的context 类

首先通过ActionContext类的静态方法getContext()方法获得当前相关的一个ActionContext实例

public Object get(Object key)方法,就相当于HttpServletRequest.getAttribute()
public void put(Object key, Object value)对应HttpServletRequest.setAttribute()

public Map<String, Object> getParameters()对应HttpServletRequest.getParameterMap()
public Map<String, Object> getSession()方法对应javax.servlet.http.HttpSession
session.put(Object key, Object value)对应Servlet编程中的HttpSession.setAttribute(…)

也就是说,ActionContext能够获得三个Map类型的Request, Session, Application对象
ActionContext有一个好处,就是它已经将底层的Servlet进行了转化,比如它将session转化成Map

所以在struts中用session,request,Application完全可以创建一个map对象的

有好的放方法,望诸位大神给出意见,我好学习一下,我只是个小菜鸟。单纯看法
1
0
分享到:
评论

相关推荐

    Servlet解耦

    ### Servlet解耦知识点详解 #### 一、Servlet与Struts框架的结合 在Java Web开发中,Servlet作为标准的Web组件被广泛应用于处理HTTP请求。然而随着应用复杂度的提高,传统的Servlet处理逻辑逐渐难以满足需求,这时...

    简单学生成绩管理系统(struts+servlet+MySQL).zip

    Struts通过解耦业务逻辑、视图和控制逻辑,提高了代码的可维护性和可扩展性。在本系统中,Struts负责处理HTTP请求,调用相应的Action类,执行业务逻辑,并将结果传递给视图进行展示。 二、Servlet技术 Servlet是...

    jsp servlet struts hibernate spring

    2. **Servlet** - **生命周期**:Servlet的生命周期包括加载、初始化(jspInit)、服务(jspService)和销毁(jspDestroy)四个阶段。jspInit只在Servlet实例化时执行一次,jspService处理每个请求,jspDestroy在...

    struts2 lib包

    7. **Servlet API**: 由于Struts2基于Servlet,所以会依赖`javax.servlet`和`javax.servlet.http`包,以处理HTTP请求和响应。 8. **Logging**: Struts2框架内部使用了日志框架,如Log4j或SLF4J,用于记录应用程序的...

    15年9月传智播客视频struts2

    - **内置拦截器**:Struts2提供了一系列内置拦截器,如`params`(参数填充)、`token`(防止重复提交)、`servletConfig`(获取Servlet配置信息)等。 - **自定义拦截器**:可以通过实现`Interceptor`接口或继承`...

    struts1和struts2的区别

    而Struts2的Action与容器解耦,尽管仍能访问请求和响应,但通过其他机制减少了对Servlet API的直接依赖,增强了可测试性。 测试方面,Struts1的Action由于execute方法直接暴露了Servlet API,测试通常需要依赖容器...

    Struts1和Struts2区别

    - **Struts1**:基于Front Controller模式,只有一个Servlet(ActionServlet)处理所有请求。它使用Plug-In和Dispatcher机制来实现业务逻辑和视图的解耦。 - **Struts2**:继承了Struts1的Front Controller模式,...

    Struts2的由来

    在Struts2框架中,开发者可以利用拦截器链来处理请求,这允许自定义行为并解耦业务逻辑。此外,Struts2还引入了强大的OGNL(Object-Graph Navigation Language)表达式语言,用于数据绑定和动态方法调用,提高了开发...

    struts2课程笔记

    这一过程实现了与Servlet API的解耦,使得我们无需在web.xml中为每个URL配置单独的Servlet,而是通过配置Action和Result来管理请求和响应。 Struts2还支持多种结果类型,比如Redirect、RedirectAction、Stream等,...

    struts2 开发jar包汇总

    7. **依赖的Servlet容器库**:由于Struts2是基于Servlet API的,因此还需要如`servlet-api.jar`、`jsp-api.jar`等Servlet和JSP相关的API库。 这些jar包共同协作,构建了一个完整的Struts2开发环境。开发者在实际...

    STRUTS2优缺点

    - **与 Servlet 生命周期解耦:**STRUTS2 的 Action 不再依赖于具体的 Servlet API,这使得 STRUTS2 更加独立且易于测试。 **3. 测试友好:** - **单元测试支持更好:**STRUTS2 的 Action 可以脱离 Servlet 容器...

    struts2框架详解

    Struts2旨在简化Web应用开发,通过将表现层与业务逻辑层解耦,提高了代码的可维护性和可测试性。 1. **核心概念** - **Action**: Struts2的核心组件,负责处理用户请求,执行业务逻辑,并返回结果。每个Action对应...

    Struts1与Struts2本质区别

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

    struts1&struts2

    - **Struts2** 解耦了Action与Servlet容器,提供了更简单的测试支持,Action可以通过模拟对象独立测试,而不需要实际的HttpServletRequest和HttpServletResponse。 6. **测试能力** - **Struts1.x** 的测试通常...

    完美版(适合自学)struts2

    在Struts2中,基于拦截器的机制被用来处理用户请求,这种设计使得业务逻辑控制器与Servlet API完全解耦,提高了灵活性和可扩展性。 在开始学习Struts2之前,你需要准备以下内容: 1. 下载Struts2的发布包,例如...

    Struts2和Struts1的什么区别

    在探讨Struts2与Struts1的区别时,我们需深入理解这两个框架的设计理念、架构模式以及它们在实际应用中的表现差异。以下将从多个角度详细分析这两种流行Java Web框架的不同之处。 ### 1. **Action类的区别** #### ...

Global site tag (gtag.js) - Google Analytics