'Struts2 学习笔记'-马士兵

合集下载

struts2学习笔记

struts2学习笔记

一、准备工作及实例1.解压struts-2.1.6-all.zipapps目录:struts2自带的例子程序docs目录:官方文档。

lib 目录:存放所有jar文件。

Src 目录:源文件存放地2.六个基本包struts2-core-2.1.6.jar :开发的核心类库freemarker-2.3.13.jar :struts2的UI标签的模板使用freemarker编写commons-logging-1.0.4.jar :日志包ognl-2.6.11.jar :对象图导航语言,通过它来读写对象属性xwork-2.1.2.jar :xwork类库,struts2在其上进行构建commons-fileupload-1.2.1.jar:文件上传组件,2.1.6版本后必须加入此jar包特别需要说明的是目前strust2的最新版本是struts-2.1.6,它作为2.1X的正式版。

特别要注意导入commons-fileupload-1.2.1.jar包,在此jar包中包含了RequestContext类,如果不导入该jar包将会报异常。

3.初识struts2配置文件(1).web.xml文件主要完成对StrutsPrepareAndExecuteFilter的配置(在以前的版本中是对FilterDispatcher配置,新版本同样支持用FilterDispatcher配置),它的实质是一个过滤器,它负责初始化整个Struts框架并且处理所有的请求。

这个过滤器可以包括一些初始化参数,有的参数指定了要加载哪些额外的xml 配置文件,还有的会影响struts框架的行为。

除了StrutsPrepareAndExecuteFilter外,Struts还提供了一个ActionContexCleanUp类,它的主要任务是当有其它一些过滤器要访问一个初始化好了的struts框架的时候,负责处理一些特殊的清除任务。

(2).struts.xml文件框架的核心配置文件就是这个默认的struts.xml文件,在这个默认的配置文件里面我们可以根据需要再包括其它一些配置文件。

Struts2学习笔记

Struts2学习笔记

Struts2项目的构建与配置 (2)1. 配置struts.xml (2)2. 配置web.xml (2)3. 配置Struts2的jar包 (2)Struts.xml的配置 (2)1. <package>的属性与配置 (2)2. <action>的属性与配置 (3)3. <result>的属性与配置 (5)4. <include>的属性与配置 (6)5. <constant>配置struts.properties (6)6. <exception-mapping>与<global-exception-mapping> (6)7. <default-class-ref> (6)8. <default-action-ref> (6)9. <default-interceptor-ref> (7)10. <interceptors> (7)11. <interceptor-ref> (7)12. <global-results> (7)Struts的常见问题 (7)1. 超链接路径问题的说明 (7)2. 声明式的异常处理 (8)3. i18n国际化 (8)4. 拦截器 (8)5. 类型转换 (9)OGNL表达式 (10)1. 访问值栈中action的属性 (10)2. 访问方法 (10)3. 访问集合 (11)4. 投影(过滤的作用) (11)5. 使用“[]”访问元素 (11)Struts2的标签 (11)1. $、#、%的区别 (11)2. 控制标签 (11)3. 数据输出标签 (12)4. 通用标签 (13)5. HTML非表单标签 (13)6. HTML表单标签(很少用) (14)7. AJAX标签(很少用) (15)作者:李志伟编写完成时间:2013-11-21Struts2项目的构建与配置1.配置struts.xml(1)struts.xml文件位置:在项目的src目录下创建该文件,并配置。

Struts2学习笔记

Struts2学习笔记

Struts1是一个优秀的框架,但是还是具有很多不好的地方,如Action和ActionForm严重倚赖系统框架中的API。

如ActionForm必须继承ActionForm,Action控制器继承Action,测试麻烦。

