仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 889|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA网页设计WebWork2源码剖析续三

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:48:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。web
最初我盘算剖析一下WebWork2.x中的输出校检部分,校检数据一般包含客户端反省和服务端反省两种,在WebWork2.x中都有很好的撑持,起首来剖析服务端,服务真个校检类全体来自于com.opensymphony.xwork.validator包,服务真个一切校检事情都是经由过程一个ValidationInterceptor拦阻器来举行拦阻的,以是说Interceptor在WebWork2.x中的位置就相称于我们心中的“神”,他是用来挽救统统的,有点夸大了,哈哈!



上面请浏览ValidationInterceptor拦阻器的代码







publicclassValidationInterceptorextendsAroundInterceptor{



protectedvoidafter(ActionInvocationdispatcher,Stringresult)throwsException{



}



//猎取Action,然后挪用ActionValidatorManager来举行反省事情



protectedvoidbefore(ActionInvocationinvocation)throwsException{



Actionaction=invocation.getAction();



Stringcontext=invocation.getProxy().getActionName();







ActionValidatorManager.validate(action,context);



}



}



别走开,接着看ActionValidatorManager,因为这个类有点庞大,只做次要的剖析,其他则疏忽



publicclassActionValidatorManager{



protectedstaticfinalStringVALIDATION_CONFIG_SUFFIX="-validation.xml";







//用于将校检信息缓存起来



privatestaticfinalMapvalidatorCache=Collections.synchronizedMap(newHashMap());



privatestaticfinalMapvalidatorFileCache=Collections.synchronizedMap(newHashMap());



privatestaticfinalLogLOG=LogFactory.getLog(ActionValidatorManager.class);







//创建一个DelegatingValidatorContext,用于猎取设置资本,如:毛病提醒信息等



publicstaticvoidvalidate(Objectobject,Stringcontext)throwsValidationException{



ValidatorContextvalidatorContext=newDelegatingValidatorContext(object);



validate(object,context,validatorContext);



}



//



publicstaticvoidvalidate(Objectobject,Stringcontext,ValidatorContextvalidatorContext)throwsValidationException{



//创建一个校检列表



Listvalidators=getValidators(object.getClass(),context);



SetshortcircuitedFields=null;



//遍历这个列表



for(Iteratoriterator=validators.iterator();iterator.hasNext();){



Validatorvalidator=(Validator)iterator.next();



validator.setValidatorContext(validatorContext);







//挪用校检类,注重一切的自界说校检类必需从validator接口中完成



validator.validate(object);



}







}







至于客户端校检,因为操纵全体来自于com.opensymphony.webwork.validators包,其他的一切校检类都从ScriptValidationAware接口下承继,因为工夫的干系我在这里不做剖析了,列位若有乐趣,本人往研讨吧!







实在WebWork2.x内里另有良多相干的细节挪用,在此我不克不及逐一形貌,列位假如有乐趣的话,也无妨来看看源码。







明天就到这里了啊,至于WebWork2.x的标签我就不想看了,不晓得是甚么缘故原由我就是不太喜好标签啊,下个JavaWeb使用我必定用WebWork2.x来举行开辟,这么好的一个Framework不必太惋惜了啊!











Email:zhuam@StudyJava.com



zhuaming@Gmail.com





Blog:http://blog.csdn.net/zhuam



java主要分三块,j2se:java的基础核心语言。j2me:java的微型模块,专门针对内存小,没有持续电源等小型设备。j2ee:java的企业模块,专门针对企业数据库服务器的连接维护。
山那边是海 该用户已被删除
沙发
发表于 2015-1-21 15:22:16 来自手机 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
板凳
发表于 2015-1-25 11:57:15 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
乐观 该用户已被删除
地板
发表于 2015-2-2 21:56:35 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
深爱那片海 该用户已被删除
5#
发表于 2015-2-5 02:30:26 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
飘灵儿 该用户已被删除
6#
发表于 2015-2-5 22:01:55 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
小女巫 该用户已被删除
7#
发表于 2015-2-6 13:20:11 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
海妖 该用户已被删除
8#
发表于 2015-2-12 20:23:19 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
爱飞 该用户已被删除
9#
发表于 2015-3-3 06:42:18 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
愤怒的大鸟 该用户已被删除
10#
发表于 2015-3-6 21:19:09 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
分手快乐 该用户已被删除
11#
发表于 2015-3-13 00:07:23 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
再见西城 该用户已被删除
12#
发表于 2015-3-16 23:22:38 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
若天明 该用户已被删除
13#
发表于 2015-3-17 03:11:17 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
小魔女 该用户已被删除
14#
发表于 2015-3-23 17:23:15 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
冷月葬花魂 该用户已被删除
15#
发表于 2015-3-24 15:42:00 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
小妖女 该用户已被删除
16#
 楼主| 发表于 2015-4-9 00:42:38 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
柔情似水 该用户已被删除
17#
发表于 2015-4-21 17:30:44 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
因胸联盟 该用户已被删除
18#
发表于 2015-4-22 05:03:11 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
灵魂腐蚀 该用户已被删除
19#
发表于 2015-5-1 13:12:10 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
活着的死人 该用户已被删除
20#
发表于 2015-5-6 03:49:39 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 07:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表