JavaScript对象与继承教程之内置对象(下)

Mr-Jee 2011-01-24 09:52:11
加精
排版博客:http://blog.csdn.net/cj205/archive/2011/01/24/6161968.aspx
RegExp类
现在要介绍的内容不完全与RegExp类有关,他几乎包含了正则表达式的大部分的基本知识点和含义,但是我无意扩展出来说,如果对此感兴趣,推荐些教程和好书。以下推荐绝非随机、随意。
《精通正则表达式》,该书的作者和译者都对正则表达式有十分深厚的功底和理解,同时该书也是我目前为止见到的最好的教材,而且不用担心你的英文不好,该书的中文版翻译质量绝对一流。不过,这本书正如书名一样,是给对正则有兴趣,且真心的希望有所精通的人看的。
blog.csdn.net/lxcnn。该博客绝对是当今中国数一数二的关于正则方面的精品,博主的造诣绝不含糊,且文笔和内容也十分值得大家一看的。
《正则表达式傻瓜书》,该书的作者即《精通》一书的译者,有幸翻阅了该书的样章,书中的内容深浅合宜,语言精炼,加之作者深厚的功底,书的质量不言而喻。虽然该书尚未出版,但是绝对的值得期待。
《正则表达式必知必会》,该书短小易懂,适合不大希望精通于此,仅限于能用即可的朋友阅读,该书中有许多实例,很多内容大家甚至可以拿来就用,只是受制于其篇幅,该书不大适合进阶阅读。
如果你对以上的珍品不感兴趣,那么下面的内容希望你能耐心的看下去,我会尽我所能来让你有所收获。
正则表达式通常用于查找、验证、替换字符串内容。其便捷和高效致使它渐渐的为大家所接收和喜爱,我想很多看到这里的朋友可能会有这样的感受:“每次用到的时候我都会翻一遍正则的简明教程或手册,但是总是记不住,而且当有一天翻自己所写的正则时,会看不懂。”。那么没关系,记不住是因为你没有深入的去了解和思考它,我不会穷举每一个元字符和语法结构,尽量让它变得有那么一点意思。
案例一、验证一个字符串由8到16位数字、英文字母、下划线组成。
这个验证是最基本且最常用的,验证的首要条件是限制死首和尾,即正则必须匹配整个字符串,从起始字符一直到结尾字符。先看正则
/^[\da-zA-Z_]{8,16}$/
这个正则中没有任何的空白,两个/之间的内容就是正则表达式,在JavaScript中我们有两个方式创建正则表达式对象,上面的是字面量对象,另外一个是构造函数方法,即
var reg = new RegExp("^[\\da-zA-Z_]{8,16}$","mode");
关于模式,有g、i、m三个,i表示忽略大小写,g和m会在后面深入解析,因为简单的说个一两句不会太容易理解。
两者效果几乎等效,而字面量方式简洁的许多,细心的你一定看到后一种方法中\d前多了一个\。原因是字符串中\x会被当作转义字符进行转义。
接下来看蓝色部分,^和$符号分别代表字符串的开始和字符串的结尾,但是在m模式的时候他们的含义会有不同,在m模式下,他们分别代表行首和行尾。
[]之间的是字符集合,这相当于字符的switch,[^...]则是匹配非集合。这个很好理解,在你看过的任何一篇教程中都不会漏下它,不过你一定想知道匹配不等于某个字符串的字符串该怎么办,答案是否定环视(断言、预查,以下统一称为环视),一会在介绍环视时,我们再来介绍。
{8,16}表示一个范围量词,他表示匹配之前的分组或字符重复多少次。与之相对应的还有+,*,?,{m,},{,n}等。
案例二、验证一个有数字、字母组成的8-12位字符串。必须包含至少一个数字和字母。
这个与案例一有点区别,那就是最后一句的限制,所以我们需要引入一个判断逻辑,那就是环视,先引入环视的概念和解释吧^_^。
环视从方向来说分为逆序和顺序,从逻辑来说分为肯定和否定。不过JavaScript正则表达式不支持逆序的环视,只支持顺序肯定环视、顺序否定环视。环视有个特点就是不占据所匹配字符,所以他会预先进行一次匹配,然后匹配完了之后会回溯会环视匹配之前的位置。让我们看刚才的案例吧。首先进行2次否定环视,分别排除掉纯粹由数字或由字母组成的字符串。然后再把案例一的正则表达式放进来就可以了。如下
/^(?!\d+$)(?!\D+$)[a-zA-Z\d]{8,12}$/
假设字符串为abcdefg123。那么匹配的过程如下。首先^匹配字符串开始,接着是第一个否定环视,(?!\d+$)他从'a'开始匹配,\d+即不能匹配,匹配失败,否定环视成功,接下来匹配(?!\D+$),\D表示非数字,那么从a-g都可以匹配,接下来是1,\D+匹配完成,如果没有$那么这个匹配其实也算成功,但是\D+匹配完成之后有一个$,那么$匹配1失败。否定环视成功,此时字符串位置回到a之前。开始后面的匹配。[a-zA-Z\d]{8,12}匹配abcdefg123成功,具体过程忽略,然后把句柄交给$,匹配成功。此时整个匹配成功。因为篇幅和表述能力问题,关于环视的解释不够清晰,如果至此你依然没有弄清。那么请访问过客的相关博客,真的很棒(blog.csdn.net/lxcnn)。
好吧,我们现在倒回来看一些日常应用中的一些误解导致的错误应用。
包含字母数字的字符串判断使用\w是不对的。因为\w<==>[a-zA-Z0-9_],所以使用时请注意
JavaScript中不支持逆序环视。无论是肯定还是否定,因此如果其他语言的程序员在使用js正则的时候千万要注意
.元字符在字符组中是普通字符,而不解释为任意字符的元字符,同时.元字符不匹配\n(换行符),JavaScript中没有单行模式以使.匹配\n。
在使用test、exec时一定要弄清楚g模式之后再使用。因为一旦使用了g模式,那么会保存全局的lastIndex,在你下一次进行匹配时是从lastIndex开始,而非字符串首。(感谢过客之前对此的解释和指导。有兴趣的可以看这个帖子,看过客的解释http://topic.csdn.net/u/20110117/18/e2423564-856b-4f46-8879-0c382a3e1c7a.html?93335)。在这里我把其中的例子发出来,让大家有个了解,请看:
var arr = [1,2,3,4,5];
var reg = /^\d+$/g;
for(var i = 0; i < arr.length;i++){
alert(reg.test(arr[i]));
}

js正则不支持命名分组,所以后向引用的时候要格外注意分组的序号。
js正则不支持固话分组和占有优先量词。所以如果可以的话,[^xx]+取代.+?来使用,一方面可以提高效率,另一方面可以减少错误的匹配结果。
正则效率上,new RegExp()与字面量方式创建没有区别,而使用变量保存一个正则对象和循环中使用同一个正则表达式字面量效率上也没区别(至少在大部分的浏览器上是这样的)。
在使用new RegExp()创建正则的时候,切记转义问题。new RegExp("\\d")才等价于/\d/,使用new RegExp("\d")就会得到错误的正则。
回溯和环视是2个非常重要的概念,同时也要弄清楚位置和字符的区别。时间和能力的原因,推荐移步过客的博客(http://blog.csdn.net/lxcnn/archive/2009/06/28/4304754.aspx和http://blog.csdn.net/lxcnn/archive/2009/06/28/4304651.aspx)
关于正则目前仅仅只提这些,因为后面准备了一个实战博客,那个时候会详细介绍几个实用的实例以及推导过程。下面看看在介绍字符串的时候落下的几个方法。replace/match/search,OK,我们来一个一个看吧
replace方法是提供强大的替换功能,他不仅能够替换简单的文本。还能使用一个替换函数来进行更复杂的替换,请看下面的代码:

var str = "dream on, dream on, dream on,dream yourself a dream come true.dream on, dream on, dream on,";
var reg = /dream/g;
var i = 0;
alert(str.replace(reg,function(m){
return m + (i++).toString();
}));


该方法通过一个匿名方法,将查找到的dream单词进行替换,该替换会给后面的dream单词添加一个序列。你可能会想到下面的方法:
				var str = "dream on, dream on, dream on,dream yourself a dream come true.dream on, dream on, dream on,";
var reg = /(dream)/g;
var i = 0;
alert(str.replace(reg,"$1" + i++));
可惜很遗憾你运行一下就会发现每次都是0。这点在任何可以使用委托方法(匿名方法、函数指针==)进行替换的语言中都是一样的,这个和替换机制是有关的。
replace的时候非正则替换有个缺陷,就是只会替换第一个。相当于没有加上g模式的正则。所以使用的时候一定要注意,当然在替换的时候不要忘了g模式哟。
match则是查找匹配的方法,他同样支持正则表达式作为查找模式,不过有一点需要注意,如果使用全局检索(g模式)的时候,返回的是一个数组,该数组不包括分组信息。而如果不使用全局检索(g模式)的时候,返回的是第一个匹配的文本,以及各分组的匹配内容。比如下面的代码:
		var str = "dream on, dream on, dream on,dream yourself a dream come true.dream on, dream on, dream on,";
var reg = /(dream)[^,]+/;
alert(str.match(reg));//返回数组,数组内容为dream on,dream2个元素。
reg = /(dream)[^,]+/g;
alert(str.match(reg));//返回数组,数组内容为dream on,dream on,dream on,dream yourself a dream come true.dream on, dream on,dream on几个元素。
最后一个是search,他接收一个正则对象,他返回search到的第一个匹配文本的起始位置,该方法不受g模式的影响。
var str = "dream on, dream on, dream on,dream yourself a dream come true.dream on, dream on, dream on,";
reg = /dream/g;
alert(str.search(reg));
alert(str.search(reg));
alert(str.search(reg));

该方法三次alert出的都是0。其实还有一个split方法也支持正则。不过它很简单,在这里不再提了。
RegExp有以下的属性需要记住,lastIndex是最后一次匹配的位置(还记得g模式么),source是正则表达式的源文本,而$1、$+、$$等意味著什么请可查看下手册,这里就不一一列举了。
Global对象
这里没有用类这个名词,是因为连这个关键字实际上都不存在,在JavaScript中所有的函数都是对象的方法,所以你看到的所有内置的“函数”其实都是全局对象的方法。
编码、解码方法,对uri进行编码是为了使防乱码的一个有效措施,很多后台语言也都有相对应的解码、编码方法。 encodeURI/encodeURIComponent/decodeURI/decodeURIComponent。
如果不能区分其中的区别,那么用后者代替前者吧。
escape/unescape基本上不推荐使用,用上面的方法来取代吧。
类型转换的方法也是比较常用的方法。比如Number、String方法,但是看似简单的2个方法还有真点需要补充的。Number方法不能取代parseInt和parseFloat方法,因为Number方法只能把真正的数字转换为数字(该方法用来验证一个输入是否是数字很好吧)。先看这4句代码。
					alert(Number('01x'));	//NaN
alert(Number('011')); //11
alert(String(0X11)); //17
alert(String(011)); //9

其实关于这点我在之前的博客提到过,现在再拿出来解释下。第一个如果用parseInt会得到1,而用Number强转将返回NaN。千万要使用isNaN来判断是否成功转换,而不是Number('01x').constructor == Number。因为NaN是个数字类型,但是他的意思是Not a Number。第二个返回的是11,看上去很正常啊?可是011往往可能意味着是8进制的数哦。所以字符串形式的011和数字型的011可不是一个意思哦。所以在使用数字字面量的时候注意前置0的使用。第三行返回的是17,为什么?刚才提到过0X11是16进制的数字,那么他翻译为17就意味着转换为string类型前会强转为10进制数,第三行同理。那么第三行想输出11怎么办呢,使用它:(0x11).toString('16'),8进制也一样哦。所以转换的时候要了解清楚先。
最后一个要说的是最有争议的eval方法。他的功能十分强大,但是缺点也异常明显,代码不易读、性能低下、安全性降低。所以一般情况下可以用setTimeout、setInterval、数组等方法来替代。注意在处理json的时候要把json包括在一个括号里哦:eval('(' + jsondata + ')');

至此,内置对象说完了,下一篇是自定义对象……
...全文
1926 96 打赏 收藏 转发到动态 举报
写回复
用AI写文章
96 条回复
切换为时间正序
请发表友善的回复…
发表回复
yang304401403 2011-03-15
  • 打赏
  • 举报
回复
真的深奥,看不懂,看来我只学到了皮毛。分数这么多,送点给我撒……
ximenwuji 2011-03-14
  • 打赏
  • 举报
回复
镇牛鼻
crazyafei 2011-02-15
  • 打赏
  • 举报
回复
正则?
不是说内置对象和继承么?
Linares 2011-02-14
  • 打赏
  • 举报
回复
关于字面量对象,补充一点细节问题,不要在循环中直接使用字面量:

while(/\w/g.test("abc")){document.write(RegExp.lastMatch+' ');}


是否死循环,依赖于浏览器是否对/\w/g进行优化。
IE没有优化,每次产生一个新的/\w/g对象,死循环。
Firefox有优化则没有死循环。

var re=/\w/g;
while(re.test("abc")){document.write(RegExp.lastMatch+' ');}
zhyzdl 2011-02-09
  • 打赏
  • 举报
回复
不错不错~
asklater 2011-02-08
  • 打赏
  • 举报
回复
看了一部分,标记下下次再看,内容貌似太充实了!

前台设计不得不看丫!
cdyitian 2011-02-08
  • 打赏
  • 举报
回复
正则表达式好用难精通
comewisdom 2011-02-06
  • 打赏
  • 举报
回复
记住bolg就好了哈!
沧海遗珠 2011-02-05
  • 打赏
  • 举报
回复
撕开对方加咖啡啊
comewisdom 2011-02-03
  • 打赏
  • 举报
回复
呵呵,俺正在学。。。也快出东东了。。。:)
cdcjk 2011-02-02
  • 打赏
  • 举报
回复

继续学习
voice1122 2011-02-02
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 nwao7890 的回复:]
真的是很详细,谢谢楼主。我以前就用过最基本的正则,有时间好好研究下。
[/Quote]

