|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最后就是我对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供任何人浏览和评断,你无妨找来一读,看看它是不是可以使你的事情加倍轻松、复杂。
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。 |
|