仓酷云

标题: JAVA网站制作之servlet2.3(续) [打印本页]

作者: 仓酷云    时间: 2015-1-18 11:26
标题: JAVA网站制作之servlet2.3(续)
最后就是我对java的几点希望:首先是IDE工具,有人说java已经很好了,有jbuilder,eclipse,netBeans等等,但是我认为如果java想超越.net,那么他首先要解决的就是IDE工具的整合。servlet标志库
新的标准中几个有关标志库的观点失掉了廓清,并且标准的很多中央作了收拾。关于标志库,新的标准另有一个主要的增补――迭代(iterator)标志。在以后的JSP1.1标准中,假如标志要实行“轮回”它就必需是一个BodyTag。但是,标志大概不用处置它的标志体,界说BodyTag招致容器天生效力低下的代码(setBodyContent()和其他一些办法仍将被挪用)。为办理这个成绩,JSP1.2引进了迭代标志。

JSP1.2标准引进了两个新的常量,即EVAL_BODY_BUFFERED和EVAL_BODY_AGAIN。EVAL_BODY_BUFFERED作为一个具有更明白寄义的名字代替EVAL_BODY_TAG,二者的值是一样的。它意味着之前编写的代码仍然能够运转。别的,它也意味着如今完成doStartTag()时应当前往EVAL_BODY_BUFFERED而不是EVAL_BODY_TAG。

EVAL_BODY_AGAIN也有与EVAL_BODY_BUFFERED一样的值,但它的名字一样具有更明白的寄义。当标志想要让容器迭代(即重复实行)它的标志体时doAfterBody()办法应当前往这个值。

javax.servlet.jsp.IterationTag是JSP1.2标准界说的新接口,要界说迭代举动就必需完成这个接口。IterationTag接口扩大SimpleTag并增添了一个doAfterBody()办法,BodyTag如今从IterationTag而不是SimpleTag承继。

完成迭代时,在BodyTag大概IterationTag中,doAfterBody()办法应当前往EVAL_BODY_AGAIN以强迫容器再次实行标志,前往SKIP_BODY则停止迭代。为IterationTag编写的代码很复杂,如Listing5所示。


【Listing5】

publicclassSimpleIteratorextendsTagSupportimplementsIterationTag{
intloopCount;
}
publicvoidsetLoopCount(intloopCount){
this.loopCount=loopCount;
}

publicintdoStartTag(){
returnEVAL_BODY_INCLUDE;
}

publicintdoAfterBody(){
while(--loopCount>0)returnEVAL_BODY_AGAIN;
returnSKIP_BODY;
}
}

  doStartTag()前往EVAL_BODY_INCLUDE,doAfterBody()前往EVAL_BODY_AGAIN以完成迭代,迭代完成时则前往SKIP_BODY。注重以后还没有与TagSupport、BodyTagSupport相配的IterationTagSupport类,不外这其实不会真正带来甚么贫苦。

  标志库确当前版本撑持十分无限的正当性查验机制。TagExtraInfo类内里能够界说一个isValid办法,这个办法在页面编译的时分被挪用,你能够用它反省属性名字、值、范例等。JSP1.2标准供应了更壮大的正当性查验机制。你能够界说一个查验器类,在它内里界说一个办法,这个办法经由过程参数失掉包括标志库内一个大概多个标志的全部页面的XML形貌,拜见Listing6的实例。这个办法在编译页面的时分被挪用(它是一次性的挪用。也就是说,你只支付一次挪用的价值,而不是每次用户哀求页面的时分都要挪用)。


【Listing6】

publicclassSimpleIteratorValidatorextendsTagLibraryValidator{

publicStringvalidate(Stringprefix,Stringuri,PageDatapage){
java.io.InputStreamis=page.getInputStream();
booleanb=validateJSP(is);

//统统一般
if(b)returnnull;
elsereturn"SomeValidationError";
}
}

Listing6的查验器扩大了javax.servlet.jsp.tagext.TagLibraryValidator,并且它掩盖了validate()。validate()办法的参数中传进了待查验标志的前缀和相干的URI。第三个参数PageData同意你会见一个InputStream,这个InputStream包括XML格局的JSP页面。假如统统一般,validate办法前往null;假如查验不克不及经由过程,则它前往一个毛病字符串。注重这是一个在页面编译时呈现的毛病,它只大概在开辟阶段呈现。

新的标准还触及了其他一些成绩。比方,JSP1.2标准终极将界说一个JSP页面的XML形貌。JSP页面的XML形貌不但对正当性查验很有效(如下面例子所示),并且关于工具软件供给商来讲也很有效,由于它简化了JSP编纂器的开辟。

新的JSP标准还同意我们把监听器界说成标志,而不是本文后面所呈现的自力的类。JSP标准如今包括了一章关于当地化的内容,比方,它界说了为页面指定字符编码(Encoding)体例的才能。

新的标准中还到场了一个TryCatchFinally接口。这个接口同意标志在呈现料想不到的非常时更好地举行资本清算事情。

JSP1.2和Servlet2.3标准完成了两个方针。它们廓清了以后标准中简单搅浑的几个成绩,增添了一些开辟者必要的新功效。次要的变更包含监听器、过滤器和经由修正的标志库模子。新的标准放在http://java.sun.com/aboutJava/communityprocess/first/jsr053/index.html供任何人浏览和评断,你无妨找来一读,看看它是不是可以使你的事情加倍轻松、复杂。
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。
作者: 因胸联盟    时间: 2015-1-21 06:31
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者: 老尸    时间: 2015-1-24 14:40
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者: 小魔女    时间: 2015-1-25 15:14
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 金色的骷髅    时间: 2015-1-28 12:57
Java是一种计算机编程语言,拥有跨平台、面向对java
作者: 柔情似水    时间: 2015-1-30 12:53
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者: 小女巫    时间: 2015-2-1 10:16
是一种使用者不需花费很多时间学习的语言
作者: 若相依    时间: 2015-2-7 03:09
是一种将安全性(Security)列为第一优先考虑的语言
作者: 谁可相欹    时间: 2015-2-8 01:44
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 灵魂腐蚀    时间: 2015-2-22 16:56
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
作者: 第二个灵魂    时间: 2015-2-23 12:55
是一种语言,用以产生「小应用程序(Applet(s))
作者: 山那边是海    时间: 2015-3-7 09:00
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 爱飞    时间: 2015-3-11 18:05
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
作者: 只想知道    时间: 2015-3-19 05:53
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者: 小妖女    时间: 2015-3-27 08:09
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2