=============================
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 与 Servlet API 的耦合度较低,提供了更多的灵活性。 - **发展历程**: Struts2 是在 WebWork 框架的基础上发展起来的,因此学习 Struts2 实际上也是学习 WebWork。 #### 二、Struts2 的核心组件分析 **...
以上内容是Struts2学习笔记的概述,涵盖了Struts2的基础概念、发展历程、使用方法以及核心组件OGNL的介绍。深入学习Struts2将有助于提升Java Web开发能力,更好地理解和构建MVC架构的应用程序。
### Struts2学习笔记知识点详解 #### 一、Struts2框架概览 **起源与发展:** Struts2是WebWork框架的后续版本,融合了Struts1和WebWork的优点,形成了一种更为先进和灵活的MVC框架。相较于Struts1,Struts2在设计...
### Struts2.1学习笔记 #### Struts2的来源与优点 - **来源**:Struts2是在WebWork2的基础上发展起来的,它继承了WebWork2的优点,并且进行了改进,使其更适合现代Web应用程序的需求。与Struts1相比,Struts2的...
1. **无侵入式设计**:与Struts1不同,Struts2没有紧密地耦合到Servlet API和Struts API。这意味着开发者可以不依赖这些API来构建应用,提供了更好的灵活性和可维护性。 2. **拦截器机制**:Struts2引入了拦截器,...
Struts2 是一个非常优秀的MVC框架,基于Model2 设计模型 由传统Struts1和WebWork两个经典框架发展而来 Struts2框架=Struts2+XWork Strust2 核心功能 允许POJO(Plain Old Java Objects,简单javabean对象,没有继承,...
在 Java 学习的初级阶段,了解和掌握基础的 Web 开发框架是非常重要的。Struts 是一款经典的 MVC(Model-View-Controller)框架,适用于构建企业级的 Web 应用程序。本文将围绕 Struts 和 MVC 模式展开,帮助初学者...
在本篇笔记中,我们将深入探讨Struts2的核心概念和使用方法。 **一、Struts2概述** 1.1 为什么要用Struts? 在传统的JSP开发中,模型与视图、控制器的职责混杂,导致代码维护困难。Struts2作为MVC框架,将业务逻辑...
Struts2 是一款流行的Java开源框架,它基于Model-View-Controller (MVC)设计模式,专注于请求分发和控制层的功能,有助于...对于初学者来说,学习Struts2的笔记可以帮助快速理解和掌握这个框架的基本概念和使用方法。
《MLDN_J2EE框架_笔记--精华---(包括jsp struts hibernate spring)》这份压缩包文件聚焦于Java企业级开发中的核心技术,涵盖了JSP、Struts、Hibernate和Spring四大框架,它们是构建现代J2EE应用的基础。以下是这些...
Struts2 是 Apache 组织开发的一个开源的 MVC 框架,它是 Struts1 的升级版,结合了 Webwork 的优点,提供了更加灵活和强大的功能。...通过深入学习和理解Struts2,开发者能够更好地构建高效、可维护的Web应用。
这个版本的学习笔记涵盖了 Struts 框架的关键概念和技术,旨在帮助开发者深入理解其工作原理和最佳实践。 在 Struts 1.3.8 中,最重要的知识点包括: 1. **MVC 模式**:Struts 是 Model-View-Controller (MVC) ...