课程提纲 口第一部分Java EE基础 口第二部分Java Web:开发 口第三部分JSF框架 口第四部分EJB 口第五部分JPA 口第六部分SSH框架 ◆第15章Struts,入门 Struts? JavaEE技术 1。 品北农林升教大学信息工程学院本科生课程
课程提纲 第一部分 Java EE基础 第二部分 Java Web开发 第三部分 JSF框架 第四部分 EJB 第五部分 JPA 第六部分 SSH框架 ◆第15章 Struts入门 Java EE技术 •1 信息工程学院本科生课程
Java Web:技术的发展阶段 Servlet阶段/JSP阶段: 模型1:JSP+JavaBean: ·SP:负责输入/输出、请求接收与处理及页面流程控制; 。JavaBean:主要负责业务逻辑处理。 模型2:JSP+Servlet+JavaBean: ·SP:主要负责输入/输出; 。Servlet:主要负责请求接收与处理及页面流程控制; ·JavaBean:主要负责业务逻辑处理。 冬框架阶段: 重量级框架:以EJB技术为核心的Java EE(SF+EJB+JPA); ● 轻量级框架:③H Struts+Spring Hibernate) Struts入门 2。 西北农林科教大学信息工程学院本科生课程
Java Web技术的发展阶段 ❖ Servlet阶段 / JSP阶段: ❖ 模型1:JSP + JavaBean: • JSP: 负责输入/输出、请求接收与处理及页面流程控制; • JavaBean: 主要负责业务逻辑处理。 ❖ 模型2:JSP + Servlet + JavaBean: • JSP: 主要负责输入/输出; • Servlet: 主要负责请求接收与处理及页面流程控制; • JavaBean: 主要负责业务逻辑处理。 ❖ 框架阶段: • 重量级框架:以EJB技术为核心的Java EE (JSF+EJB+JPA); • 轻量级框架:SSH (Struts + Spring + Hibernate)。 Struts入门 •2 信息工程学院本科生课程
Java EE分层结构 山■■”■aa■■■■道 Client-Side Server-Side Enterprise Presentation Presentao Business Logic Information ◆ System Browser Web EJB Server Container Pure HTML JSP EJB Java Applet JSP EJB 0 : Struts : Desktop Java JSF Application EJB Java Servlet Other Device J2EE J2EE J2EE Platform Platform Cllent ! 客户端 Web服务器应用服器 EIS Struts入门 3。品北农林升大学信息工程学院本科生课程
•3 信息工程学院本科生课程 Java EE分层结构 Struts入门 Struts JSF
MVC-Struts Controler setXXX() Model execute() Action Service Dao View DB JSP getXXX() Struts.入门 4。 品北农林升教大学信息工程学院本科生课程
❖ MVC (Model - View - Controller) • M(模型):应用状态持久数据及业务逻辑; • V(视图):作为UI收集数据和呈现数据; • C(控制器):分发请求到业务逻辑并返回响应结果。 Struts入门 •4 信息工程学院本科生课程 MVC - Struts
Struts2的发展历史 Struts1(2001年发布): ·是全世界第一个发布的MWC框架。 冬Struts2(2007年初发布): ·并非Struts1的升级版,由NebWork基础上发展起来的, 吸收了Struts1和NebWork两者的优势。 ·一个用来开发MVC应用程序的框架,提供: √页面导航活动的管理, √用户输入数据的合法性验证, Struts 000 √统一的布局, √可扩展性, √国际化和本地化, √支持Ajax等。 Struts Struts入门 5。 西北农林升教大学信息工程学院本科生课程
❖ Struts 1(2001年发布): • 是全世界第一个发布的MVC框架。 ❖ Struts 2(2007年初发布): • 并非Struts 1的升级版,由WebWork基础上发展起来的, 吸收了Struts 1和WebWork两者的优势。 • 一个用来开发MVC应用程序的框架,提供: ✓页面导航活动的管理, ✓用户输入数据的合法性验证, ✓统一的布局, ✓可扩展性, ✓国际化和本地化, ✓支持Ajax等。 Struts 2的发展历史 Struts入门 •5 信息工程学院本科生课程
Struts2框架的特点 与JSP/Servlet技术对比,Struts2框架的特点: ·Mode I层没有区别:包括EJB等; ·Controller层区别最大: √包含过滤器、拦截器和Action(数量最多的业务控制器)三个层次; √拦截器自动拦截请求参数,并封装到Act ionf的属性(属性驱动)或对象 (模型驱动)中; √Action可独立于Web容器=》单元测试; √页面导航在struts.xml中配置,无需硬编码。 。View层: √可包括JSP、FreeMarker、Velocity; √提供了能实现如输入信息回填、校验信息显示等动态功能的强大标签库, 也可使用JSTL其他标签库。 ·其他优点:如可配置的输入校验、便捷的国际化编程等。 Struts.入门 6。 西北农林升教大学信息工程学院本科生课程
❖ 与JSP/Servlet技术对比,Struts 2框架的特点: • Model层没有区别:包括EJB等; • Controller层区别最大: ✓ 包含过滤器、拦截器和Action(数量最多的业务控制器)三个层次; ✓ 拦截器自动拦截请求参数,并封装到Action的属性(属性驱动)或对象 (模型驱动)中; ✓ Action可独立于Web容器 ===》单元测试; ✓页面导航在struts.xml中配置,无需硬编码。 • View层: ✓ 可包括JSP、FreeMarker、Velocity; ✓ 提供了能实现如输入信息回填、校验信息显示等动态功能的强大标签库, 也可使用JSTL其他标签库。 • 其他优点:如可配置的输入校验、便捷的国际化编程等。 Struts 2框架的特点 Struts入门 •6 信息工程学院本科生课程
Apache主页对于Struts2的叙述 http://struts.apache.org/2.x/index.html: Apache Struts 2 is an elegant,extensible framework for creating enterprise-ready Java web applications. The framework is designed to streamline the full development cycle,from building,to deploying,to maintaining applications over time. Apache Struts 2 was originally known as WebWork 2. After working independently for several years,the WebWork and Struts communities joined forces to create Struts2.This new version of Struts is simpler to use and closer to how Struts was always meant to be. Struts入门 ·7。西北农林升技大学信息工程学院本科生课程
❖ http://struts.apache.org/2.x/index.html: • Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applications. The framework is designed to streamline the full development cycle, from building, to deploying, to maintaining applications over time. • Apache Struts 2 was originally known as WebWork 2. After working independently for several years, the WebWork and Struts communities joined forces to create Struts2. This new version of Struts is simpler to use and closer to how Struts was always meant to be. Apache主页对于Struts 2的叙述 Struts入门 •7 信息工程学院本科生课程
Struts2简单实例的运行过程 ”用户提交请求; FilterDispatcher过滤请求,并调用Act i onMapper 以确定是否需调用Action。如需调用,Act ionMapper 通知FilterDispatcher将请求处理交给Act ionProxy; Act ionProxy:通过Configuration Manager解析框架 的配置文件struts.xml,找到需要调用的Action类。 同时,ActionProxy实例化ActionInvocation; ActionInvocation实例调用与Act ion有关的拦截器 以及Action类的execute.方法。Action执行完毕后, Act ionInvocat ion根据struts.xml中配置的action 的相应result,将页面导航到指定URL。 Struts.入门 ·8。西北农林科枝大学信息工程学院本科生课程
❖ 用户提交请求; ❖ FilterDispatcher过滤请求,并调用ActionMapper 以确定是否需调用Action。如需调用,ActionMapper 通知FilterDispatcher将请求处理交给ActionProxy; ❖ ActionProxy通过Configuration Manager解析框架 的配置文件struts.xml,找到需要调用的Action类。 同时,ActionProxy实例化ActionInvocation; ❖ ActionInvocation实例调用与Action有关的拦截器 以及Action类的execute方法。Action执行完毕后, ActionInvocation根据struts.xml中配置的action 的相应result,将页面导航到指定URL。 Struts 2简单实例的运行过程 Struts入门 •8 信息工程学院本科生课程
Struts2工作原理 Struts 2 Architecture HttpServletRequest StrutsPrepareFilter ActionContextCleanUp Other Filters(SiteMesh,etc) StrutsExecuteFilter FilterDispatcher ActionMapper ActionProxy Interceptor 1 合成的: Interceptor 2 过滤器, 不 Action Configuration invocation Interceptor 3 Tag Subsystem Manager HTML,Dojo,Forms,etc Action Result ◆ struts.xml Template Interceptor 3 iSP,FreeMarker,Velocity,etc Interceptor 2 ! Interceptor 1 StrutsPrepareAndExecuteFilter HttpServletResponse Servlet Filters Struts CoreInterceptors (User Created Struts入门 9。 品址农林升教大学信息工程学院本科生课程
Struts入门 •9 信息工程学院本科生课程 Struts 2工作原理 StrutsPrepareFilter StrutsExecuteFilter StrutsPrepareAndExecuteFilter 合成的 过滤器
第一个Struts2应用开发示例 搭建Struts2开发环境: ·下载并导入Struts2所需的JAR文件; ·MyEcI ipse中可通过Add Struts Capabilities?完成。 编写Struts2组件: ·jsp文件 ·Action类等 更改配置: 。web.xml 。struts.xml 冬进行访问测试: ·注意访问URL书写 Struts.入门 ·10。西北农林科教大学信息工程学院本科生课程
❖ 搭建Struts 2开发环境: • 下载并导入Struts 2所需的JAR文件; • MyEclipse中可通过Add Struts Capabilities完成。 ❖ 编写Struts 2组件: • jsp文件 • Action类等 ❖ 更改配置: • web.xml • struts.xml ❖ 进行访问测试: • 注意访问URL书写 第一个Struts 2应用开发示例 Struts入门 •10 信息工程学院本科生课程