JSP语法简表 - 我爱贝贝 - 金东浩官方网站 - welcome to old.bbmy.net

JSP语法简表 [金东浩官方网站版权所有]

2007年1月6日 | Category: » | by: 贝爸 | 本文包含金东浩JSP语法简表照片

HTML 注释

<!-- comment [ <%= expression %> ] -->
<!-- This file displays the user login screen -->

例子 2
在客户端的HTML源代码中显示为:
<!-- This page was loaded on January 1, 2000 -->
这种注释和HTML中很像,也就是它可以在"查看源代码"中看到.
唯一有些不同的就是,你可以在这个注释中用表达式(例子2所示).这个表达示是不定的,由页面不同而不同,你能够使用各种表达式,只要是合法的就行。更多的请看表达式
=========================================================
写在JSP程序中,但不是发给客户。
JSP 语法
例子:
<html>
<body>
<%-- This comment will not be visible in the page source --%>
</html>
用隐藏注释标记的字符会在JSP编译时被忽略掉。这个注释在你希望隐藏或注释你的JSP程序时是很有用的。JSP编译器不是会对<%--and--%>之间的语句进行编译的,它不会显示在客户的浏览器中,也不会在源代码中看到
在<%-- --%>之间,你可以任意写注释语句,但是不能使用 "--%>",如果你非要使用请用"--%>".
声明

<%! declaration; [ declaration; ]+ ... %>
<%! int i = 0; %>
<%! Circle a = new Circle(2.0); %>
声明你将要在JSP程序中用到的变量和方法。你也必须这样做,不然会出错.
你可以一次性声明多个变量和方法,只要以";"结尾就行,当然这些声明在Java中要是合法的。
当你声明方法或变量时,请注意以下的一些规则:
声明必须以";"结尾(Scriptlet有同样的规则,但是 表达式就不同了).
一个声明仅在一个页面中有效。如果你想每个页面都用到一些声明,最好把它们写成一个单独的文件,然后用<%@ include %>或<jsp:include >元素包含进来。
==================================================================
包含一个符合JSP语法的表达式
JSP 语法
例子
<b><%= numguess.getHint() %></b>.
表达式元素表示的是一个在脚本语言中被定义的表达式,在运行后被自动转化为字符串,然后插入到这个表达示在JSP文件的位置显示。因为这个表达式的值已经被转化为字符串,所以你能在一行文本中插入这个表达式(形式和ASP完全一样).
当你在JSP中使用表达式时请记住以下几点:
你不能用一个分号(";")来作为表达式的结束符.但是同样的表达式用在scriptlet中就需要以分号来结尾了!查看Scriptlet
有时候表达式也能做为其它JSP元素的属性值.一个表达式能够变得很复杂,它可能由一个或多个表达式组成,这些表达式的顺序是从左到右。
Scriptlet