学习了
hongfarge 2011-01-29
  • 打赏
  • 举报
回复
太棒了
yuankai19881108 2011-01-29
  • 打赏
  • 举报
回复
先做个记号,再慢慢来看!顶LZ!
龙行-天下 2011-01-29
  • 打赏
  • 举报
回复
先做个记号,再慢慢来看!顶LZ!
lord_is_layuping 2011-01-29
  • 打赏
  • 举报
回复
[Quote=引用 55 楼 ximenwuji 的回复:]

好,支持!写得很好~~现在没时间详细看,先收藏之。
[/Quote]

收藏
lord_is_layuping 2011-01-29
  • 打赏
  • 举报
回复
接下来看蓝色部分
ximenwuji 2011-01-28
  • 打赏
  • 举报
回复
好,支持!写得很好~~现在没时间详细看,先收藏之。
  • 打赏
  • 举报
回复
javascript居然不支持分组和逆序环视 那支不支持断言和》2的环视距离?
Moon_cynthia 2011-01-26
  • 打赏
  • 举报
回复
支持。。。
加载更多回复(18)
提供典型应用案例,剖析JSP/Servret技术与Struts 2技术在Web开发中的不同 提供完整的应用案例,使读者可以深入体会SSH开发模式的精髓 所有开发工具和框架均使用目前的最新版本,紧跟技术发展的趋势 提供230个实例和4个综合案例,可以作为案头必备的查询手册 一线开发人员全力打造,分享技术盛宴! 重点内容及特色 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》介绍了Web开发中客户端技术的基础知识,包括JavaScript、CSS、AJAX等,这些技术都是Web应用中常用的客户端技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax+》讲解了JSP/S rvlet技术的基础知识,并提供了一个综合案例展示其具体应用,它们是Java Web服务端技术的基石,也是学习Java Web开发所要必须掌握的技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》重点讲解了Struts 2、Speing和HIbernate框架的基础知识和高级技术,如Sruts 2中的*、类型转换、国际化和标签等,HIbe rna{e的会话、0/R映射和事务管理等,Spring中的数据库技术与AOP等。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》特别介绍了Struts 2对AjAX的支持,还重点剖析了SSH框架的整合开发,并给出了两个综合案例来展示整合SSH框架开发Web应用。 和已经出版的同类图书相比,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》讲解由浅入深,涵盖更多内容,列举了大量典型实例具有超强的实用性,另外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》各篇独立,适合读者全面学习或对部分内容重点学习。 读者对象 有Java基础,想进一步学习SSH框架整合开发的人员 了解SSH整合开发,想进一步提高开发技术的人员 正在使用SSH整合技术开发项目,想查阅资料的人员 大中专院校的学生和老师,以及Java培训班的学员和讲师 需要一本案头必备查询手册的程序员 光盘内容 6小时多媒体体视频讲解 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》所涉及的源代码 布衣暖,菜根香,好书滋味长!清华大学出版社长期以来一直秉承为读者多出好书的宗旨,多年来为读者奉献了大量脍炙人口的精品图书。尤其在计算机图书出版领域更是形成了鲜明特色,所出版的各类计算机图书受到了广大读者的好评。本次出版的“原创经典,程序员典藏”系列图书是清华大学出版社的重点精品计算机图书,旨在帮助读者全面学习各类程序设计语言和开发工具,提高开发水平。同时也为广大程序员提供良好的技术参考,以便作为案头必备的查询手册。 内容提要 -------------------------------------------------------------------------------- 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》通过对SSH中的各种技术循序渐进地讲解,使读者尽快掌握开发基于SSH的Web程序的方法。《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》内容包括Web客户端技术、JSP/Servlet技术、Struts 2(*、类型转换、输入校验、上传和下载文件、Struts 2的各种标签、对 AJAX的支持等)、Spring(Ioc容器、装配Java Bean、Jdbc和Hibernate模板、事务管理、Spring AOP等)以及 Hibernate(会话、映射、标准查询API、HQL、事务管理、锁等)。除此之外,《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》还提供了两个完整的实例来讲解开发SSH的详细步骤和方法。通过对这两个实例的学习,读者可以对SSH开发模式有更透彻地理解和认识。SSH是目前最流行的Java Web开发技术。 《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》适合广大从事Java Web开发工作的技术人员、对SSH开发感兴趣的人员以及大专院校学生阅读,尤其是具有一定的Web开发经验的技术人员。 目录 -------------------------------------------------------------------------------- 第1篇 web开发基础篇 第1章 搭建开发环境 1.1 本书使用的软件和框架的版本 1.2 JDK6的下载与安装 1.3 Eclipse3.4 的下载与安装 1.4 MyEclipse6.5 的下载与安装 1.5 Eclipse:IDEforJavaEEDevelopers的下载与安装 1.6 Tomcat6的下载与安装 1.7 在MyEclipse中配置。Tomcat 1.8 在EclipseIDEforJavaEEDevelopers中配置Tomcat 1.9 小结 第2章 JavaWeb应用开发基础 2.1 Web技术的发展 2.2 JavaWeb技术 2.2.1 Java.Welb程序的基本组成 2.2.2 Java,Web程序的目录结构 2.2.3 JavaWeb程序的配置文件 2.3 MVC模式与MvC框架 2.3.1 JSP模型1和JSP模型2 2.3.2 Web应用程序需要的基础服务 2.3.3 MVC模式概述 2.3.4 常用的MvC框架 2.4 小结 第3章 Web开发中的客户端技术 3.1 常用的JavaScriptIDE简介 3.1.1 在MyEclipse中使用JavaScript 3.1.2 在EclipseIDEforJavaEE中使用JavaScript 3.1.3 在NetBeans中使用JavaScript 3.1.4 其他的JavaScriptIDE 3.2.1 avaScdpt语法基础 3.2.1 实例:编写第一个JavaScript程序:Greet 3.2.2 变量 3.2.3 原始类型 3.2.4 类型转换 3.2.5 函数与函数调用 3.2.6 类和对象 3.3 JavaScript高级技术 3.3.1 DOM技术概述 3.3.2 获得HTML元素的3种方法 3.3.3 实例:图像自动切换 3.3.4 正则表达式 3.3.5 实例:表格排序 3.4 CSS基础 3.4.1 CSS的基本语法 3.4.2 在Style属性中定义样式 3.4.3 在HTML中定义样式 3.4.4 在外部文件中定义样式 3.4.5 样式的继承 3.5 AJAX.基础 3.5.1 AJAX概述 3.5.2 实例:使用XMLHttpRequest获得Web资源 3.5.3 实例:使用XMLHttpRequest跨域访问Web资源 3.5.4 实例:AJAX的3种交换数据方法 3.6 小结 第4章 Servlet技术 4.1 Servlet的Helloworld程序 4.1.1 实例:在My Eclipse中编写Helloworld程序 4.1.2 实例:手工编写:Helloworld程序 4.2 Servlet基础 4.2.1 配置数据库连接池 4.2.2 数据库连接池的应用 4.2 -3实例:用doGet方法处理客户端请求 4.2.4 实例:用doPost方法处理客户端请求 4.2.5 实例:用service方法处理客户端请求 4.2.6 实例:初始化(init)和销毁(destroy)Servlet 4.2.7 实例:使用PrintWriter输出响应消息 4.2.8 实例:用ServletOutputStream显示图像 4.2.9 实例:使用RequestDispatcher包含Web资源 4.2.10 实例:使用RequestDispatcher转发Web资源 4.3 HttpServletResponse类的其他功能 4.3.1 产生状态响应码 4.3.2 设置响应消息头 4.3.3 实例:验证响应头设置情况 4.4 使用:HttpServletRequest获得请求消息 4.4.1 获取请求行消息 4.4.2 获取网络连接消息 4.4.3 获取请求头消息 4.5 处理Cookie 4.5.1 什么是Cookie 4.5.2 Cookie类中的方法 4.5.3 实例:用Cookie读写客户端信息 4.5.4 实例:用Cookie读写复杂数据 4.6 处理Session 4.6.1 什么是Session 4.6.2 HttpSession接口中的方法 4.6.3 HttpServletRequest接口中的Session方法 4.6.4 实例:通过Cookie跟踪Session 4.6.5 实例:通过重写uRL跟踪Session 4.7 Web开发的中文问题 4.7.1 Java的编码原理 4.7.2 实例:解决输出中文乱码问题 4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题 4.7.4 实例:用AJAX技术发送和接收中文信息 4.7.5 实例:在请求消息头和响应消息头中转输中文 4.8 小结 第5章 JSP技术 5.1 用MyEclipse编写第一个JSP程序 5.1.1 实例:编写显示服务器当前时间的JSP程序 5.1.2 调试JSP程序 5.1.3 改变JSP的访问路径和扩展名 5.1.4 手动发布JSP程序 5.2 JSP的运行原理 5.2.1 Tomcat如何处理JSP页 5.2.2 分析由JSP生成的Servlet代码 5.3 JSP基本语法 5.3.1 JSP表达式 5.3.2 在JSP中嵌入Java代码 5.3.3.JSP声明 5.3.4.JSP表达式语言(EL) 5.3.5 实例:用EL函数替换HTML中的特殊字符 5.3.6 JSP页面中的注释 5.4 JSP指令 5.4.1 JSP指令简介 5.4.2 page页面指令 5.4.3 include加入指令 5.5.JSP的9个内置对象 5.5.1 out输出对象 5.5.2 pageContext封装对象 5.5.3 其他的JSP内置对象 5.6 JSP标签 5.6.1 插入标签 5.6.2 转发标签 5.6.3 传参标签 5.6.4 创建:Bean标签 5.6.5 设置属性值标签 5.6.6 获取属性值标签 5.7 JSP的标准标签库(JSTL) 5.7.1 如何使用JSTL 5.7.2 条件标签 5.7.3 循环标签 5.8 小结 第6章 用Servlet和JSP实现注册登录系统 第2篇 Struts 2篇 第7章 编写Struts 2的第一个程序 第8章 Struts 2进阶 第9章 Struts 2的* 第10章 Struts 2的类型转换 第11章 Struts 2的输入校验 第12章 文件的上传和下载 第13章 国际化 第14章 Struts 2的标签库 第15章 Struts 2对AJAX的支持 第16章 用Struts 2实现注册登录系统 第3篇 Hibernate篇 第17章 Hibernate的Helloworld程序 第18章 配置Hibernate 第19章 Hibernate的会话与O/R映射 第20章 Hibernate的查询与更新技术 第21章 Hibernate的高级技术 第4篇 Spring篇 第22章 Spring的Helloworld程序 第23章 反向控制(Ioc)与装配JavaBean 第24章 Spring中的数据库技术 第25章 Spring的其他高级技术 第5篇 综合实例篇 第26章 Struts 2与Hibernate、Spring的整合 第27章 网络硬盘 第28章 论坛系统

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