JAVA编程:关于JSP语法年夜全及实例剖析
先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。js|语法HTML正文在客户端显现一个正文。
JSP语法
spacing="0"cellpadding="2"bordercolorlight="black"bordercolordark="#FFFFFF"align="center"> <!--comment[<%=expression%>]-->
例子1
<!--Thisfiledisplaystheuserloginscreen-->
在客户真个HTML源代码中发生和下面一样的数据:
<!--Thisfiledisplaystheuserloginscreen-->
例子2
<!--Thispagewasloadedon<%=(newjava.util.Date()).toLocaleString()%>-->
在客户真个HTML源代码中显现为:
<!--ThispagewasloadedonJanuary1,2000-->
形貌
这类正文和HTML中很像,也就是它能够在“检察源代码”中看到。
独一有些分歧的就是,你能够在这个正文顶用表达式(例子2所示)。这个表达示是不定的,由页面分歧而分歧,你可以利用各类表达式,只需是正当的就行。
埋没正文
写在JSP程序中,但不是发给客户。
JSP语法
<%--comment--%>
例子:
<%@pagelanguage="java"%>
<html>
<head><title>ACommentTest</title></head>
<body>
<h2>ATestofComments</h2>
<%--Thiscommentwillnotbevisibleinthepagesource--%>
</body>
</html>
形貌
用埋没正文标志的字符会在JSP编译时被疏忽失落。这个正文在你但愿埋没或正文你的JSP程序时是很有效的。
JSP编译器是不会对%--and--%之间的语句举行编译的,它不会显现在客户的扫瞄器中,也不会在源代码中看到在%----%之间,你能够恣意写正文语句,可是不克不及利用“--%>”,假如你非要利用请用“--%>”。
声明
在JSP程序中声明正当的变量和办法。
JSP语法
<%!declaration;+...%>
例子
<%!inti=0;%>
<%!inta,b,c;%>
<%!Circlea=newCircle(2.0);%>
形貌
声明你将要在JSP程序顶用到的变量和办法。你也必需如许做,否则会堕落。
你能够一次性声明多个变量和办法,只需以";"开头就行,固然这些声明在Java中如果正当的。
当你声明办法或变量时,请注重以下的一些划定规矩:
1声明必需以";"开头(Scriptlet有一样的划定规矩,可是表达式就分歧了)。
2你能够间接利用在%@page%中被包括出去的已声明的变量和办法,不必要对它们从头举行声明。
3一个声明仅在一个页面中无效。假如你想每一个页面都用到一些声明,最好把它们写成一个独自的文件,然后用%@include%或jsp:include元素包括出去。
表达式
包括一个切合JSP语法的表达式。
JSP语法
<%=expression%>
例子
<fontcolor="blue"><%=map.size()%></font>
<b><%=numguess.getHint()%></b>.
形貌
表达式元素暗示的是一个在剧本言语中被界说的表达式,在运转后被主动转化为字符串,然后拔出到这个表达式在JSP文件的地位显现。由于这个表达式的值已被转化为字符串,以是你能在一行文本中拔出这个表达式(情势和ASP完整一样)。
当你在JSP中利用表达式时请记着以下几点:
1你不克不及用一个分号(“;”)来作为表达式的停止符。可是一样的表达式用在scriptlet中就必要以分号来开头了!检察Scriptlet这个表达式元素可以包含任安在JavaLanguageSpecification中无效的表达式。
2偶然候表达式也能作为别的JSP元素的属性值。一个表达式可以变得很庞大,它大概由一个或多个表达式构成,这些表达式的按次是从左到右。
Scriptlet
包括一个无效的程序段。
JSP语法
width="400"border="1"cellspacing="0"cellpadding="2"bordercolorlight="black"bordercolordark="#FFFFFF"align="center"> <%codefragment%>
例子
<%
Stringname=null;
if(request.getParameter("name")==null){
%>
<%@includefile="error.html"%>
<%
}else{
foo.setName(request.getParameter("name"));
if(foo.getName().equalsIgnoreCase("integra"))
name="acura";
if(name.equalsIgnoreCase("acura")){
%>
形貌
一个scriptlet可以包括多个jsp语句、办法、变量、表达式。
由于有了scriptlet,我们便能做以下的事:
1声明将要用到的变量或办法(参考声明)。
2编写JSP表达式(参考表达式)。
3利用任何隐含的对象和任何用jsp:useBean声明过的对象。
4编写JSP语句(假如你在利用Java言语,这些语句必需服从JavaLanguageSpecification)。
任何文本、HTML标志、JSP元素必需在scriptlet以外。
当JSP收到客户的哀求时,scriptlet就会被实行,假如scriptlet有显现的内容,这些显现的内容就被存在out对象中。
Page指令
界说JSP文件中的全局属性。
JSP语法
<%@page
"|"text/html;charset=ISO-8859-1"]
%>
例子
<%@pageimport="java.util.*,java.lang.*"%>
<%@pagebuffer="5kb"autoFlush="false"%>
<%@pageerrorPage="error.jsp"%>
形貌
%@page%指令感化于全部JSP页面,一样包含静态的包括文件。可是%@page%指令不克不及感化于静态的包括文件,好比jsp:include。
你能够在一个页面顶用上多个%@page%指令,可是个中的属性只能用一次,不外也有个破例,那就是import属性。由于import属性和Java中的import语句差未几(参照JavaLanguage),以是你就可以多用此属性几回了。
不管你把%@page%指令放在JSP的文件的哪一个中央,它的感化局限都是全部JSP页面。不外,为了JSP程序的可读性,和好的编程习气,最好仍是把它放在JSP文件的顶部。
Taglib指令
界说一个标签库和其自界说标签的前缀。
JSP语法
<%@tagliburi="URIToTagLibrary"prefix="tagPrefix"%>
例子
<%@tagliburi="http://www.jspcentral.com/tags"prefix="public"%>
<public:loop>
.
.
</public:loop>
形貌
%@taglib%指令声明此JSP文件利用了自界说的标签,同时援用标签库,也指定了他们的标签的前缀。
这里自界说的标签含有标签和元素之分。由于JSP文件可以转化为XML,以是懂得标签和元素之间的接洽很主要。标签只不外是一个在乎义上被举高了点的标志,是JSP元素的一部分。JSP元素是JSP语法的一部分,和XML一样有入手下手标志和停止标志。元素也能够包括别的的文本、标志、元素。好比,一个jsp:plugin元素有jsp:plugin入手下手标志和/jsp:plugin停止标志,一样也能够有jsp:params和jsp:fallback元素。
你必需在利用自界说标签之前利用%@taglib%指令,并且你能够在一个页面中屡次利用,可是前缀只能利用一次。
属性
uri="URIToTagLibrary"
UniformResourceIdentifier(URI)依据标签的前缀对自界说的标签举行唯一的定名,URI能够是以下的内容:
UniformResourceLocator(URL),由RFC2396界说,检察http://www.hut.fi/u/jkorpela/rfc/2396/full.html。
UniformResourceName(URN),由RFC2396界说。
一个绝对或相对的路径
prefix="tagPrefix"
在自界说标签之前的前缀,好比,在中的public,假如这里不写public,那末这就是分歧法的。请不要用jsp、jspx、java、javax、servlet、sun和sunw做你的前缀。
jsp:forward
重定向一个HTML文件、JSP文件、大概是一个程序段。
JSP语法
<jsp:forwardpage={"relativeURL"|"<%=expression%>"}/>
or
<jsp:forwardpage={"relativeURL"|"<%=expression%>"}>
<jsp:paramname="parameterName"
value="{parameterValue|<%=expression%>}"/>+
</jsp:forward>
例子
<jsp:forwardpage="/servlet/login"/>
<jsp:forwardpage="/servlet/login">
<jsp:paramname="username"value="jsmith"/>
</jsp:forward>
形貌
jsp:forward标签从一个JSP文件向另外一个文件传送一个包括用户哀求的request对象。jsp:forward标签以下的代码,将不克不及实行。
你可以向方针文件传送参数和值,在这个例子中我们传送的参数名为username,值为scott,假如你利用了jsp:param标签的话,方针文件必需是一个静态的文件,可以处置参数。
假如你利用了非缓冲输入的话,那末利用jsp:forward时就要当心。假如在你利用jsp:forward之前,jsp文件已有了数据,那末文件实行就会堕落。
属性
page="{relativeURL|<%=expression%>}"
这里是一个表达式或是一个字符串用于申明你将要定向的文件或URL。这个文件能够是JSP、程序段、大概别的可以处置request对象的文件(如asp、cgi、php)。
<jsp:paramname="parameterName"value="{parameterValue|<%=expression%>}"/>+
向一个静态文件发送一个或多个参数,这个文件必定是静态文件。
假如你想传送多个参数,你能够在一个JSP文件中利用多个jsp:param。name指定参数名,value指定参数值。
jsp:getProperty
猎取Bean的属性值,用于显现在页面中。
JSP语法
d_nobr><jsp:getPropertyname="beanInstanceName"property="propertyName"/>
例子
<jsp:useBeanid="calendar"scope="page"class="employee.Calendar"/>
<h2>
Calendarof<jsp:getPropertyname="calendar"property="username"/>
</h2>
形貌
这个jsp:getProperty元素将取得Bean的属性值,并能够将其利用或显现在JSP页面中。在你利用jsp:getProperty之前,你必需用jsp:useBean创立它。
jsp:getProperty元素有一些限定:
1你不克不及利用jsp:getProperty来检索一个已被索引了的属性
2你可以和JavaBeans组件一同利用jsp:getProperty,可是不克不及与EnterpriseBean一同利用。
属性
name="beanInstanceName"
bean的名字,由jsp:useBean指定。
property="propertyName"
所指定的Bean的属性名。
技能:
在sun的JSP参考中提到,假如你利用jsp:getProperty来检索的值是空值,那末NullPointerException将会呈现,同时假如利用程序段或表达式来检索其值,那末在扫瞄器上呈现的是null(空)。
jsp:include
包括一个静态或静态文件。
JSP语法
<jsp:includepage="{relativeURL|<%=expression%>}"flush="true"/>
or
<jsp:includepage="{relativeURL|<%=expression%>}"flush="true">
<jsp:paramname="parameterName"
value="{parameterValue|<%=expression%>}"/>+
</jsp:include>
例子
<jsp:includepage="scripts/login.jsp"/>
<jsp:includepage="copyright.html"/>
<jsp:includepage="/index.html"/>
<jsp:includepage="scripts/login.jsp">
<jsp:paramname="username"value="jsmith"/>
</jsp:include>
形貌
jsp:include元素同意你包括静态文件和静态,这两种包括文件的了局是分歧的。假如文件仅是静态文件,那末这类包括仅仅是把包括文件的内容加到jsp文件中往,而假如这个文件静态的,那末这个被包括文件也会被Jsp编译器实行(这统统与asp类似)。
你不克不及从文件名上判别一个文件是静态的仍是静态的,好比aspcn.asp就有大概只是包括一些信息罢了,而不必要实行。jsp:include可以同时处置这两种文件,因而你就不必要包括时还要判别此文件是静态的仍是静态的。
假如这个包括文件是静态的,那末你还能够用jsp:param还传送参数名和参数值。
属性
page="{relativeURL|}"
参数为一绝对路径,大概是代表绝对路径的表达式。
flush="true"
这里你必需利用flush="true",你不克不及利用false值。缺省值为false。
<jsp:paramname="parameterName"value="{parameterValue|<%=expression%>}"/>+
jsp:param子句能让你传送一个或多个参数给静态文件,你能在一个页面中利用多个jsp:param来传送多个参数。
jsp:plugin
实行一个applet或Bean,有大概的话还要下载一个Java插件用于实行它。
JSP语法
<jsp:plugin
type="bean|applet"
code="classFileName"
codebase="classFileDirectoryName"
>
[<jsp:params>
[<jsp:paramname="parameterName"
value="{parameterValue|<%=expression%>}"/>]+
</jsp:params>]
[<jsp:fallback>textmessageforuser</jsp:fallback>]
</jsp:plugin>
例子
<jsp:plugintype=appletcode="Molecule.class"codebase="/html">
<jsp:params>
<jsp:paramname="molecule"value="molecules/benzene.mol"/>
</jsp:params>
<jsp:fallback>
<p>Unabletoloadapplet</p>
</jsp:fallback>
</jsp:plugin>
形貌
jsp:plugin元素用于在扫瞄器中播放或显现一个对象(典范的就是applet和Bean),而这类显现必要在扫瞄器的java插件。
当Jsp文件被编译,送往扫瞄器时,jsp:plugin元素将会依据扫瞄器的版本交换成object大概embed元素。注重,object用于HTML4.0,embed用于HTML3.2。
一样平常来讲,jsp:plugin元素会指定对象是Applet仍是Bean,一样也会指定class的名字,另有地位,别的还会指定将从那里下载这个Java插件。详细以下:
属性
type="bean|applet"
将被实行的插件对象的范例,你必需得指定这个是Bean仍是applet,由于这个属性没出缺省值。
code="classFileName"
将会被Java插件实行的JavaClass的名字,必需以.class开头。这个文件必需存在于codebase属性指定的目次中。
codebase="classFileDirectoryName"
将会被实行的JavaClass文件的目次(大概是路径),假如你没有供应此属性,那末利用jsp:plugin的jsp文件的目次将会被利用。
name="instanceName"
这个Bean或applet实例的名字,它将会在Jsp别的的中央挪用。
archive="URIToArchive,..."
一些由逗号分隔的路径名,这些路径名用于预装一些将要利用的class,这会进步applet的功能。
align="bottom|top|middle|left|right"
图形,对象,Applet的地位,有以下值:
bottom
top
middle
left
right
height="displayPixels"width="displayPixels"
Applet或Bean将要显现的长宽的值,此值为数字,单元为象素。
hspace="leftRightPixels"vspace="topBottomPixels"
Applet或Bean显现时在屏幕摆布,高低所需留下的空间,单元为象素。
jreversion="JREVersionNumber|1.1"
Applet或Bean运转所需的JavaRuntimeEnvironment(JRE)的版本。
缺省值是1.1。
nspluginurl="URLToPlugin"
NetscapeNavigator用户可以利用的JRE的下载地点,此值为一个尺度的URL,如http://www.aspcn.com/jsp
iepluginurl="URLToPlugin"
IE用户可以利用的JRE的下载地点,此值为一个尺度的URL,如http://www.aspcn.com/jsp
<jsp:params>[<jsp:paramname="parameterName"
value="{parameterValue|<%=expression%>}"/>]+</jsp:params>
你必要向applet或Bean传送的参数或参数值。
<jsp:fallback>textmessageforuser</jsp:fallback>
一段笔墨用于Java插件不克不及启动时显现给用户的,假如插件可以启动而applet或Bean不克不及,那末扫瞄器会有一个堕落信息弹出。
jsp:useBean
创立一个Bean实例并指定它的名字和感化局限。
JSP语法
<jsp:useBean
id="beanInstanceName"
scope="page|request|session|application"
{
class="package.class"|
type="package.class"|
class="package.class"type="package.class"|
beanName="{package.class|<%=expression%>}"type="package.class"
}
{
/>|
>otherelements</jsp:useBean>
}
例子
<jsp:useBeanid="cart"scope="session"class="session.Carts"/>
<jsp:setPropertyname="cart"property="*"/>
<jsp:useBeanid="checking"scope="session"class="bank.Checking">
<jsp:setPropertyname="checking"property="balance"value="0.0"/>
</jsp:useBean>
java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大. J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 是一种使用者不需花费很多时间学习的语言 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 是一种将安全性(Security)列为第一优先考虑的语言
页:
[1]