《【精品】Struts应用技术精品ppt课件.ppt》由会员分享,可在线阅读,更多相关《【精品】Struts应用技术精品ppt课件.ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Struts应用技术(1 1)Struts Struts 是是 应用最广的应用最广的 Java Web Java Web 开发框架开发框架p20012001年年6 6月,这个框架由月,这个框架由 Craig McClanahan Craig McClanahan 开发完成,现开发完成,现在作为在作为 Apache Apache 软件基金会的一个开源项目软件基金会的一个开源项目pStrutsStruts的推出,极大地简化了的推出,极大地简化了 JSP/JSP/ServletServlet 编程实现编程实现p它不仅简化了编程模型,同时它还是开源的并且有一个它不仅简化了编程模型,同时它还是开源的并且
2、有一个 庞庞大的社区。大的社区。您了解您了解ApacheApache和和SourceforgeSourceforge社社区吗?区吗?1 1、StrutsStruts应用框架应用框架(2 2)Struts WebStruts Web应用框架是什么应用框架是什么p它是开源框架:它是开源框架:Struts Struts 是是 Apache Apache 软件基金会资助的一个软件基金会资助的一个为开发基于为开发基于MVCMVC模式的模式的WebWeb应用而设计的一个开源框架应用而设计的一个开源框架pStrutsStruts框架中的各种框架中的各种WebWeb组件:它是利用组件:它是利用ServletS
3、ervlet、JavaBeanJavaBean和和JSPJSP、定制标签库等定制标签库等WebWeb组件、组件、XMLXML等方面的技术等方面的技术来实现构建来实现构建WebWeb应用应用p它同时也是基于它同时也是基于MVCMVC模式的模式的WebWeb应用最经典的框架。应用最经典的框架。(3 3)StrutsStruts的工作流程的工作流程(4 4)StrutsStruts的的MVCMVC与标准与标准MVCMVC的不同点的不同点p在原有视图在原有视图(HTML/JSP)(HTML/JSP)和和Control(ServletControl(Servlet)之间,添加了之间,添加了一个一个Act
4、ionSerlvetActionSerlvet作为新的作为新的ControlControl,所有其它动作,都要,所有其它动作,都要经过经过ActionServletActionServlet来分发。来分发。p使用一个总控的使用一个总控的ActionServletActionServlet管理所有的行为,由它决定管理所有的行为,由它决定哪个哪个ActionAction被真正调用并处理导航流被真正调用并处理导航流p将将ServletServlet改成了改成了ActionAction,同时,同时ActionAction可以通过配置文件来可以通过配置文件来管理,在一定程度上增加了整体结构的灵活性。管理
5、,在一定程度上增加了整体结构的灵活性。(2 2)Struts MVCStruts MVC框架产生及提出的目的框架产生及提出的目的p为了使开发者在构建基于标准的为了使开发者在构建基于标准的J2EE WebJ2EE Web技术的技术的WebWeb应用时应用时更加容易更加容易-隐藏了繁琐的实现细节。隐藏了繁琐的实现细节。p它提供了一个统一的标准框架,这样让开发者能够更专注于它提供了一个统一的标准框架,这样让开发者能够更专注于系统的商业逻辑的具体实现。系统的商业逻辑的具体实现。2 2、StrutsStruts框架产生的技术背景框架产生的技术背景(1 1)对)对J2EE WebJ2EE Web开发技术回
6、顾开发技术回顾pJSP Model OneJSP Model One方式方式pJSP Model TwoJSP Model Two(MVCMVC)方式)方式常规常规MVCMVC的实现方式的实现方式中的控制层结构不清中的控制层结构不清晰,易与业务层混淆晰,易与业务层混淆4 4、StrutsStruts框架的体系构成框架的体系构成(1 1)组成:)组成:主要是由两个相对独立的组成部分所构成主要是由两个相对独立的组成部分所构成(2 2)第一个部分是)第一个部分是Struts APIStruts API利用这些利用这些APIAPI中的相关的类和接口,可以用于编写支持中的相关的类和接口,可以用于编写支持
7、StrutsStruts的的WebWeb应用组件应用组件(3 3)第二部分是)第二部分是StrutsStruts的表示层中各种标签库的表示层中各种标签库q主要由主要由htmlhtml、beanbean、logiclogic和和tilestiles等标签库组成;等标签库组成;q利用这些标签库可以进一步改善表示层中的利用这些标签库可以进一步改善表示层中的JSPJSP页面,真正页面,真正实现表示与业务处理的分离实现表示与业务处理的分离5 5、Struts WebStruts Web应用开发的步骤应用开发的步骤(1 1)问题)问题下面通过一个简单的下面通过一个简单的WebWeb应用的实例来说明应用的实
8、例来说明StrutsStruts的开发过程的开发过程(2 2)Struts Web Struts Web应用开发可以分为两个阶段应用开发可以分为两个阶段p平台的搭建平台的搭建q各个各个WebWeb组件的编程实现组件的编程实现6 6、应用示例实现过程、应用示例实现过程-第一个阶段中的平台的搭建第一个阶段中的平台的搭建(1 1)创建出)创建出StrutsStruts的的WebWeb目录目录 在在webappwebapp目录下新建一个目录下新建一个Struts WebStruts Web程序的目录路径(如程序的目录路径(如下图的下图的WebBBSWebBBS)、WEB-INFWEB-INF、clas
9、sesclasses和和liblib目录等目录等当然如果是采用当然如果是采用IDEIDE工工具则没有这些细节!具则没有这些细节!下面假定是采用下面假定是采用“记记事本事本”手动开发实手动开发实现!现!(2 2)拷贝)拷贝StrutsStruts的各个的各个APIAPI所在的所在的*.jar*.jar包文件包文件将将StrutsStruts的各个的各个APIAPI库文件拷贝到库文件拷贝到WebWeb程序的的程序的的WEB-INFlibWEB-INFlib下。下。注意在注意在StrutsStruts的核心包中并没有包含的核心包中并没有包含DBCPDBCP的实现类!的实现类!因此如果需要数据库连接池
10、的支持,则需要再因此如果需要数据库连接池的支持,则需要再添加对应的系统添加对应的系统*.jar*.jar包文件包文件(3 3)拷贝)拷贝StrutsStruts的各个标签库的的各个标签库的*.tld*.tld文件文件将将StrutsStruts的全部标签库描述文件(的全部标签库描述文件(struts-*.tldstruts-*.tld)拷贝到)拷贝到Struts WebStruts Web程序的目录路径下的程序的目录路径下的WEB-INFWEB-INF下下 (4 4)配置)配置Struts WebStruts Web程序的程序的web.xmlweb.xml文件文件在在该配置文件主要定义该配置文
11、件主要定义ActionServletActionServlet类、配置文件类、配置文件struts-config.xmlstruts-config.xml的存放位置、的存放位置、StrutsStruts的标签库等。的标签库等。注意注意:web.xmlweb.xml配置文件配置文件在在J2EE WebJ2EE Web应用中的作用应用中的作用p它是它是Sun J2EE WebSun J2EE Web应用程序中的标准部署描述文件应用程序中的标准部署描述文件p所有的所有的J2EE WebJ2EE Web应用程序中的标准的配置项目都应该在应用程序中的标准的配置项目都应该在该文件中进行设置该文件中进行设置
12、 您了解您了解WebWeb应用的目录结构要应用的目录结构要求吗?求吗?q在在web.xmlweb.xml中与中与strutsstruts相关的配置项目相关的配置项目在该文件中需要增加对用户的请求进行接收并响应的在该文件中需要增加对用户的请求进行接收并响应的ActionServletActionServlet类类以及以及strutsstruts自己的配置文件自己的配置文件struts-struts-config.xmlconfig.xml的存放的存放的位置的位置最后也还涉及到在本最后也还涉及到在本WebWeb应用中所引用的应用中所引用的StrutsStruts的各个的各个标签库的标签库的*.tl
13、dtld文件的声明文件的声明注意该参数的名称注意该参数的名称您知道该参数的作用吗?您知道该参数的作用吗?设置其请求的设置其请求的URLURL方式方式(5 5)定义将被)定义将被ActionServletActionServlet类处理的类处理的URL URL 可以采用前缀匹配和扩展匹配两种方式,并且可以混可以采用前缀匹配和扩展匹配两种方式,并且可以混合地使用合地使用p前缀匹配(前缀匹配(路径映射路径映射)u将所有以一个特殊值开头(在上下文路径部分之后)将所有以一个特殊值开头(在上下文路径部分之后)的的URLURL传递给这个传递给这个ServletServlet。u此时在此时在web.xmlwe
14、b.xml文件中应该如下:文件中应该如下:-mapping actionaction-name /-pattern/executeexecute/*/*-pattern /-mappingu匹配前面描述的匹配前面描述的 /executeexecute 路径的请求路径的请求URLURL应该如下应该如下(其中(其中/myAppmyApp 是是WebWeb应用程序展开所在的上下文路径):应用程序展开所在的上下文路径):http:/ p扩展映射扩展映射u它是以一个跟着定义的一组字符的句点结束的它是以一个跟着定义的一组字符的句点结束的URLURLu为了使用为了使用*.do *.do 扩展(它意味着扩展(
15、它意味着“做某件事做某件事”)映射条目,)映射条目,在在web.xmlweb.xml文件中文件中应该如下:应该如下:action action *.do.do u并且一个匹配并且一个匹配/logon/logon 路径的请求的路径的请求的URIURI应该如下:应该如下:http:/ http:/ 6)配置配置struts-config.xmlstruts-config.xml文件文件p作用:将框架中的视图作用:将框架中的视图(V)(V)、控制器控制器(C)(C)等部分联系在一等部分联系在一起;所有与起;所有与StrutsStruts相关的特殊配置项目都应该在此文件中相关的特殊配置项目都应该在此文
16、件中进行设置进行设置它是它是Struts系统在运系统在运行时的配置文件行时的配置文件(6 6)配置)配置struts-config.xmlstruts-config.xml文件(续)文件(续)p为什么要提供为什么要提供StrutsStruts本身的配置文件本身的配置文件遵守遵守J2EEJ2EE中松藕合的中松藕合的原则原则 在应用系统变动时,只用修改在应用系统变动时,只用修改该该配置文件配置文件中的配置项目中的配置项目,而不而不用用再重新编译发布相关的类。再重新编译发布相关的类。同时它还描述了客户提供的数据与同时它还描述了客户提供的数据与ActionFormActionForm组件的对组件的对应
17、映射关系。应映射关系。p所应该注意的问题:所应该注意的问题:其中的各个配置标签是有一定的顺其中的各个配置标签是有一定的顺序要求的序要求的 注意:注意:可以参考其可以参考其DTDDTD文件中的说明来了解其各个标签的顺序文件中的说明来了解其各个标签的顺序要求要求(7 7)定义并编写资源文件(因为)定义并编写资源文件(因为StrutsStruts提供了国际化的支提供了国际化的支持)持)q可以把错误提示文字信息和其它文字信息放在可以把错误提示文字信息和其它文字信息放在 ApplicationResources.propertiesApplicationResources.properties 文件中文
18、件中q从而可以实现在从而可以实现在JSPJSP中显示的内容从资源绑定中获得,因为中显示的内容从资源绑定中获得,因为资源绑定可以支持国际化资源绑定可以支持国际化其格式为其格式为“名称名称=值值”您熟悉您熟悉J2SEJ2SE中的国际化技术的实现吗?中的国际化技术的实现吗?q资源信息文件的存放的位置资源信息文件的存放的位置 以以classesclasses为起始相对路径,本例包含有包名称为为起始相对路径,本例包含有包名称为com.px1987.sshprojectcom.px1987.sshproject。因此应该将该文件存放在如图所。因此应该将该文件存放在如图所示的目录下。示的目录下。q在在str
19、uts-struts-config.xmlconfig.xml中设置其位置信息中设置其位置信息 message-resourcesApplicationResources/7 7、实现过程、实现过程-第二个阶段第二个阶段各个各个WebWeb组件的编程实现组件的编程实现(1 1)MVCMVC中的各个组件中的各个组件表示层(表示层(JSPJSP页面)、控制层(页面)、控制层(ActionAction类)、业务模型层类)、业务模型层(ActionFormActionForm类和业务组件类和业务组件JavaBeanJavaBean)(2 2)编程视图页面)编程视图页面index.jsp index.j
20、sp 以实现对系统的请求(如果包含以实现对系统的请求(如果包含有表单,则应该采用有表单,则应该采用StrutsStruts中的标签)中的标签)(3 3)编程)编程ActionFormActionForm类以实现表单数据的校验和复位表单组件类以实现表单数据的校验和复位表单组件中的各个属性值中的各个属性值(4 4)编程)编程ActionAction类实现业务的预处理和对业务组件的调度类实现业务的预处理和对业务组件的调度(5 5)编程业务模型类以实现具体的业务操作实现)编程业务模型类以实现具体的业务操作实现(6 6)执行该页面)执行该页面http:/127.0.0.1:8080/WebBBS/use
21、rLogin.jsphttp:/127.0.0.1:8080/WebBBS/userLogin.jsp在在JBuilderJBuilder中编程实现中编程实现StrutsStruts应用应用1 1、请见文档、请见文档2 2、利用开发工具简化开发过程、利用开发工具简化开发过程-否则我们会太累!否则我们会太累!在在EclipseEclipse中编程实现中编程实现StrutsStruts应用应用1 1、请见文档、请见文档2 2、应用开源开发工具避免我们陷入应用、应用开源开发工具避免我们陷入应用“盗版盗版”的嫌疑!的嫌疑!1 1、子曰:、子曰:“学而不思则罔,思而不学则殆。学而不思则罔,思而不学则殆。”“学而时习之学而时习之”2 2、子曰:子曰:“知之者不如好之者知之者不如好之者,好之者不如乐之者好之者不如乐之者”3 3、子曰:、子曰:“三人行三人行,必有我师焉必有我师焉”4 4、子曰:子曰:“我非生而知之者我非生而知之者,好古好古,敏以求之者也敏以求之者也”5 5、师者:师者:“传道、授业和解惑传道、授业和解惑”努力学习以实现自己的人生理想和目标努力学习以实现自己的人生理想和目标