|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
net程序员的大部门代码都靠控件拖拽完成的,虽然java也有,但是无论从美观和速度上都没发和.net比。java程序员都是代码完成的,所以java程序员常戏称.net程序员是操作员,呵呵。jsJavaServerTMPages(JSP)手艺为我们供应了一种创建静态网页的复杂办法,并且也简化了机关web程序的事情。本文从一个开辟职员的角度对JSP手艺做了一个周全先容(并供应了一些JSP实例程序)。
媒介
JavaServerPages手艺可让web开辟职员和计划职员十分简单的创立和保护静态网页,出格是今朝的贸易体系。作为JavaTM手艺的一部分,JSP可以疾速开辟出基于web、自力于平台的使用程序。JSP把用户界面从体系内容平分分开来,使得计划职员可以在不改动底层静态内容的条件下改动全部网页结构。
那末甚么是JavaServerPage呢?复杂的说,一个JSP网页就是在HTML网页中包括了可以天生静态内容的可实行使用程序代码。此使用程序大概包括JavaBeanTM,JDBCTM对象,EnterpriseJavaBeanTM(EJB)和RemoteMethodInvocation(RMI)对象,一切的部分都能够十分简单的从JSP网页上会见到。比方,一个JSP网页能够包括HTML代码所显现的静态文本和图象,也能够挪用一个JDBC对象来会见数据库;当网页显现到用户界面上今后,它将包括静态HTML内容和从数据库中找到响应的静态信息。
在JSP网页中,要把用户界面和使用程序分隔能够思索在网页计划职员和开辟职员之间实行一个十分便利的受权义务。它也同意开辟职员往创建天真的代码,从而十分简单的举行更新和反复使用。因为JSP网页可以依据必要主动举行编译,web计划职员不必从头编译使用程序逻辑就能够改动表述代码。这也使得JSP与Javaservlet(它是JavaSeverPages功效的扩大)比拟成为一种能够更天真天生静态web内容的办法。
JSP和Servlet
假如你已用过Javaservlet,那末你就会晓得servlet可让你创建静态天生的网页,而网页中包括有从服务器方的Java对象中所取得的数据。可是你也得晓得servlet天生网页的办法就是在Java类中嵌进HTML标签和表述代码。这就意味着改动表述代码必要修正和从头编译servlet源文件。由于计划HTML页面的计划职员大概与编写servlet代码的开辟职员不是统一团体,更新基于servlet的web使用程序就成了一件十分辣手的事变。
EnterJavaServerPage是ServletAPI的一个扩大。现实上,JSP网页在编译成servlet之前也能够利用,以是它们也具有servlet的一切上风,包含会见JavaAPI。因为JSP是嵌进到servlet中关于使用程序的一样平常表述代码,以是他们可以被当作一种“完全”的servlet。
JSP网页次要供应了一种创建servlet的高程度办法,它还带来了其他的长处。即便你已为web使用程序编写了servlet,利用JSP仍旧有良多上风:
JSP网页能够十分简单的与静态模板分离,包含HTML或XML片断,和天生静态内容的代码。
JSP网页能够在被哀求的时分静态的编译成servlet,以是网页的计划职员能够十分简单的对表述代码举行更新。假如必要的话,JSP网页还能够举行预编译。
为了挪用JavaBean组件,JSP标签能够完整办理这些组件,制止网页计划职员庞大化使用程序。
开辟职员能够供应定制化的JSP标签库。
网页计划职员可以改动和编纂网页的流动模板部分而不影呼应用程序。一样,开辟职员也不必一个个编纂页面而只须对组件举行公道的改动。
一般,JSP同意开辟职员向很多网页计划职员分发功效性使用程序。这些计划职员也不用晓得Java编程言语或任何servlet代码,以是他们可以会合精神往编写HTML代码,而编程职员就能够会合精神往创建对象和使用程序。
创建JSP页面
大略看来,JSP网页和HTML(或XML)网页十分类似――都包括用标签封装的文本(在“<>”之间被界说)。当HTML标签被用户的扫瞄器处置以显现网页的时分,JSP标签可以经由过程web服务器的处置来天生静态内容。这些JSP标签可以界说一般的操纵,好比说用一个办法来挪用JavaBean,大概包括尺度的Java代码块(也就是所谓的scriptlet),这些代码块可以在网页被会见的时分被实行。
为了懂得它们怎样利用,上面我们先容了一个JSP网页的复杂例子,在这个JSP网页中包括了静态HTML内容和从JavaBean天生的静态数据。当用户会见这个网页的时分,它能够显现以后的日期,并依据以后的工夫增添响应的问候语(比方“早上好”和“下战书好”)。为复杂起见,JSP标签显现在块中:
<HTML>
<%@pagelanguage="java"imports="java.util.*"%>
<H1>Welcome</H1>
<P>Todayis</P>
<jsp:useBeanid="clock"class="jspCalendar"/>
<UL>
<LI>Day:<%=clock.getDayOfMonth()%>
<LI>Year:<%=clock.getYear()%>
</UL>
<%--CheckforAMorPM--%>
<%!inttime=Calendar.getInstance().get(Calendar.AM_PM);%>
<%
if(time==Calendar.AM){
%>
早上好
<%
}
else{
%>
下战书好
<%
}
%>
<%@includefile="copyright.html"%>
</HTML>
下面的JSP例子是否是很复杂?我们在JSP网页中利用了几个分歧的组件。这些组件包含上面的内容:
JSPaction(或JSP标签)利用了多种函数并扩大了JSP的功效。JSPaction利用的是一品种似XML的语法,而且被用来处置JavaBean组件。在下面的例子中,jsp:useBeanaction初始化了一个JavaBean,JavaBean将在网页的前面部分被用到:
<jsp:useBeanid=="clock"class=="jspCalendar"/>
假如在网页中必要取得和设置这个Bean的属性,另外一个JSPaction将被给出,利用的是上面的语法:
<jsp:getPropertyname="bean"property="property"/>
<jsp:setPropertyname="bean"property="property"value="value"/>
当网页被编译成一个servlet的时分,Directive将被JSP引擎处置。Directive被用来设置页面级的指令、从内部文件拔出数据和制订定制的标签库。Directive被界说在<%@和%>之间。在下面的例子中,Directive界说了页面所利用的言语(Java),为了联系关系Java类必要植进代码并指定一个将要拔出页面底部的HTML文件内容:
<%@pagelanguage=="java"imports=="java.util.*"%>
<%@includefile=="copyright.html"%>
声明与Java中的变量声明类似,它也是为了前面表达式或scriptlet的必要来界说变量。声明被界说在<%!和%>之间。在下面的例子中,“int”声明并给出了一个以后工夫的响应值(AM或PM):
<%!inttime=Calendar.getInstance().get(Calendar.AM_PM);%>
表达式能够是变量或常量,它插在由web服务器所前往的数据里,并?lt;%=和%>来界说。在下面的例子中,表达式将挪用JavaBean组件并在页面中拔出了局数据:
<%=clock.getDayOfMonth()%>
<%=clock.getYear()%>
Scriptlet将作为一个Java代码块植进JSP页面中。Scriptlet代码被逐一拔出由页面所发生的servlet中,它被界说在<%和%>之间。下面例子中的scriptlet能够依据以后用户发生响应的工夫和问候语:
<%
if(time==Calendar.AM){
%>
早上好
<%
}
else{
%>
下战书好
<%
}
%>
正文部分和HTML的⑹拖嗨疲痹谥葱械氖焙JSP引擎将往失落对正文的注释。这就意味着JSP正文其实不前往到用户的扫瞄器中。不象HTML正文被界说在<!-和-->标签之间,JSP正文被界说在<%--和--%>之间。比方:
<%--CheckforAMorPM--%>
为什么外国人还要写那些框架进行代码封装,他们不就是为了别人使用时可以更简单么!如果要达到一个企业级项目的不用框架是很难的。小一些的项目还行,大的光是MVC模式的设计的编码量就够大的了。还有性能方面,单轮windows,这个工具是微软写的,。 |
|