《Struts入门.ppt》由会员分享,可在线阅读,更多相关《Struts入门.ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Struts入门课程简介课程简介nStruts课程n完成一个使用Struts的项目nJSF课程nSpring课程n完成一个JSF+Spring的项目nHibernate课程n完成一个Struts/JSF+Spring+Hibernate的项目关于关于Struts的课程体系的课程体系nMVC与Struts框架简介n开发视图n扩展控制器n开发模型n配置Struts应用nStruts验证与异常处理机制nStruts应用的国际化nStruts客户化标签的使用本次课程本次课程n理解MVC架构n理解Struts架构理解理解MVCn关于MVCMVC是Model-view-Controller的简称,即:模型
2、-视图-控制器模型.它是一种设计模式.nMVC是一种设计模式,它将应用程序划分为三个部分,即模型-视图-控制器,每个部分各自处理自己的程序.MVC结构图结构图视图视图n视图是用户所见并与之交互的界面向用户显示相关的数据接收用户的输入不进行实际的业务处理视图可查询模型的状态,但是不能改变模型视图可接收模型状态更新的通知,从而对用户的界面进行更新.模型模型n模型是应用程序的主体部分,表示业务数据和业务逻辑.n一个模型可以为多个视图提供数据.n由于应用程序的模型只需要写一次就可以被多个应用视图使用,应此可提高代码的可重用性.控制器控制器n控制器用于接收用户的请求,并调用模型和视图去完成用户的需求.n
3、当通过浏览器提交WEB表单时,控制器本身不做任何的输出和处理.n控制器接受请求,并决定采用那一个模型去处理请求,然后决定调用那个视图显示模型处理返回的数据.MVC处理过程处理过程n首先控制器接收到请求,并决定调用那个模型来进行处理.n然后模型根据用户请求的数据执行相应的业务逻辑处理,并返回执行的结果.n最后控制器调用相应的视图格式化输出返回的数据,并呈现给用户.MVC的优点的优点n一个模型可以被多个视图使用,大大的提高了代码的可重用性.n由于MVC的三个模块相互独立,修改其中的一个模块对其它的模块影响很少,应此使用此种方法可以构建松藕合的软件构件.n控制器可提高应用程序的灵活性和可配置性.通过
4、控制器可以将多个模型和视图连接起来去完成一个特定的用户请求.MVC的适应范围的适应范围n由于MVC的内部结构复杂,使用MVC设计模式会带来额外的工作量,因此在使用之前你需要准确的衡量你的系统.MVC系统不适合小型的应用开发.n对于存在大量的应用界面,并且业务逻辑复杂的应用系统,MVC结构将使你的系统在健壮性,可重用性和结构上上一个新的台阶.尽管在项目的初期需要花废一定的时间,但是从长远的角度看还是值得的.JavaWeb应用结构的发展应用结构的发展n阶段一:JSP是一个独立的,自主完成所有任务的模块.n阶段二:JSPModel1 JSP+JavaBeann阶段三:JSPModel2 JSP+Se
5、rvlet+JavaBeanJSP是一个独立的,自主完成所有任务的模块.n在一些早期的JavaWeb应用中,JSP文件同时负责生成网页,控制到下一个网页的流转,以及负责业务逻辑,这给Web开发带了一系开的问题业务逻辑与JSP代码偶合在一起,设计者既是页面设计者又是JAVA应用开发者.可读性差调试困难不利于维护,更改业务逻辑或数据可以牵涉到相关的更多的网页的更改.JSP是一个独立的,自主完成所有任务的模块Web浏览器JSPDB请求响应获取数据设置数据JSPModel1 JSP+JavaBeanJSPModel2 JSP+Servlet+JavaBeanJSPModel2nJSP负责生成动态网页n
6、Servlet处理流程控制nJavaBean处理业务逻辑处理Struts概述nStruts实际上是在JSPModel2上实现的一个MVC的框架。n模型:如JavaBean EJB n控制器:ActionServlet Actionn视图:JSP Struts客户化标签Struts概述Struts框架APIn前端控制器:ActionServletn控制器:Actionn模型:ActionFormBeann控制器与模型之间的映射:ActionMappingn转发:ActionForwardn错误与信息处理:ActionErrorActionForm BeannActionForm Bean它也是一
7、种JavaBean,除了一些JavaBean的常规方法,另外它还包含一些特殊的方法用于验证其中数据的完整性。nStruts利用ActionFormBean来进行View组件与Controller组件之间表单数据的传递。nStruts框架把View组件接受的用户输入的表单数据保存在ActionForm bean之中,把它传递给Controller组件,Controller组件可以对ActionForm Bean中的数据进行修改。nJsp文件使用Struts标签读取修改后的ActionForm Bean的信息,重新设置HTML表单。ActionForm BeanStruts框架的初始化流程n对于采
8、用Struts的Web应用,在Web应用启动时会加载并初始化控制器ActionServlet。nActionServlet从struts-config.xml配置文件中读取配置信息,再把它们存放到ActionMappings对象中。Struts框架响应客户请求的工作流程ActionServletActionBusinessLogic用户请求查找ActionMapping建立AtionMapping建立ActionForm验证数据执行返回ActionForward处理ActionForward是否还有其它的ActionMapping返回Response返回错误执行业务逻辑没找到验证失败Strut
9、s框架响应客户请求的工作流程ActionServlet在接收到用户请求时会检查对应的ActionMapping的实例是否存在,如果不存在则会创建一个ActionMapping的实例,其中包含了把请求转发至那个Action的信息。ActionServlet会根据配置文件检查Action对应的ActionForm的实例,如果ActionForm的实例不存在,则会创建一个ActionForm的对象,并将客户提交的表单数据保存到ActionForm中。ActionServlet在获取或建立ActionForm后,会根据配置是否需要验证来执行ActionForm的validate()方法进行验证。如果A
10、ctionForm的validate方法返回一个null或一个不包含ActionMessage的ActionErrors对象,就表示表单验证成功。ActionServlet根据配置来确定将请求转发给那个Action,如果相应的Action实例不存在,就会先创建这个实例,然后调用它的execute方法。Action的execute方法将返回一个ActionForward对象,ActionServlet再将请求转发给ActionForward中指向的JSP组件。然后ActionForward中指向的JSP组件生成动态网页返回给用户。Struts框架响应客户请求的工作流程注:在执行ActionForm的validate方法进行数据验证时,如果验证失败(即:返回不为空,为一个ActionError或ActionErrors对象时),此时ActionServlet会直接将请求转发给包客户提交表单的JSP组件。这种情况下,将不再创建Action对象并调用它的execute方法。Struts应用Hello例程系统根据用户输入的姓名显示,“欢迎:XX登录。”的信息。系统将拒绝:testuser的用户登录系统。