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

合集下载

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学习笔记(部分)

1、namespaece(最好用模块的名字命名)Namespace 为空时,用于处理其他package不能处理的全部的action2、Package 用于区分重名的情况3、copy项目的方法及注意事项修改它的启动项引入别人的项目的方法4、action4`1修改文件的默认编码4`2每次访问action都重新new出一个新的对象,不存在同步的问题执行过程4`3Action 继承ActionSupport5、路径:获取系统绝对路径<% String context = request.getContextPath(); %><%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>使用绝对路径6、ActionMethod动态调用方法7、ActionWildcard通配符使用通配符,将配置量减到最低约定优于配置8、数值传递ActionAttrParamInputDomainModelDrivenModel过程9、中文问题 2.1.6.的bug不能解决中文问题10、11、value stack值栈< s:property value=“Name”/>取值栈中的数值如:< s:property value=“error”/>< s:property value=“[0]Propertyvalue是一个map,name就是key name is error 就是value 13、访问页面元素访问Stack Context中的元素14、include,模块包含15、认Action (好处:访问不存在时自动跳转带默认页)Default-action-ref默认action引用16、result类型1)默认是dispatcher 常用服务器端跳转2)Rdiect 只能是视图不能是action 客户端跳转,最后显示jsp3)Chain ---forwordaction action前不可以加”/”action之间的跳转,最后显示action4)RedirectAction action跳转,最后显示jsp服务器断的跳转:17、Global_ResultExtends =“要继承的包名“Result name属性:18、取value stack中的值动态绑定的。

struts2学习笔记

struts2学习笔记
(2).Action类实现RequestAware,SessionAware,ApplicationAware这三个接口
(3).
HttpServletRequest request=ServletActionContext.getRequest();//得到request
(4).实现ServletRequestAware等
国际化实现中英文切换:
两个超链接:<s:a action="changeLanguage?flag=zh">中文</s:a>
<s:a action="changeLanguage?flag=en">英文</s:a>
ChangeLanguageAction中内容:
public class ChangeLanguageAction {
{
struts.i18n.encoding=UTF-8 //设置编码格式
}
6.重定向跳转也可传Action中的属性值
<param name="username">${ername}</param>
7.struts2 中设置request ,session,application值
locale=;
context.setLocale(locale);
}
context.getSession().put("WW_TRANS_I18N_LOCALE",locale);
//必须将此WW_TRANS_I18N_LOCALE存放在session中
return "input";
}
}
11.struts2 文件上传下载,下载时需配置如下

struts2学习笔记

struts2学习笔记

1.包头的设置name是struts的包,与Java的包名效果类似,但不是按项目中SRC中包名设置的。

namescape是该包的命名空间。

将作为访问该报Action的路径的一部分。

默认命名空间为namescape=””;假设form 表单提交给helloworld的action ,其action=”/test/helloworld”exctends是表示该包继承的其他包struts_default是任何包都必须继承的包。

否则无法使用struts的核心功能,比如参数上传到action,文件上传,数据校验等。

abstract=”true”定义为抽象包,不得包含Action。

2.action的查找顺序(1)寻找namespace为path1/path2/path3/的包,有这个包:寻找test的Action有这个action:执行没有这个action:寻找namespace为””的命名空间(默认命名空间)是否有这action,没有的话提示找不到action没有这个包:寻找namespace为path1/path2/的包重复(1)步骤。

3.action的默认属性4.Action中各种result的转发类型dispatcher(默认类型)redirect(重定向)redirectAction (重定向到新的Action)plainText (显示原始文件内容)result转发还可包含参数,该参数取自Action中的属性。

例:<action name=”login” class=”xxxx.xxx.xxx.sdsds”><result name=”sucess”> /aaa.jsp?username=${ssss}</result></action>其中ssss是login这个Action中所必须具有的属性redirect书写格式1.<result name=”sucess” type=”redirectAction”>login</result>该写法只能访问位于同一包中的Action;2. <result name=”sucess” type=”redirectAction”><parma name=”actionname”>login</parama><parma name=”namespace”>/xxxxx</parama></result>该写法可访问位于其他包的ActionplainText书写格式1.<result type=”plainText”>/login.jsp</result>2. <result type=” plainText”><parma name=”location”>/login.jsp</parama><parma name=”charSet”>UTF-8</parama></result>全局转发只能在包内定义全局转发。

struts2学习笔记

struts2学习笔记

一、Struts2的一些优点:1、struts2没有像struts1一样跟servletAPI和struts1API有紧密的耦合2、struts2提供了拦截器,利用拦截器可以进行AOP编程,实现权限拦截等功能。

3、struts提供了类型转换器,我们可以把特殊的请求参数转换成需要的类型,4、struts2提供支持多种表现层技术,如:JSP、freeMaker、velocity等。

5、struts2的输入校验可以对指定方法进行校验,解决了struts1长久之痛。

6、提供了全局范围、包范围和Action范围的国际化资源文件管理实现。

二、Struts2的开发环境搭建:1、寻找开发struts2应用以来的jar文件,至少需要的六个jar文件。

2、编写struts2的配置文件。

3、Struts2在web中的启动。

当filter被读取的时候就会启动配置文件三、struts2中配置的包介绍Struts-default中定义了struts中的一些核心功能,比如拦截器,用来实现文件上传,和数据验证。

四:Action名称的所搜顺序:Htpp://localhost:8080/struts/test/helloword,在默认命名空间的情况下,或者是命名空间为空的情况下可以这样访问Htpp://localhost:8080/struts/test/path2/path1/helloword,五:Action中的各项默认值:如果没有给action配置class,会默认为actionsupport,如果没哟配置method方法,会默认配置action中excute方法,如果没有配置result,也会默认为success。

六:struts视图研究(result各种转发类型):七、Action属性注值当数据经常发生变化时就会采用此种方法八、指定需要struts2处理的请求后缀:默认使用的是.action后缀访问Action,其实可以通过struts.action.extension进行修改的。

马士兵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课堂笔记1

Struts2课堂笔记1

一:框架是一组用于解决特定问题的类和接口的集合,通俗的讲,就是某种应用的半成品,供开发者完成自己的系统,在日常的开发过程中使用成熟的框架,就相当于让别人完成一些基础性的工作,框架一般是成熟的,稳定的,扩展性良好随着Web开发技术的日益成熟,在Web领略出现了一些成熟的优秀的框架,开发者可以直接使用它们,例如:Struts2就是一个开源的,基于MVC的优秀Web应用框架二:struts2简介:Struts 2是Struts的下一代产品,是在struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。

其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。

Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。

虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2只有很小的变化。

三:struts2执行流程一个请求在Struts2框架中的处理大概分为以下几个步骤1) 客户端初始化一个指向Servlet容器(例如Tomcat)的请求2) 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)3) 接着StrutsPrepareAndExecuteFilter被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action。

4) 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy。

5) ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类。

尚学堂-马士兵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学习笔记
Байду номын сангаас
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

尚学堂马士兵坦克大战视频教程笔记

尚学堂马士兵坦克大战视频教程笔记
如果不能理解透彻就照抄本版本代码不影响对j2se的练习功效每一次调用repaint方法repaint方法先调用update方法update方法再调用paint方法在update方法处将之截住写自己的代码双缓冲工作原理
目录
目录 ..................................................................................................................................................1 坦克大战视频教程 ..........................................................................................................................1
1. 项目需求.......................................................................................................................1 2. 学习方法.......................................................................................................................1 3. 做这个项目是为了,不是为了...................................................................................1 4. 项目的注意事项...........................................................................................................1 5. 版本 0.1:产生一个窗口.............................................................................................2 6. 版本 0.2:添加关闭窗口的事件处理.........................................................................2 7. 版本 0.3:画出代表坦克的实心圆.............................................................................3 8. 版本 0.4:让坦克动起来.............................................................................................4 9. 版本 0.41:使用双缓冲消除闪烁现象.......................................................................6 10. 版本 0.5:代码重构.....................................................................................................8 11. 版本 0.6:让坦克听众我们的指挥.............................................................................9 12. 版本 0.7—重要版本:将坦克单独包装成类 ...........................................................12 13. 版本 0.8:让主战坦克向 8 个方向行走(1).........................................................15 14. 版本 0.9:让主战坦克向 8 个方向行走(2).........................................................19 15. 版本 1.0:添加子弹类...............................................................................................20 16. 版本 1.1:根据主战坦克的方向和位置,打出子弹 ...............................................22 17. 版本 1.2:为了解决坦克停下也能打出炮弹的问题—画出炮筒 ...........................29 18. 版本 1.3:打出多发炮弹...........................................................................................33 19. 版本 1.4(Debug 的运用):解决炮弹不消亡的问题.................................................40 20. 版本 1.5:画一辆敌人的坦克...................................................................................51 21. 版本 1.6:将敌人坦克击毙.......................................................................................58 22. 版本 1.7:加入爆炸...................................................................................................61 23. 版本 1.8:添加多辆坦克...........................................................................................63 24. 版本 1.9:让敌军坦克更加智...................................................................................64 25. 版本 2.0:添加两堵墙...............................................................................................65 26. 版本 2.1:坦克不能互相穿越...................................................................................67 27. 版本 2.2:超级炮弹...................................................................................................68 28. 版本 2.3:主战坦克的生命值...................................................................................68 29. 版本 2.4:图形化表示主战坦克的生命值...............................................................69 30. 版本 2.5:添加“血块”...........................................................................................69 31. 版本 2.6:最后的修正(最终代码) ............................................................................71

struts2学习笔记

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 扔到一旁去了。

Struts2学习笔记

Struts2学习笔记
<result name="success">/WEB-INF/page/hello.jsp</result>
</action>
</package>
要访问other()方法,可以通过这样的URL访问:/test/helloworld_other.action
9.OGNL
Struts2将应用范围里的数据以及Action处理的数据都存储在一个区域里。在Struts2中叫做值栈,valueStack。
OGNL就是从值栈中取出自己数据,并在某些条件下进行数据过滤和计算的表达式语言。先入后出。
OGNL中如果搜索的数据不是值栈里存储的数据,而是其他对象,特别是Struts2的ActionContext中的对象,则在访问
这些对象的时候,前面要加上“#”。
价格小于50元的建材
<s:iterator value="materials.{?#this.mainbid<50}">
<s:property value="materialName" />建材的价格是<s:property value="materialValue" />元!
</result>
当多个action中都使用到了相同视图,这时我们应该把result定义为全局视图。struts1中提供了全局forward,struts2中也提供了相似功能:
<package ....>
<global-results>
<result name="message">/message.jsp</result>

struts2课堂笔记(第一天)

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

Struts2学习笔记

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模式符合JAVAEE三层结构的三层结构出自 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 1asm.* 3 jar 处理字节码信息 javassist.jar 1 代理相关 freemarker 1 jar 图形模板引擎开发strutrs2 基包导入web 工程!感谢您的阅读,祝您生活愉快。

struts2学习笔记

struts2学习笔记
<result name="success">success.jsp</result>
<result name="fail">fail.jsp</result>
</action>
</package>
</struts>
2.6 部署、运行项目
第三章 访问Servlet API
HttpServletRequest/HttpSession/HttpContext
struts2获取的Servlet API的三个对象都是Map
3.1 与Servlet API 解耦访问
com.opensymphony.xwork2.ActionContext
通过ActionContext类获取Servlet API 对象
构造3个Map对象替代这三种对象
3.1.1 public Object get();方法
ActionContext ac=ActionContext.getContext();
Map request=(Map)ac.get("request");
2.1.2 public Map getSession();
private String username="";
private String password="";
public String execute(){
if(){
return "success";
}else{
return "fail";

马士兵-J2SE第二章-基础语法-个人笔记

马士兵-J2SE第二章-基础语法-个人笔记

马士兵-J2SE第二章-基础语法-个人笔记第二章基础语法一、标识符1.J ava对各种变量、方法和类等要素命名时使用的字符序列成为标识符。

2.命名规则:a)以一个字母、下划线(_)或美元符号($)开始b)由一个字母、下划线(_)或美元符号($)或数字组成c)是大小写区别对待的, 且无最大长度二、关键字关键字对Java技术编译器有特殊的含义,它们可标识数据类型名或程序构造(construct)名。

表2-1列出了使用在Java编程语言中的关键字。

abstract do implements private throwboolean double import protected throwsbreak else instanceof public transientbyte extends int return truecase false interface short trycatch final long static voidvolatileclass float new switch whilecontinue for null synchronizeddefault if package this三、常量a)J ava的常量值用字符窜表示,区分为不同的数据类型i.整形:39实型3.14 字符常量’a’字符串常量:”hellworld”四、变量a)是程序中最基本的存储单元,包括变量类名,变量类型和作用域b)每个变量都属于特定的数据类型,使用前必须声明,让后赋值,才能使用c)程序执行过程重要!!!01_标识符_关键字_数据类型_1.avi五、变量分类a)按被声明的位置:i.局部变量:方法或语句块内部(方法的参数叫局部变量)(小)ii.成员变量:方法外部、类的内部(大)iii.注意:类外面(与类对应的大括号外面)不能有变量的声明b)按所属的数据类型:i.基本数据类型变量ii.引用数据类型变量六、数据类型划分 4类8种1.b oolean只取true或false2.c har 字符型(单引号),采用Unicode编码,每个字符占两个字节(可以用十六进制编码形式表示);a)c har c1 = ‘\u0061’;b)c har c2=’\n’; 转移字符’\’3.整数型:有固定的表数范围和字段长度a)十进制 12c)十六进制要求0X或0x开头 0x12d)默认为int型i.4.浮点型:有固定的表数范围和字段长度a)十进制 3.14b)科学计数法:2.14e2c)默认为double 要声明float 必须在数字后面加f或者Ffloat f = 12.3fd)七、基本数据类型转换a)b oolean类型不可以转换为其他数据类型,其他类型也不能转换为booleanb)整形,字符型,浮点型的数据在混合运算中相互转换:i.容量小的自动变为大的,byte,short,char->int->long->float->doubleii.byte,short,char之间不能转哈,先转换为intc)容量大的变为小的时,要加上强制转换符,会造成精度降低d)多种类型数据混合运算,系统先将所有数据自动转换为最大的那中,然后计算例子TestConvert.java TestConvert2.java八、格式a)大括号对齐b)遇到{缩进,Tab / Shift + Tabc)程序块之间加空行d)并排语句之间加空格e)运算符两侧加空格i.有特定条件f){前面有空格g)成对编程九、运算符a)算术:+ , - , * , / , % , ++ , --c)逻辑: ! , & , | , ^ , && , ||d)位: & , | , ^ , ~ , >> , << , >>>e)赋值 : =f)扩展赋值: += , -= , *= , /=g)字符串连接: +1.++(--)在后时先取值在运算2.++(--)在前时先运算后取值inti1=1,i22; ii.inti=(i2++); iii.i1++2i) iv.则:i=2i2=22=223.逻辑运算符i. ! 非 , & 与 , | 或 , ^ 异或 , && 短路与 , || 短路或ii.4.赋值运算与扩展赋值运算5.字符串连接: +i.对字符串进行连接ii.+ 运算符两侧的操作数中只要有一个是字符串(String ) 系统会自动将一个操作数转换为字符串iii.当打印时,无论什么类型,都自动转换为字符串进行打印十、表达式a)符合一定语法规则的运算符和操作数的序列b)顺序:按照运算符的优先级从高到低,优先级相同的,按照事先约定的结合方向进行。

Struts2课堂笔记

Struts2课堂笔记

Struts2部分学习笔记讲师:梁建全liangjq@目录Day01 (5)一、前言 (5)1、为什么要学习Struts框架 (5)2、如何学习Struts框架 (5)二、MVC在JavaWeb程序的使用 (5)1、什么是MVC? (5)2、为什么使用MVC? (5)3、MVC在JavaWeb中的实现 (5)a、原ShoppingCart程序就是一个MVC结构实现 (5)b、ShoppingCart程序虽然基于MVC,但结构还有一些问题 (5)4、Struts2的主要工作流程 (5)三、Struts2框架的历史 (6)四、Struts2框架基本使用 (6)1、Struts2使用步骤 (6)a、下载发布包,将核心包导入web工程 (6)b、配置Struts2控制器,在src下添加struts.xml、Struts2控制器采用的是StrutsPrepareAndExecuteFilter组件实现。

(6)c、根据请求编写Action,DAO,Entity等组件 (6)2、HelloWord示例 (6)Day02 (7)一、Struts2使用基本规则 (7)1、web.xml配置 (7)2、Action编写规则 (7)3、struts.xml中的Action配置 (7)二、实现一个列表显示功能 (7)1、开发步骤 (7)三、OGNL表达式 (8)1、什么是OGNL (8)2、OGNL工作原理 (8)3、OGNL表达式语法 (8)Day03 (9)一、Struts2框架Action组件的核心应用 (9)1、Action组件基本原理 (9)2、如何在Action中使用request,session,application等对象 (9)3、Action属性注入 (10)4、如何利用一个Action处理多个请求 (10)Day04 (10)一、Result组件原理 (10)1、Result组件的作用 (10)2、Result组件实现规则 (10)3、Result组件的使用 (11)二、常用的几种Result组件 (11)1、JSP响应 (11)2、Action响应 (12)3、流响应 (12)4、JSON响应 (12)Day05 (13)一、Struts2标签 (13)1、通用标签 (13)2、表单标签 (13)二、拦截器组件 (13)1、拦截器组件规则add.action(表单数据)--->params (13)a、拦截器组件的作用(工作流程) (13)b、拦截器组件的使用规则 (14)2、掌握自定义拦截器的使用 (14)3、内置拦截器的使用 (15)Day01一、前言1、为什么要学习Struts框架Struts框架是MVC设计模式的实现,基于Struts开发可以简化开发难度,提高开发效率。

尚学堂Struts2_02

尚学堂Struts2_02

<param name=“excludeMethods”>m1,m2</param> <param name="includeMethods">m2</param>
</interceptor-ref> </action> 如果不指定excludeMethods和includeMethods,则所有方法都会被截拦器 截拦. 如果方法在excludeMethods和includeMethods都配置了,则 includeMethods取胜. 如果需要过滤多个方法,方法名之间用逗号隔开.
版权所有:尚学堂科技
尚学堂
手把手教程
Struts+Hibernate+Spring
HttpServletRequest
HttpServletResponse
核心控制器
Intercepter1
Intercepter2
Intercepter3
Action
Result
版权所有:尚学堂科技
尚学堂
手把手教程
版权所有:尚学堂科技
尚学堂Βιβλιοθήκη 手把手教程Struts+Hibernate+Spring
Struts2拦截器——工作原理
拦截器的执行过程是一个递归的过程,越是位于前面的拦截器越被先执行 ,但也是越晚退出。因此,拦截器的调用处理形成了“先进后出”的堆栈 的模式,因此也叫拦截器栈。
版权所有:尚学堂科技
尚学堂
Struts+Hibernate+Spring
Struts2拦截器——作用及意义 早期MVC框架将一些通用操作写死在核心控制器中,致使框 架灵活性不足、可扩展性降低 Struts 2将核心功能放到多个拦截器中实现,拦截器可自由选 择和组合,增强了灵活性,有利于系统的解耦 截拦器是Struts2中最重要的概念之一,是Struts2灵魂。 Struts2中有80%的功能都通过截拦器实现 提高更高层次的解耦,无须侵入框架本身 便可以添加新的功 能.

尚学堂科技 马士兵 Struts 学习小结 v

尚学堂科技 马士兵 Struts 学习小结 v
3、如何导入项目? 1)右击选择 Import…
2)必须勾选“Copy projects into workspace”
3) 唯一可能出现的问题:拷贝项目的 JRE System Library 的存储路径,重新 Configure Build Path 即可 建立第 3 个 Struts2 小项目:Struts2_0300_Action 1、关于 Action 的详述 1)<action> 如果不包含 class 属性,则会自动默认调用
/Struts2_0100_Introduction/WebRoot/WEB-INF/lib 目录 3. 修改 web.xml 文件如下(从 struts-2.1.8.1\apps\struts2-blank-2.1.8.1\WEB-INF\web.xml 拷贝 的):
4. 修改 struts.xml 文件如下:
%> <head> <!-- 设置base标签,当前页面的所有超链接前面都会自动加上basePath --> <base href="<%=basePath%>" /> </head> <body> <a href="index.jsp">index.jsp</a> </body>
建立第 5 个 Struts2 小项目:Struts2_0500_ActionMethod 1、可以为 Action 指定 method 属性,而 class 属性的类 UserAction 中只有一个 add ()方法
建立第 1 个 Struts2 小项目:Struts2_0100_Introduction 1. 拷贝 struts-2.1.8.1\apps\struts2-blank-2.1.8.1\WEB-INF\classes\struts.xml 至项目的源文件夹
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Action 总结..................................................................................................................................................................... 18 02 Struts 2-Result......................................................................................................................................................................................... 19 一、 Result 类型 (type)............................................................................................................................................................ 19 二、 三、 四、 五、 六、 全局结果集(Globle Result)........................................................................................................................................... 20 动态的结果集(dynamic result)....................................................................................................................................... 21 带参数的结果集................................................................................................................................................................... 21 Result 总结.........................................................................................................................................................................22
Struts2 学习笔记---wjt276源自[二○一○年一月五日 完]
目录
01 Struts 2-Action............................................................................................................................................................................................5 一、 二、 三、 四、 五、 六、 七、 八、 九、 Struts 作用:....................................................................................................................................................................... 5 搭建 Struts2 的运行环境:................................................................................................................................................ 5 Namespace.............................................................................................................................................................................. 6 <package>标签...................................................................................................................................................................... 6 Action.................................................................................................................................................................................... 6 路径问题的说明.................................................................................................................................................................... 8 Action 的动态调用方法....................................................................................................................................................... 8 Action 通配符(wildcard)的配置....................................................................................................................................... 9 Action 的属性接收参数......................................................................................................................................................10 1、 在 Action 添加成员属性接受参数............................................................................................................................. 10 2、 3、 十、 十一、 十二、 一、 二、 三、 四、 十三、 十四、 十五、 域模型(Domain Model) ............................................................................................................................................ 10 ModelDriven 接收参数................................................................................................................................................ 11 Action 属性接收参数中文问题.......................................................................................................................................... 12 简单数据验证.................................................................................................................................................................. 12 访问 Web 元素.................................................................................................................................................................. 14 方法一:ActionContext 方式............................................................................................................................. 15 方式二:Ioc( 控制反转)—推荐使用....................................................................................................................... 15 方式三:获取原类型................................................................................................................................................. 16 方式四:获取原类型-控制反转............................................................................................................................... 17 Struts2 配置文件模块化包含(include)..................................................................................................................... 17 默认的 Action................................................................................................................................................................. 18
相关文档
最新文档