`
longzijian
  • 浏览: 39371 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Struts2学习笔记(8)--Struts2和Servlet 耦合

阅读更多

 

=============================
   Struts2 和 Servlet 耦合
=============================

首选 ActionConext 其次 ServletActionContext 最后是实现接口

-- 1 --
 ### ActionContext ###  --- 不能获得response对象

static ActionContext getContext()   获得当前线程的向下文
                           
                                    相当于
Object get(Object key)               ---- getAttribute()

void put( Object key, Object value ) ---- setAttribute()

Map getParameter()    相当于Servlet中的getParameterMap()

Map getApplication()   对应于ServletContext


如:

action
ActionContext.getContext().put("zhangsan","hello");

jsp
张三:${ requestScope.zhangsan }

 

-- 2 --
通过接口使用 --- 典型的依赖注入

### ServletContextAware ### 接口

void setServletContext( ServletContext )

### ServletRequestAware ### 接口

void setServletRequest( HttpServletRequest )

### ServletResponseAware ### 接口

void setServletResponse( HttpServletResponse )


例:
public class LoginAction extends ActionSupport
 implements ServletRequestAware,
  ServletResponseAware {

 private String username;
 private String password;
 //setter...getter...

 private HttpServletRequest request;
 private HttpServletResponse response;

 public String execute() throws Exception {

  //使用request对象 
  request.setAttribute("zhangshan","hello");

  //使用response对象
  Cookie cookie = new Cookie("username",
      this.getUsername());
  cookie.setMaxAge(1000);
  response.addCookie(cookie);

  return "success";
 }

 //这个方法由Strust2框架来自动调用
 //调用后,便可以使用容器的request对象了
 public void setServletRequest(HttpServletRequest request) {

  this.request = request;
 }

 public void setServletResponse(HttpServletResponse responset) {

  this.response = response;
 }
}


---------------------
jsp页面中显示cookie

 cookie: ${ cookie.username.value }

--------------------


-- 3 --

使用 org.apache.struts2.ServletActionContext
---继承于 com.opensymphony.xwork2.ActionContext

内部全部为static的方法

static ActionContext getActionContext(HttpServletRequest req)

static PageContext getPageContext() 

static HttpServletRequest getRequest()
 
static HttpServletResponse getResponse() 

static ServletContext getServletContext() 

static ValueStack getValueStack(HttpServletRequest req) 

-----

static void setRequest(HttpServletRequest request)

static void setResponse(HttpServletResponse response)

static void setServletContext(ServletContext servletContext)

 

例:
public class LoginAction extends ActionSupport {

 private String username;
 private String password;
 //setter...getter...

 

 public String execute() throws Exception {

  HttpServletResponse response = ServletActionContext.getResponse();
  HttpServletRequest request = ServletActionContext.getRequest();
  HttpSession session = request.getSession();

  return "success";
 }
}

分享到:
评论

相关推荐

    struts2综合笔记

    而 Struts2 与 Servlet API 的耦合度较低,提供了更多的灵活性。 - **发展历程**: Struts2 是在 WebWork 框架的基础上发展起来的,因此学习 Struts2 实际上也是学习 WebWork。 #### 二、Struts2 的核心组件分析 **...

    Struts2学习笔记

    以上内容是Struts2学习笔记的概述,涵盖了Struts2的基础概念、发展历程、使用方法以及核心组件OGNL的介绍。深入学习Struts2将有助于提升Java Web开发能力,更好地理解和构建MVC架构的应用程序。

    struts2学习笔记

    ### Struts2学习笔记知识点详解 #### 一、Struts2框架概览 **起源与发展:** Struts2是WebWork框架的后续版本,融合了Struts1和WebWork的优点,形成了一种更为先进和灵活的MVC框架。相较于Struts1,Struts2在设计...

    Struts2.1学习笔记

    ### Struts2.1学习笔记 #### Struts2的来源与优点 - **来源**:Struts2是在WebWork2的基础上发展起来的,它继承了WebWork2的优点,并且进行了改进,使其更适合现代Web应用程序的需求。与Struts1相比,Struts2的...

    Struts2 - 学习笔记

    1. **无侵入式设计**:与Struts1不同,Struts2没有紧密地耦合到Servlet API和Struts API。这意味着开发者可以不依赖这些API来构建应用,提供了更好的灵活性和可维护性。 2. **拦截器机制**:Struts2引入了拦截器,...

    struts项目学习笔记

    Struts2 是一个非常优秀的MVC框架,基于Model2 设计模型 由传统Struts1和WebWork两个经典框架发展而来 Struts2框架=Struts2+XWork Strust2 核心功能 允许POJO(Plain Old Java Objects,简单javabean对象,没有继承,...

    java学习笔记--初级

    在 Java 学习的初级阶段,了解和掌握基础的 Web 开发框架是非常重要的。Struts 是一款经典的 MVC(Model-View-Controller)框架,适用于构建企业级的 Web 应用程序。本文将围绕 Struts 和 MVC 模式展开,帮助初学者...

    Java相关课程系列笔记之十三Struts2学习笔记.doc

    在本篇笔记中,我们将深入探讨Struts2的核心概念和使用方法。 **一、Struts2概述** 1.1 为什么要用Struts? 在传统的JSP开发中,模型与视图、控制器的职责混杂,导致代码维护困难。Struts2作为MVC框架,将业务逻辑...

    struts2笔记

    Struts2 是一款流行的Java开源框架,它基于Model-View-Controller (MVC)设计模式,专注于请求分发和控制层的功能,有助于...对于初学者来说,学习Struts2的笔记可以帮助快速理解和掌握这个框架的基本概念和使用方法。

    MLDN_J2EE框架_笔记--精华---(包括jsp struts hibernate spring).rar

    《MLDN_J2EE框架_笔记--精华---(包括jsp struts hibernate spring)》这份压缩包文件聚焦于Java企业级开发中的核心技术,涵盖了JSP、Struts、Hibernate和Spring四大框架,它们是构建现代J2EE应用的基础。以下是这些...

    全面struts2笔记

    Struts2 是 Apache 组织开发的一个开源的 MVC 框架,它是 Struts1 的升级版,结合了 Webwork 的优点,提供了更加灵活和强大的功能。...通过深入学习和理解Struts2,开发者能够更好地构建高效、可维护的Web应用。

    Struts 1.3.8 学习笔记(五)

    这个版本的学习笔记涵盖了 Struts 框架的关键概念和技术,旨在帮助开发者深入理解其工作原理和最佳实践。 在 Struts 1.3.8 中,最重要的知识点包括: 1. **MVC 模式**:Struts 是 Model-View-Controller (MVC) ...

Global site tag (gtag.js) - Google Analytics