仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 502|回复: 9
打印 上一主题 下一主题

[学习教程] JAVA编程:关于JSP语法年夜全及实例剖析

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:11:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
先说优点,首先和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;[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
[language="java"]
[extends="package.class"]
[import="{package.class|package.*},..."]
[session="true|false"]
[buffer="none|8kb|sizekb"]
[autoFlush="true|false"]
[isThreadSafe="true|false"]
[info="text"]
[errorPage="relativeURL"]
[contentType="mimeType[;charset=characterSet]"|"text/html;charset=ISO-8859-1"]
[isErrorPage="true|false"]
%>

例子

<%@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"
[name="instanceName"]
[archive="URIToArchive,..."]
[align="bottom|top|middle|left|right"]
[height="displayPixels"]
[width="displayPixels"]
[hspace="leftRightPixels"]
[vspace="topBottomPixels"]
[jreversion="JREVersionNumber|1.1"]
[nspluginurl="URLToPlugin"]
[iepluginurl="URLToPlugin"]>
[<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起应用,功能强大.
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-20 16:33:48 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
飘灵儿 该用户已被删除
板凳
发表于 2015-1-24 11:24:43 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
谁可相欹 该用户已被删除
地板
发表于 2015-2-1 07:28:56 来自手机 | 只看该作者
是一种使用者不需花费很多时间学习的语言
海妖 该用户已被删除
5#
发表于 2015-2-5 15:27:24 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
分手快乐 该用户已被删除
6#
发表于 2015-2-12 14:20:19 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
只想知道 该用户已被删除
7#
发表于 2015-3-3 03:25:53 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
简单生活 该用户已被删除
8#
发表于 2015-3-11 09:04:08 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
再现理想 该用户已被删除
9#
发表于 2015-3-18 01:57:05 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
小妖女 该用户已被删除
10#
发表于 2015-3-25 08:55:29 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 16:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表