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