您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 工作范文 > struts2框架资料全面讲解
欢迎大家进入就业班进行JavaEE培训姓名:杜宏电话:18600774790QQ:22597927EMAIL:duhong@itcast.cn第一天Struts2框架介绍1、三大框架:是企业主流JavaEE开发的一套架构Struts2+Spring+Hibernate2、什么是框架?为什么要学框架?框架是实现部分功能的代码(半成品),使用框架简化企业级软件开发学习框架,清楚的知道框架能做什么?还有哪些工作需要自己编码实现?3、什么是Struts2?Struts2是一款优秀MVC框架MVC:是一种思想,是一种模式,将软件分为Model模型、View视图、Controller控制器*MVC由来是web开发JavaEE软件三层结构:web层(表现层)、业务逻辑层、数据持久层(sun提供JavaEE开发规范)JavaEE开发更强调三层结构,web层开发注重MVCstruts2就是web层开发框架,符合MVC模式*struts1、webwork、jsf、SpringMVC都是MVC4、Struts2和Struts1关系没有关系,Struts2全新框架,引入WebWork很多技术和思想,Struts2保留Struts1类似开发流程*Struts2内核webworkXwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL–theObjectGraphNavigationLanguage),IoC(InversionofControl反转控制)容器等Struts2快速入门1、下载开发包课程以struts23.15.1讲解2、目录结构apps:struts2官方demodocs:文档lib:jar包src:源码3、导入jar包到开发工程只需要导入apps/struts2-blank.war中所有jar包----13个jar包4、编写页面hello.jsp请求页面ahref=${pageContext.request.contextPath}/hello.action访问struts2入门/asuccess.jsp结果页面5、在web.xml配置struts2前端控制器(Filter)filterfilter-namestruts2/filter-namefilter-classorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter/filter-class/filterfilter-mappingfilter-namestruts2/filter-nameurl-pattern/*/url-pattern/filter-mapping6、执行struts2过滤器后,读取struts2配置文件,将请求分发在src下创建struts.xmlpackagename=defaultnamespace=/extends=struts-default!--ahref=${pageContext.request.contextPath}/hello.action访问struts2入门/a--!--将请求分发给一个Action--!--action的name就是hello.action去掉扩展名--actionname=helloclass=cn.itcast.struts2.demo1.HelloAction/action/package7、执行目标Action中execute方法8、在Action的execute方法中返回字符串,在struts.xml中配置字符串与页面对应关系resultname=executesuccess/demo1/success.jsp/result完成结果页面跳转Struts2流程分析与工具配置1、运行流程请求----StrutsPrepareAndExecuteFilter核心控制器-----Interceptors拦截器(实现代码功能)-----Action的execuute---结果页面Result*拦截器在struts-default.xml定义*执行拦截器是defaultStack中引用拦截器----通过源代码级别断点调试,证明拦截器是执行2、配置struts.xml提示问题如果安装Aptana编辑器,请不要用Aptana自带xml编辑器编写struts2配置文件struts.xml提示来自于DTD约束,!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//EN如果可以上网,自动缓存dtd,提供提示功能如果不能上网,也可以配置本地DTD提示***导入DTD时,应该和配置DTD版本一致3、关联struts2源码关联zip包4、ConfigBrower插件使用提供在浏览器中查看struts2配置加载情况将解压struts2/lib/struts2-config-browser-plugin-2.3.7.jar复制WEB-INF/lib下访问查看struts2配置加载情况Struts2配置学习路径1)、struts.xml常量配置(配置文件顺序)、Action访问(ServletAPI)、结果集(使用Struts2编写简单案例)2)、请求数据3)、响应页面生成Struts2配置文件加载顺序struts2配置文件由核心控制器加载StrutsPrepareAndExecuteFilter(预处理,执行过滤)init_DefaultProperties();//[1]----------org/apache/struts2/default.propertiesinit_TraditionalXmlConfigurations();//[2]---struts-default.xml,struts-plugin.xml,struts.xmlinit_LegacyStrutsProperties();//[3]---自定义struts.propertiesinit_CustomConfigurationProviders();//[5]-----自定义配置提供init_FilterInitParameters();//[6]-----web.xmlinit_AliasStandardObjects();//[7]----Bean加载结论:default.properties该文件保存在struts2-core-2.3.7.jar中org.apache.struts2包里面(常量的默认值)struts-default.xml该文件保存在struts2-core-2.3.7.jar(Bean、拦截器、结果类型)struts-plugin.xml该文件保存在struts-Xxx-2.3.7.jar(在插件包中存在,配置插件信息)struts.xml该文件是web应用默认的struts配置文件(实际开发中,通常写struts.xml)******************************struts.properties该文件是Struts的默认配置文件(配置常量)web.xml该文件是Web应用的配置文件(配置常量)*后加载文件中struts2常量会覆盖之前加载文件常量内容Struts2的Action配置1)必须要为action元素配置package元素(struts2围绕package进行Action的相关配置)配置package三个常用属性packagename=defaultnamespace=/extends=struts-defaultname包名称,在struts2的配置文件文件中包名不能重复,name并不是真正包名,只是为了管理Actionnamespace和action的name属性,决定Action的访问路径(以/开始)extends继承哪个包,通常开发中继承struts-default包(struts-default包在struts-default.xml定义)*继承struts-default包后,可以使用包中定义拦截器和结果类型2)Action的通过action元素配置actionname=helloclass=cn.itcast.struts2.demo1.HelloActionaction的name和package的namespace属性共同决定Action的访问路径!!!!!!!!例如:packagename=defaultnamespace=/userextends=struts-defaultactionname=helloclass=cn.itcast.struts2.demo1.HelloAction访问路径/user/hello.action3)action元素配置默认值package的namespace默认值“”action的class默认值ActionSupport类result的name默认值success默认Action和Action的默认处理类1)默认Action,解决客户端访问Action不存在的问题,客户端访问Action,Action找不到,默认Action就会执行default-action-refname=action元素的name/2)默认处理类,客户端访问Action,已经找到匹配action元素,但是action元素没有class属性,执行默认处理类default-class-refclass=完全类名/*在struts-default.xml配置默认处理类ActionSupportStruts2的常量配置1)struts2默认常量在default.properties中配置2)开发者自定义常量struts.xml(要求)格式:constantname=struts.devModevalue=true/struts.properties(要求)格式:struts.devMode=trueweb.xml格式:filterfilter-namestruts2/filter-namefilter-classorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter/filter-classinit-paramparam-namestruts.devMode/param-nameparam-valuetrue/param-value/init-param/filter3)常用常量constantname=struts.i18n.encodingvalue=UTF-8/-----相当于request.setCharacterEncoding(UTF-8);解决post请求乱码constantname=struts.action.extensionvalue=action/---访问struts2框架Action访问路径扩展名(要求)*struts.action.extension=action,,默认以.action结尾扩展名和不写扩展名都会分发给Actionconstantname=struts.serve.static.browserCachevalue=false/false不缓存,true浏览器会缓存静态内容,产品环境设置true、开发环境设置falseconstantname=str
本文标题:struts2框架资料全面讲解
链接地址:https://www.777doc.com/doc-3364164 .html