<% code fragment %>
<%
if (request.getParameter("name") == null) {
<%@ include file="error.html" %>
} else {
if (foo.getName().equalsIgnoreCase("integra"))
if (name.equalsIgnoreCase( "acura" )) {
描述


编写JSP表达式(参考 表达式).
编写JSP语句 (如果你在使用Java语言,这些语句必须遵从Java Language Specification,).
当JSP收到客户的请求时,scriptlet就会被执行,如果scriptlet有显示的内容,这些显示的内容就被存在out对象中。
Include 指命

<%@ include file="relativeURL" %>
include.jsp:
<head><title>An Include Test</title></head>
<font color="blue">
<%@ include file="date.jsp" %>
</body>
date.jsp:
<%= (new java.util.Date() ).toLocaleString() %>
The current date and time are

<%@include %>指命将会在JSP编译时插入一个包含文本或代码的文件,当你使用<%@ include %>指命时,这个包含的过程就当是静态的。静态的包含就是指这个被包含的文件将会被插入到JSP文件中去,这个包含的文件可以是JSP文件, HTML文件,文本文件。如果包含的是JSP文件,这个包含的JSP的文件中代码将会被执行。
如果你仅仅只是用include 来包含一个静态文件。那么这个包含的文件所执行的结果将会插入到JSP文件中放<% @ include %>的地方。一旦包含文件被执行,那么主JSP文件的过程将会被恢复,继续执行下一行.
这个被包含文件可以是html文件,jsp文件,文本文件,或者只是一段Java代码,但是你得注意在这个包含文件中不能使用<html>, </html>,<body>,</body>标记,因为这将会影响在原JSP文件中同样的标记,这样做有时会导致错误.
有一些<%@ include %>指命的行为是以特殊的JSP编译条件为基础,比如:
这个被包含的文件必须对所有客户都有开放且必须f有效,或者它有安全限制
属性:
这个包含文件的路径名一般来说是指相对路径,不需要什么端口,协议,和域名,如下:
"error.jsp""/templates/onlinestore.html""/beans/calendar.jsp"
如果这个路径以"/"开头,那么这个路径主要是参照JSP应用的上下关系路径,如果路径是以文件名或目录名开头,那么这个路径就是正在使用的JSP文件的当前路径.
==================================================================
定义JSP文件中的全局属性.
JSP 语法
[ language="java" ]
[ import="{package.class / package.*}, ..." ]
[ buffer="none / 8kb / sizekb" ]
[ isThreadSafe="true / false" ]
[ errorPage="relativeURL" ]
[ isErrorPage="true / false" ]
例子
<%@ page buffer="5kb" autoFlush="false" %>
描述
你可以在一个页面中用上多个<% @ page %>指令,但是其中的属性只能用一次,不过也有个例外,那就是import属性。因为import属性和Java中的import语句差不多(参照Java Language),所以你就能多用此属性几次了.
无论你把<% @ page %>指令放在JSP的文件的哪个地方,它的作用范围都是整个JSP页面。不过,为了JSP程序的可读性,以及好的编程习惯,最好还是把它放在JSP文件的顶部.
属性
声明脚本语言的种类,暂时只能用"java"
extends="package.class"

需要导入的Java包的列表,这些包就作用于程序段,表达式,以及声明。
下面的包在JSP编译时已经导入了,所以你就不需要再指明了:
java.lang.*
javax.servlet.jsp.*

设定客户是否需要HTTP Session.(学过ASP的人,应该对它不陌生)如果它为true,那么Session是有用的。
如果它有false,那么你就不能使用session对象,以及定义了scope=session的<jsp:useBean>元素。这样的使用会导致错误.
缺省值是true.
buffer="none / 8kb / sizekb"

设置如果buffer溢出,是否需要强制输出,如果其值被定义为true(缺省值),输出正常,如果它被设置为false,如果这个buffer溢出,就会导致一个意外错误的发生.如果你把buffer设置为none,那么你就不能把autoFlush设置为false.
isThreadSafe="true / false"

一个文本在执行JSP将会被逐字加入JSP中,你能够使用Servlet.getServletInfo方法取回。
errorPage="relativeURL"

设置此页是否为出错页,如果被设置为true,你就能使用exception对象.
contentType="mimeType [ ;charset=characterSet ]" / "text/html;charset=ISO-8859-1"

Taglib 指令

<%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %>
<%@ taglib uri="http://www.jspcentral.com/tags" prefix="public" %>
.
</public:loop>
<% @ taglib %>指令声明此JSP文件使用了自定义的标签,同时引用标签库,也指定了他们的标签的前缀。
这里自定义的标签含有标签和元素之分。因为JSP文件能够转化为XML,所以了解标签和元素之间的联系很重要。标签只不过是一个在意义上被抬高了点的标记,是JSP元素的一部分。JSP元素是JSP语法的一部分,和XML一样有开始标记和结束标记。元素也可以包含其它的文本,标记,元素。比如,一个 jsp:plugin元素有<jsp:plugin>开始标记和</jsp:plugin>结束标记,同样也可以有< jsp:params>和<jsp:fallback>元素.
你必须在使用自定义标签之前使用<% @ taglib %>指令,而且你可以在一个页面中多次使用,但是前缀只能使用一次
属性
Uniform Resource Identifier (URI)根据标签的前缀对自定义的标签进行唯一的命名,URI可以是以下的内容:
Uniform Resource Locator (URL), 由 RFC 2396 定义, 查看 http://www.hut.fi/u/jkorpela/rfc/2396/full.html
Uniform Resource Name (URN), 由 RFC 2396定义
一个相对或绝对的路径
在自定义标签之前的前缀,比如,在<public:loop>中的public,如果这里不写public,那么这就是不合法的。请不要用jsp, jspx, java, javax, servlet, sun, 和sunw做为你的前缀
<jsp:forward>

<jsp:forward page={"relativeURL" / "<%= expression %>"} />
<jsp:forward page={"relativeURL" / "<%= expression %>"} >
value="{parameterValue / <%= expression %>}" />+
例子
<jsp:forward page="/servlet/login">
</jsp:forward>
<jsp:forward>标签从一个JSP文件向另一个文件传递一个包含用户请求的request对象.<jsp:forward>标签以下的代码,将不能执行.
你能够向目标文件传送参数和值,在这个例子中我们传递的参数名为username,值为scott,如果你使用了<jsp:param>标签的话,目标文件必须是一个动态的文件,能够处理参数.
如果你使用了非缓冲输出的话,那么使用<jsp:forward>时就要小心。如果在你使用<jsp:forward>之前,jsp文件已经有了数据,那么文件执行就会出错.
属性
这里是一个表达式或是一个字符串用于说明你将要定向的文件或URL.这个文件可以是JSP,程序段,或者其它能够处理request对象的文件(如asp,cgi,php).
<jsp:param name="parameterName" value="{parameterValue / <%= expression %>}" />+
向一个动态文件发送一个或多个参数,这个文件一定是动态文件.
如果你想传递多个参数,你可以在一个JSP文件中使用多个。name指定参数名,value指定参数值

转自:一只草莓

本文来自 我爱贝贝[www.bbmy.net]-金东浩官方网站,如若转载注明出处。


金东浩博客随机日志
金东浩博客之吃鸭腿
吃鸭腿
金东浩博客之无题
无题
金东浩博客之流水帐一篇
流水帐一篇
金东浩博客之找歪歪
找歪歪
金东浩博客之小帅哥来也
小帅哥来也
金东浩博客之午睡
午睡
金东浩博客之爽歪歪
爽歪歪
金东浩博客之表情大搜集
表情大搜集
金东浩博客之洗澡
洗澡
金东浩博客之爱劳动的好孩子
爱劳动的好孩子
金东浩博客之爬高上低
爬高上低
金东浩博客之难吃的午饭
难吃的午饭
金东浩博客之玩水
玩水
金东浩博客之滑滑梯
滑滑梯
金东浩博客之十月一日广场游记
十月一日广场游记
金东浩博客之十一再去包河
十一再去包河
金东浩博客之秋天来了
秋天来了
金东浩博客之摆POS
摆POS

金东浩日记Tags:
金东浩日记评论: 0 | 金东浩日记引用: 0 | 金东浩日记阅读: 2677
发表评论
昵称 [注册]        网址
密码 游客无需密码     电邮
打开HTML 打开UBB 打开表情 隐藏 记住我