SSH培训教程(共189张).pptx
《SSH培训教程(共189张).pptx》由会员分享,可在线阅读,更多相关《SSH培训教程(共189张).pptx(189页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、20222022年年5 5月月新员工培训THUNISOFTStruts+Hibernate+Spring新员工培训课程总体目标 我们的目标是:能够熟练运用当前流行的java开源框架:Struts、Hibernate以及Spring来构建灵活、易于扩展的多层Web应用程序。THUNISOFTStruts+Hibernate+Spring新员工培训多层架构概述 C/S:以数据库为中心 B/S:多层架构才是真正的目的 B/S多层架构将显示、业务运算、数据库等功能完全分离,杜绝彼此的耦合与影响,从而实现松耦合和良好的可维护性。 呈现层(UI Layer/Presentation Layer) stru
2、ts 业务逻辑层(Business Layer) spring 持久化层(Persistence Layer) hibernate20222022年年5 5月月开源MVC框架THUNISOFTStruts+Hibernate+Spring新员工培训Struts课程目标 深入理解MVC模式 掌握Struts体系架构 掌握Struts开发流程 熟练掌握Struts的配置方法THUNISOFTStruts+Hibernate+Spring新员工培训回顾Servlet 在web.xml中如何配置? Servlet如何和页面对应起来? 我们自己写的Servlet需要从哪个类继承?THUNISOFTStr
3、uts+Hibernate+Spring新员工培训Struts是什么?Struts的目标是提供一个开发Web应用的开源框架。Struts鼓励基于M2模式(即MVC设计模式)来开发程序。注意:Struts只是MVC的一种实现方式,不使用Struts也可以使用/实现MVC。因为MVC是一种模式,而Struts则是一种实现。ModelViewControllerTHUNISOFTStruts+Hibernate+Spring新员工培训Model1与Model2设计模式简介 以JSP为中心的开发模型,称为Model1(JSP+JAVABEAN) 业务逻辑与表示逻辑混和,不利维护与重用 HTML中嵌入了
4、大量的JAVA代码 验证、流程控制、更新程序的状态全部在JSP中完成 基于MVC模式的框架 MVC将问题进行分解 模型包含应用程序的核心功能。模型封装了应用程序的状态。它对视图或控制器一无所知。 视图提供模型的表示。它是应用程序的 外观。视图可以访问模型的读方法,但不能访问写方法。此外,它对控制器一无所知。 控制器对用户的输入作出反应。它创建并设置模型。 THUNISOFTStruts+Hibernate+Spring新员工培训Model2THUNISOFTStruts+Hibernate+Spring新员工培训Struts框架概览THUNISOFTStruts+Hibernate+Sprin
5、g新员工培训Struts框架概览 浏览器 web容器将对来自HTTP的每个请求创建一个request对象,并用一个response对象作出响应 控制器 控制器接收来自浏览器的请求,在struts中,是由一个servlet来充当控制器的角色,struts-config.xml文件配置控制器 模型 在struts中,由Action类充当业务逻辑的包装器,ActionForm是程序的状态 视图 JSP文件THUNISOFTStruts+Hibernate+Spring新员工培训Struts框架组件ActionServlet类控制导航流ActionServlet根据URI来决定哪个Action类被用于
6、处理请求,Action可以校验输入,并访问业务层以便从数据库检索信息Action需要知道页面提交了哪些内容,所以由ActionServlet根据请求URI来决定将请求参数绑定到哪个ActionForm中,并传入ActionAction在完成业务逻辑后,返回一个ActionForward对象,ActionServlet根据ActionForward对象中的路径来调用页面完成响应Struts将这些信息绑定在一个ActionMapping对象中,一个ActionMapping对应一个请求URI,当请求路径到达的时候,ActionServlet就会查询ActionMapping对象,ActionMap
7、ping对象将告诉ActionServlet哪个Action类会被调用、哪个ActionForm类被用于传递页面数据以及哪些ActionForward将被用于转向有关Action、ActionForm、ActionForward等信息,Struts通过一个配置文件:struts-config.xml文件来定义。THUNISOFTStruts+Hibernate+Spring新员工培训Struts1.X 和Struts2.X Struts1.X 与Struts2.X 的差异较大 Struts1.X 应用更加广泛 Struts2.X 实际上是另外一个框架Webwork发展而来的 后续课程将会有对w
8、ebwork/Struts2.X的介绍以及实例操作THUNISOFTStruts+Hibernate+Spring新员工培训快速开始一个Struts项目 第一个项目,实现用户登录操作 用户将看到一个登录页面,要求用户输入用户名以及密码 如果用户名以及密码都是admin,提示登录成功 否则提示登录失败1、用Eclipse创建一个J2EE Web应用项目,如右图所示2、下载并解压Struts项目*从Apache网站下载struts最新版*将压缩包解压到一个目录,此目录为STRUTS_HOME目录3、将STRUTS_HOME/lib目录下的所有.jar文件拷贝到刚创建的web项目的WebConten
9、t/WEB-INF/lib目录下4、配置ActionServlet:修改web项目的web.xml文件,添加如下Servlet映射配置(转下一页)THUNISOFTStruts+Hibernate+Spring新员工培训web.xml 的配置 action org.apache.struts.action.ActionServlet config /WEB-INF/struts-config.xml 2 action *.do THUNISOFTStruts+Hibernate+Spring新员工培训我们将需要创建如下文件 一个ActionForm LoginActionForm.java 一
10、个Action LoginAction.java struts-config.xml文件 三个页面 登录页面 login.jsp 登录成功提示页面 login_success.jsp 登录失败提示页面 login_error.jsp 就这些!没别的了!THUNISOFTStruts+Hibernate+Spring新员工培训创建LoginActionForm.javaActionForm是一个JavaBean,需继承org.apache.struts.action.ActionForm类,它捕获通过HTTP请求传送的参数ActionForm针对每个HTML表单中的字段具有一个对应的属性Acti
11、onServlet匹配请求中的参数和ActionForm中的属性,并调用ActionForm中的setter方法,将参数传入ActionForm我们的login.jsp有username和password两个表单字段(下面将会看到),所以,我们需要定义ActionForm中相应的setter方法:setUsername和setPassword方法ActionForm中的getter/setter方法,可以通过Eclipse集成环境,自动生成ActionForm中的内部属性全部定义为私有的(private),并通过公共(public)的getter/setter方法来访问package com.
12、bjsxt.strutstest;import org.apache.struts.action.ActionForm;public class LoginActionForm extends ActionForm private String username;private String password;/* * return Returns the password. */public String getPassword() return password;/* * param password The password to set. */public void setPasswo
13、rd(String password) this.password = password;/* * return Returns the username. */public String getUsername() return username;/* * param username The username to set. */public void setUsername(String username) this.username = username;THUNISOFTStruts+Hibernate+Spring新员工培训创建LoginAction.javaAction是一个Ja
14、va类,需继承org.apache.struts.action.Action类ActionServlet将会组装ActionForm,并将它传递给ActionAction 通常负责:输入校验调用业务逻辑类执行业务逻辑操作决定返回哪个ActionForward我们的LoginAction做了如下事情,这些是一个Action通常都会做的最典型的事情:将输入的ActionForm强制转换为LoginActionForm从LoginActionForm对象中获取用户名以及密码的数据信息执行用户名及密码的逻辑判断操作(在通常的情况下,要将这些业务逻辑交给专门的类去处理,这里这样做是为了演示的需要)根据业
15、务逻辑执行的结果,决定返回哪个ActionForward,我们在这里使用success这个标识来表示登录成功页面,用error标识来表示登录失败页面public class LoginAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception /将ActionForm强制转换为LoginActionFormLoginAction
16、Form loginForm = (LoginActionForm)form;/从LoginActionForm中提取从页面表单传递过来的参数String username = loginForm.getUsername();String password = loginForm.getPassword();/根据这些参数,执行业务逻辑操作if(admin.equals(username) & admin.equals(password)/如果用户名和密码均为admin,则转向登录成功页面return mapping.findForward(success);else/否则转向登录失败页面re
17、turn mapping.findForward(error);THUNISOFTStruts+Hibernate+Spring新员工培训创建Struts配置文件struts-config.xml 在WebContent/WEB-INF目录下创建struts-config.xml文件 并添加如下内容(空白的struts-config.xml),紧接着,我们将往这个空白的配置文件中添加其它配置信息 struts-config.xml文件,是由ActionServlet读取的配置文件,它定义了所有关于Action、ActionForm、ActionForward等的详细信息THUNISOFTStr
18、uts+Hibernate+Spring新员工培训添加ActionForm配置,配置LoginActionForm 我们在struts-config.xml文件中,在标签的内部,添加如下配置: 标签内部可以包含多个标签 标签必须指定name和type属性 name属性是给此ActionForm一个标识名称 type属性指定了此ActionForm是哪个类,必须是全路径的类名THUNISOFTStruts+Hibernate+Spring新员工培训添加Action配置,配置LoginAction我们在struts-config.xml文件中,紧接着标签的下面,添加对LoginAction的配置标
19、签可以配置的重要属性包括:path-从页面上通过一个什么样的URL路径来访问Action(不包含.do)type 访问这个URL的时候,调用哪个Action类,这是Action的全路径类名name 这个属性用来标识哪个ActionForm将被创建,并将提交的表单组件给它scope FormBean的作用域范围,可以取值为session和request,一般取值都是requestTHUNISOFTStruts+Hibernate+Spring新员工培训创建login.jsp 在WebContent目录下创建login.jsp文件,如右边所示 添加一个表单,action为login.do,这个lo
20、gin.do的意思,将会告诉struts的ActionServlet,它将需要调用哪个Action来处理这个表单的请求 添加输入域username,这个username的表单字段,必须跟LoginActionForm中的属性一致 添加密码输入域password请登录请输入用户名: 请输入密码: THUNISOFTStruts+Hibernate+Spring新员工培训创建login_success.jsp和login_error.jsplogin_success.jsp登录成功欢迎您,您已经成功登录!您创建的第一个Struts应用程序已成功运行!login_error.jsp登录失败您的登录失
21、败了,可能原因是用户名或密码不正确,请返回重新输入 返回登录页面THUNISOFTStruts+Hibernate+Spring新员工培训启动Tomcat并运行login.jsp 运行login.jsp之后,能看到如下所示的登录表单 输入用户名admin和密码admin,将能看到登录成功的界面 输入其它用户名或密码,将能看到登录失败的界面THUNISOFTStruts+Hibernate+Spring新员工培训在这个简单的应用程序背后发生了什么? 当你从浏览器输入地址:http:/localhost:8088/Struts-Test/login.jsp,Tomcat将按通常情况来处理这个JSP
22、并返回浏览器 当你提交表单,实际上是提交到了这样一个URL地址:http:/localhost:8088/Struts-Test/login.do,Tomcat将会根据web.xml的配置,将这个请求发送给相应的Servlet,在我们的应用中,Tomcat将会把这个请求发送给org.apache.struts.action.ActionServlet这个类(请参看web.xml的配置) 然后ActionServlet根据struts-config.xml的配置信息,调用LoginAction对象去处理这个请求,在此之前,它会将页面表单的请求数据封装到LoginActionForm对象中,并传递
23、给LoginAction LoginAction返回一个ActionForward对象,包含了将要转向的路径信息 ActionServlet根据这个ActionForward对象所包含的路径信息,调用相应的页面去执行响应 流程图请参考下一页THUNISOFTStruts+Hibernate+Spring新员工培训LoginAction应用程序的流程图THUNISOFTStruts+Hibernate+Spring新员工培训Struts项目架构图THUNISOFTStruts+Hibernate+Spring新员工培训Struts工作流程图THUNISOFTStruts+Hibernate+Sp
24、ring新员工培训Struts与MVC 视图(View) 在使用Struts框架的web应用程序中,JSP以及相关的技术(如Taglib)等共同组成视图层,这一层的主要职责是显示用户界面。Struts提供了很多机制让我们能更加轻松地创建视图 控制器(Controller) Struts中,ActionServlet是控制器层组件 模型(Model) 模型包括:系统的内部状态以及改变系统状态的动作 Struts中的Action和ActionForm是模型的一部分 Struts建议把”做什么”(Action)和”如何做”(业务逻辑)相分离THUNISOFTStruts+Hibernate+Spri
25、ng新员工培训创建业务逻辑处理类(Model) 使用单例模式(Singleton)来创建业务逻辑处理类 创建UserManager业务逻辑处理类 创建validate方法 创建UserNotFoundException 创建PasswordErrorExceptionpackage com.bjsxt.strutstest;public class UserManager private static UserManager userManager;private UserManager()public static synchronized UserManager getInstance()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SSH 培训 教程 189
限制150内