Struts2是基于webwork发展而来,并非struts1使用MyEclipse8.5版本,可自动添加依赖struts2的系统库Struts2原理:说明:Struts2没使用Servlet作为核心控制器,而是换做一个Filter过滤器来进行,其类是org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 过滤器所拦截的请求是<url-pattern>/*</ url-pattern>(当然根据版本的不同,过滤器类也不同,如Org.apache.Struts2.dispatcher.FilterDispatcher)如果请求中带有.action或.do,则转入Struts2框架处理。

配置文件:Web.xml中:<filter><filter-name>struts2</filter-name><!-版本不同这里的配置不同-→<!—<filter-class>Org.apache.Struts2.dispatcher.FilterDispatcher</filter-class>→<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFi lter</filter-class><init-param><param-name>config</param-name><param-value>struts-default.xml,struts-plugin.xml,../struts.xml </param-value></init-param></filter><filter-mapping><filter-name>struts2</ filter-name><url-pattern>/*</ url-pattern></filter-mapping>Struts.xml<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN""/dtds/struts-2.1.dtd"> <struts><!—这个package可以处理文件同名的情况,一般不会更换-- ><package name="default"extends="struts-default"namespace="\"> <action name="Login"class="com.test.action.LoginAction"><result name="cheng">/index.jsp</result><result name="bai">/fail.jsp</result></action></package></struts>配置文件说明:1、package中的name为了区分不同的包2、extends是继承的包名3、namespace是提交时区分的地址,如namespace=”user”,则提交时需要加入action=”/user/xxx.action”控制其中的代码,其中数据直接封装和页面表单元素名称对应。

struts2学习笔记

struts2学习笔记

Struts2 框架第一天今天重点内容:1、什么是Struts2框架?框架特性分析2、struts2 快速入门(分析struts2 运行原理)3、struts2 常用配置4、如何访问Struts2 Action (Servlet)5、Struts2 结果集使用(响应跳转/ajax)1.Struts2 框架概述1.1.什么是struts2Struts2 框架问题:什么是框架?为什么要学习框架?框架是一些已经写好代码,通常和具体业务无关(可以看成:软件的半成品)学习框架,提高开发效率,简化开发(应用框架,实现代码代码开发实现开发标准化)javaEE三层结构在web阶段DAO模式符合JA V AEE三层结构的三层结构出自JavaEE规范(体系结构图)表现层⏹业务层⏹持久层/集成层Struts2 是一个表现层框架(简化表现层代码开发)分层开发:代码结构更加清晰,为了更好维护和扩展1.2.struts2 由来由两个框架优点合并后发展而来(struts1 + webwork)历史由来:Java兴起98年(最早进行java开发分方向j2se 、j2ee、j2me )J2EE 企业级应用软件开发2000 年左右出现struts1 (几乎所有开发人员都在用)随着互联网的发展struts1 设计慢慢开始存有缺陷和不足Webwork框架的出现该框架的设计思想比struts1 先进的多,例如:引入拦截器机制、ognl 表达式语言Apache 推出struts2 框架,特点: 开发流程类似struts1 ,内部结构类似webwork (struts2 和webwork 源自xwork 命令模式框架)1.3.struts2 开发包结构使用框架,导入jar包课程使用struts-2.3.15.3-all.zip 版本学习apps 使用demo (方便后期快速导入jar包和配置文件)开发中war重命名成zip包解压找到里面的13个核心jar包doc 文档(学习struts2的官方官方规范文档)lib 开发struts2 需要的所有jar包src 源代码开发struts2 没必要导入lib下128个jar包(去struts2_blank.war下方找struts2 最基本jar)将war包改为zip 扩展名,解压缩回顾jar记忆: 核心struts2-core-3.15.3.jar+ xwork-core+ognl (3) 上传(2jar) 日志: 2 jar 字符串lang 1 asm.* 3 jar 处理字节码信息javassist.jar 1 代理相关freemarker 1 jar 图形模板引擎开发strutrs2 基包导入web 工程!1.4.struts2入门理论JavaEE设计模式:前端控制器模式过滤器模式访问如图:前段控制器作用: 请求分发!通过struts.xml配置给指定Actionstruts前端控制器:开发中将所有的重复的代码提前到前端控制器去完成,在Action 中只要写不重复业务处理代码!编写快速入门开发流程说明2.Struts2快速入门案例第一步:在myeclipse 新建web project选择javaee版本,课程优先5.0 ------ myeclipse2014 servlet 版本2.5 采用JDK6 编译器第二步:导入struts2 开发jar包apps/struts2_blank.war/WEB-INF/lib/ 13个jar包asm-* 字节码操作类库(.class文件)commons-fileupload 文件上传依赖commons-iocommons-lang3 对字符串、数据操作公共方法commons-logging Java通用日志接口,依赖日志实现log4j freemarker 模板引擎(struts2标签库,依赖freemarker )javassist 生成代理ognl 表达式语言(比EL强大很多倍)struts2-core 核心jar包xwork-core struts2和webwork依赖命令模式框架2: 配置web.xml3:配置struts.xml 推荐找到2.3.15.jar --> apps 目录:struts-blank自带struts.xml 文件导入!编写HelloAction (类似之前写的Servlet )5 struts.xml 注册action 和请求资源虚拟路径映射!访问该action http://localhost/strut2_day01/hellAction运行流程分析图解:3.分析struts2运行原理Struts2 核心控制器Struts Prepare And Execute Filter (准备和执行)-------- 前端控制器模式查看系统执行默认一组拦截器打开文档: struts2核心jar 内struts-default.xml系统执行前端控制器根据struts-default.xml 配置文件配置默认拦截器栈执行一组拦截器然后再执行目标Action -->execute 方法!请求---执行一堆拦截器组件(业务功能)---- 具体ActionStruts2 可以复用代码功能,基于Interceptor 实现的问题:执行了哪些拦截器?小结原理:1: 通过web.xml 配置前端控制器2: 前端控制器执行一组拦截器通过struts.xml 访问具体action 执行业务方法3: action execute 方法返回字符串结果页面跳转!拦截器组件执行顺序:参考struts-core.jar 提供struts-default.xml 配置文件默认情况下,访问每个Action ,defaultStack 都会执行!每个拦截器都会被调用,一些重复功能,由拦截器去实现的!!!问题: 是否是struts2 开发每一次请求都会执行拦截器?拦截器并不是每次都执行!! 看访问资源的!1: 访问资源目标是一个Action 组件必然会调用拦截器然后执行action ' 2: 如果访问是jsp/html 静态资源前端控制器不会调用默认拦截器栈的!拦截器只针对Action 有效!3.1.配置struts.xml DTD提示struts.xml 引入DTD约束(限制如何配置这个文件)⏹如果电脑可以联网,自动从网上下载DTD,缓存提供提示⏹如果电脑没有联网,在本地配置DTD文件位置,提供本地提示struts-2.3.15.3\src\core\src\main\resources文件struts.xml关闭重新打开有自动提示标签!4.struts2 常用配置文件了解前端控制器在容器启动的时候执行哪些配置文件的加载! 配置文件源码分析流程: 分析StrutsPreparedAndExecuteFilter先加载*.properties 然后再加载*.xml 配置文件properties:配置框架启动一些基本配置信息: 比如: 请求虚拟路径配置乱码配置..... default.properties : 框架加载的默认配置信息其次加载xml 文件: 三个struts-default.xml : 核心包下struts-plugin.xml : struts 和第三方插件整合的时候加载插件配置文件举例: struts-json-plugin.jarstruts2 + json 整合整合第三方插件配置文件.struts.xml: 用户自定义配置文件: 可以重写上述框架配置文件信息以及用户开发相关信息: action exception result .... 小节: 容器一旦启动: 加载xxx.properties 又加载三个xml ...继续加载src 必须名称叫做struts.properties配置文件修改: default.properties 信息4.1.框架配置文件配置文件加载顺序通过源码跟踪执行主要的配置文件哪些?init 容器启动的时候加载配置文件!!跟踪dispatcher.init();配置文件的加载顺序!! 核心defalust.properties [1] struts-default.xml struts-plugins.xml struts.xml [2] struts.properies[3](修改框架默认配置信息)⏹Struts2 常量配置文件⏹default.properties (框架执行加载配置信息) struts-core jar包org.apache.struts2 包下⏹项目默认配置信息!!!⏹Struts2 框架内置核心配置文件struts-core jar包struts-default.xml 拦截器结果集⏹(Bean元素、结果集类型、拦截器… )在struts2框架体系中,package 实现一些配置复用,编写子包继承struts-default⏹Struts2 框架插件配置文件位于每个插件包根目录struts-plugin.xml扩展一些插件配置用户自定义配置因为开发中往往需要更改框架默认配置信息参数⏹在用户项目src目录struts.xml ,推荐使用!进行用户开发相关配置⏹⏹用户也可以添加properties 修改框架默认加载信息!!⏹在用户项目src目录struts.properties ,文件名不能修改!⏹用户自己常量配置文件default.properties 不推荐!⏹在web.xml 配置struts2 常量(更不推荐)规则:后加载配置文件,配置内容,可以覆盖之前加载配置内容!!!开发人员主要采用struts.xml 或者struts.propertiesstruts.properties (只能配置常量)struts.xml 修改struts.xml添加标签<constant name="" value=""></constant>测试通过struts.xml 或者自定义struts.properties 修改框架加载的默认配置信息!! 修改访问路径扩展名struts.action.extension=action,, 改成自己的扩展名4.2.小节配置文件1: default.properties : 框架加载默认配置信息如果用户需要修改推荐: struts.xml 引入<constant 标签name="key"> 2: TranditionXml :struts-default.xml : 定义struts2 大量结果集以及拦截器配置和工厂Bean : 使用默认拦截器和结果集跳转程序员在struts.xml 使用<package extends="struts-default"> 使用struts2 提供结果集和拦截器3: struts-plugin.xml : 整合第三方插件: 如果需要使用第三方插件: 程序员在struts.xml <package extends="xxx插件包名称">4: struts.xml : 定义用户自己的配置信息:4.3.详细分析Action相关映射配置Struts2 提供前端控制器,采用请求分发思想,将不同url请求,分配给不同Action进行处理,需要在struts.xml 配置请求路径和Action 映射关系!问题:struts2 package作用Package可以用来管理Action,实现包内配置复用(通过包继承实现)struts-default.xml 定义一个package包内定义大量结果集类型和拦截器用户开发package 通常继承struts-default 包name属性:包名称,在struts容器具有唯一性(在开发中可以用模块名称作为包名)namespace 属性:名称空间区分重复性举例:如果两个包存在同名Action ,需要名称空间区分action访问路径访问上面Action 应用名称空间http://localhost/struts2_day01/demo2/hello.action4.4.struts2 常量配置在struts2 六种配置文件中,都可以配置struts2 常量,后加载配置文件常量可以对先加载配置文件进行覆盖!常用常量分析1、struts.i18n.encoding=UTF-8相当于request.setCharacterEncoding(“utf-8”); 解决post 请求乱码问题Struts2开发时,无需关注post 乱码问题2、struts.action.extension=action,,Action请求映射路径默认扩展名问题:http://localhost:8080/struts2_day1/hello 也可以访问HelloAction如果请求路径必须以.action结尾3、struts.configuration.xml.reload=true修改struts.xml 配置后,无需重启服务器当设置devMode =true 激活xml自动重新加载4、struts.ui.theme=xhtml设置页面标签显示样式// struts-tag 标签库5、struts.objectFactory=struts负责创建Action对象类6、struts.enable.DynamicMethodInvocation=true // 默认是false访问Action 支持动态方法调用访问action组件可以采用动态调用的方式进行.配置文件分离,在大型项目中,因为如果使用一个配置文件,需要配置很多Action,不方便维护,struts.xml 提供<include> 标签,将配置分离出去5.访问Action5.1.Action 三种书写格式第一种写法,编写自定义Action类,实现Action接口Action 接口提供execute 处理业务逻辑方法1: 实现Action 接口!!struts.xml配置访问: Action http://localhost/struts2_day01/helloAction第二种写法:编写自定义Action 继承ActionSupport 类(间接实现Action接口)ActionSupport 类的特点:源码:添加了更多的接口实现ActionSupport 提供更多功能(数据校验、国际化…)编码:struts.xml 配置注册!注意DTD 约束规范逗号表示标签书写顺序!访问action http://localhost/struts2_day01/helloAction2第三种特殊写法:POJO plain old java object写法domain--->充当Action 场景: 请求封装对象本身就是javaBeanUser --->== Action提供一个execute 方法struts.xml 配置http://localhost:8099/struts2_day01/helloUserPOJO(Plain Old Java Object)简单的Java对象,实际就是普通JavaBeans 小结:5.2.关于Action的业务方法说明5.2.1.通配符的使用1: 访问指定业务方法<action 标签添加method ="对应Action中指定方法名称">配置struts.xml 注意每一个method属性值匹配Action具体的方法名称问题: 如果目标Action 方法业务过多struts.xml 引入多个action 标签重复性很高!如何简化struts.xml 配置??解决方案: 2种简化: 1: 通配符(重点) 2: 动态方法调用(掌握)5.2.2.通过设置method属性,执行Action不同业务方法设置method属性,指定调用Action 组件的对应方法启示:可以在一个Action中编写多个业务方法,在访问时,通过method 区别5.2.3.使用通配符简化路径和Action业务方法映射配置案例1: index.jsp 搭建请求访问Action 编写注意: 星的和占位符{1} {2} struts.xml{1} 对应name中第一个* 匹配的内容--->方法名称演示 2 颗星使用index.jsp 引入多个模块struts.xml 配置可以简化多个模块配置引入2颗星第一颗表示类名第二颗表示方法名称修改请求地址index.jsp测试!通配符完成!5.2.4.动态方法调用动态方法调用,效果类似通配符玩法,无需配置method 属性举例:在新版本struts2 中动态方法调用,默认是关闭的演示动态方法调用:编写:index.jsp注意请求资源地址的路径写法: ! 编写ProductAction配置struts.xml 完成配置最后开启动态方法调用配置查看默认的default.properties默认是关闭的在自己的strut.xml 开启测试完成!5.3.Action访问Servlet 相关API5.3.1.Action与ServletAPI 解耦合方式调用Servlet API doGet(HttpServletRequest, HttpServletReponse)--- Servlet 依赖request和response (代码中直接依赖---- 耦合)Struts2 设计思想与Servlet API 解耦合,编写Action 中不再直接依赖Servlet 任何APIStruts2 提供ActionContext 类(Action 上下文)上下文:与容器相关,获取容器相关对象、信息---- 工具类提供大量间接操作Servlet API (request、response、session、application)方法5.3.2.Action 直接操作Servlet API方式一:接口注入Servlet APIindex.jsp编写入口2:struts.xml 引入其他配置文件信息主文件: struts.xml模块化文件: myservlet.xml注意子文件不能和其他文件包名冲突3: 采用指定接口注入获取对应servlet api 对象。

马士兵Struts2学习笔记

马士兵Struts2学习笔记

1noitcAnigoL A COI�者三后 .4 器容于赖依�者三后 .3 )种这用只( COI�者三前 .2 器容于赖依�者三前 .1 :用引的txetnoCtelvreS ,noisseSpttH ,tseuqeRtelvreSpttH 型类实真,noitacilppa,noisses,tseuqer型类paM得取 …点重 ) stnemelEbeWsseccA_0021_2sturtS( 素元面页问访 .21
>tluser/<psj.sseccus_dda_resu/>tluser<
>noitca/<
>egakcap/<
用调态动IMD dohteMnoitcA .5
>a/<psj.xedni>"psj.xedni"=ferh a< >daeh/< … ………
ecroFXevoL yb 71:15:0 6-7-0102 记笔课听 2sturtS_兵士马堂学尚
象对 troppuSnoitcA 行执则,””=ssalc 有没
ecroFXevoL yb 71:15:0 6-7-0102 记笔课听 2sturtS_兵士马堂学尚
> "xedni"=eman noitca<
3
{ )(dda gnirtS cilbup ;resu resU etavirp
noitca应对 >a/<户用加添>"8=ega.resu&a=eman.resu?dda!resu/resu"=ferh a<数参收接ledoM niamoD用使 )tupnImaraPledoMniamoD_0080_2sturtS( 数参收接型模域ledoMniamoD用

尚学堂-马士兵Struts2教学视频之Struts2 学习笔记

尚学堂-马士兵Struts2教学视频之Struts2 学习笔记

Struts2 学习笔记---wjt276 [二○一○年一月五日完]目录01 Struts2-Action (5)一、Struts作用: (5)二、搭建Struts2的运行环境: (5)三、Namespace (6)四、<package>标签 (6)五、Action (6)六、路径问题的说明 (8)七、Action的动态调用方法 (8)八、Action通配符(wildcard)的配置 (9)九、Action的属性接收参数 (10)1、在Action添加成员属性接受参数 (10)2、域模型(Domain Model) (10)3、ModelDriven接收参数 (11)十、Action属性接收参数中文问题 (12)十一、简单数据验证 (12)十二、访问Web元素 (14)一、方法一:ActionContext方式 (15)二、方式二:Ioc(控制反转)—推荐使用 (15)三、方式三:获取原类型 (16)四、方式四:获取原类型-控制反转 (17)十三、Struts2配置文件模块化包含(include) (17)十四、默认的Action (18)十五、Action总结 (18)02 Struts2-Result (19)一、Result类型 (type) (19)二、全局结果集(Globle Result) (20)三、动态的结果集(dynamic result) (21)四、带参数的结果集 (21)五、Result总结 (22)六、项目经理: (22)03 OGNL表达式语言 (23)04 Struts2-Tags (28)Struts2标签目录 (28)一、property标签 (28)二、set标签 (29)三、bean标签 (29)四、<include>标签-少使用 (29)五、If elseif else (30)六、Iterator标签 (31)七、Theme (31)05设计约定(编码规定) (32)06 项目开发顺序 (32)07 声明式异常处理 (33)08 国际化 (35)一、国际化资源文件 (35)二、Java国际化 (35)Struts学习笔记第3页共39页三、Struts2国际化 (35)1、Action级别 (35)2、Package级别 (36)3、Application级别 (36)四、资源文件中的参数处理 (37)五、国际化-动态语言切换 (37)09 自定义拦截器 (38)10 类型转换 (38)Struts2总结 (39)目录Action⏹简单数据校验Result常用配置文件OGNL & ValueStackTags---------------------Project⏹类型转换、上传与下载、interceptor、防止重复提交 MVC思想深入剖析源码解读其他话题01 Struts2-Action一、Struts作用:将请求与结果分开二、搭建Struts2的运行环境:1、建立Web项目;2、建立Struts2的配置文件(struts.xml);将Struts2的空项目中的配置文件(struts.xml)复制到项目的src目录下。

struts2学习笔记

Байду номын сангаас
struts2 的处理流程: 核心控制器(StrutsPrepareAndExecuteFilter)--->Interceptor--->action---->业务逻辑层--->dao 层
一.struts2 核心文件 struts.xml 的配置
<package name="struts2" namespace="" extends="struts-default"> <action name="sum" class="com.alex.FirstAction"> <result name="positive">/positive.jsp</result> <result name="negative">/negative.jsp</result> </action> <constant name="struts.action.extension" value="jun,lu"/> <!--指定需要 Struts 2 处理的请求后缀,多个之间用逗号分开--> <constant name="struts.enable.DynamicMethodInvocation" value="false"/> <!--关闭动态方法调用。--> <constant name="struts.custom.i18n.resources" value="message"/> </package> 说明:space 声明命名空间。这里和表单提交的要保持一致。例如: namespace="/mystruts" 那么在表单提交的时候应该<s:form action="mystruts/sum.action" > namespace="" 那么在表单提交的时候应该<s:form action="sum.action" > 2.<action name="sum" class="com.alex.FirstAction"> class 便是对应的 Action 类 name 对应 action 的唯一标识。和表单提交时保持一致。例如: name="yj" 那么在表单提交的时候应该<s:form action="yj" > 3.<result name="positive">/positive.jsp</result> 判断跳到哪一个页面,其中 name 是唯一标识。和"com.alex.FirstAction"的返回值进 行对比。相同就跳到相应的页面 4. <constant name="struts.custom.i18n.resources" value="message"/> 配置常量 资源文件--> 1.Action 范围:类名.properties (在国际化的时候,那么就应该是:类名_zh_CN.properties ) //配置一些类型转换错误信息和其他的信息 2.包范围:package.properties 需要放在包下面,只能被该包和子包访问 (在国际化的时候,那么就应该是:package_zh_CN.properties ) 3.全局范围:通过 struts.custom.i18n.resources 来定义全局资源文件,比如在 struts.xml 中配置: <constant name="struts.custom.i18n.resources" value="message"/> 那么全局资源文件就是 message.properties

struts2学习笔记

6. Struts2 使用了新的 OGNL 的表达式语言,可以访问值栈,在对集合和索引属性的支持上功能更强大。
7. Struts1 的配置文件只需 struts-config.xml;Struts2 的配置文件有 struts.xml 和 struts.properties。struts.properties 中有两个 struts.devMode = fase 和 struts.configuration.xml.reload = true 很可爱,分别设置当前是开发还是生产模式,以及 struts.xml 改变后是否自动重新加载,免去了改配置手工重启应用的必须步骤。
Struts2 学习笔记(四)
1. 按这个顺序加载 Struts2 的常量,struts-default.xml、struts-plugin.xml、struts.xml、web.xml;后加载的会覆盖前面的同名常量。强烈不推荐在 web.xml 中配置 Struts2 常量。
2. Struts1 中有一种 Action 类型是 ForwardAction,而在 Struts2 中相应的配置方式是 <action name="Showcase"><result>/showcase.jsp</result></action>,Showcase.action 直接映射到 /showcase.jsp。
3. Struts1 的 Action 须继承抽象 Action 类,侵入了 Servlet API;而 Struts2 的 Action 可以实现 ActionSupport,或者只要一个纯净的 POJO 来充当,完全与 Servlet 绝缘。也因此带来测试性 Struts2 要比 Struts1 强,可把 Struts TestCase 扔到一旁去了。

尚学堂马士兵j2se学习笔记

(3)面向对象考虑问题的3步 (3)THIS关键字 (3)STATIC关键字(STATIC变量存放在内存中的DATA SEG中) (3)PACKAGE 关键字 (3)访问控制 (3)方法的重写 (3)S UPER关键字 (4)继承中的构造方法 (4)对象转型 (4)多态的3个必要条件 (4)动态绑定 (4)抽象类ABSTRACT (4)F INAL关键字 (4)接口 (5)5异常分类 (5)异常的捕获和处理 (5)THROW和THROWS的区别 (6)6二维数组 (6)7 S TRING B UFFER和S TRING的区别 (7)7I TERA TOR接口 (7)S ET接口 (7)L IST接口 (8)C OMPARABLE接口 (8)读的效率和写的效率 (8)M AP接口 (8)A UTO BOXING/UNBOXING(JDK1.5) (9) (9)处理流 (9)缓冲流 (9)转换流 (9)数据流 (9)Object流 (10)10线程的概念 (10)线程控制基本方法 (10)sleep方法 (10)join方法 (10)yield方法 (10)synchronized 关键字:可修饰方法,执行过程中锁定当前对象 (10)sleep()和wait()的区别 (10)notify()/notifyAll() (11)叫醒当前wait()的线程 (11) (11)TCP协议和UDP协议 (11)S OCKET (11)C OMPONENT (12)C ONTAINER (12)F RAME (12)布局管理器 (12)内部类 (13)G RAPHIC 类 (13)鼠标事件适配器 (13)W INDOW 事件 (13)匿名类 (13)swith 语句,每一条情况最后都需加break,否则会穿透。

多个case可以合并到一起Java中swith语句只能探测int类型(包括可以转换成int的类型)Return语句终止方法的运行并指定要返回的数据面向对象考虑问题的3步1.由哪些类,哪些对象构成2.这些类各自有哪些属性3.这些类之间有什么联系this关键字◆在类的方法定义中使用的this关键字代表使用该方法的对象的引用。

struts2课堂笔记(第一天)

七、 结果页面的配置(处理结果Result的详解)
八、 基于注解的struts2 开发
知识结构(原理及流程------>所有配置文件----->重点配置文件(struts.xml)----------->常量配置(还有Action)------>
Action类的编写------>action中方法调用-------->动态方法调用--------->ServletAPI获取三种方法
今天所学:
一、框架概述
二、Struts2开发快速入门
三、struts2 运行流程分析
四、 struts2 常见配置(配置文件加载顺序,struts.xml常用配置,常量配置)
五、 Action的访问(Action的三种编写方法,详细配置Action , 动态方法调用)
六、在Action中使用Servlet API
四、 struts2 常见配置
学习路径
1)、 struts.xml常量配置(配置文件顺序)、Action访问(Servlet API)、结果集 (使用Struts2 编写简单案例)
2)、 请求数据
3)、 响应页面生成
1、 struts2 配置文件的加载顺序
struts2 配置文件 由核心控制器加载 StrutsPrepareAndExecuteFilter (预处理init(),执行过滤)
init_DefaultProperties(); // [1] ---------- org/apache/struts2/default.properties
init_TraditionalXmlConfigurations(); // [2] --- struts-default.xml,struts-plugin.xml,struts.xml
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档