详解JSP指令和脚本元素

开发 后端
本文详细介绍了JSP指令和脚本元素,以及描述在JSP页面中,如果你想用变量和方法必须事先声明。

如果你不熟悉Java编程,也许你想看一下Sun的指南 。然而网页创建者并不需要进行太多的Java开发。除了一些方法调用,在你的JSP网页里应尽可能少用Java代码。

记住以上提示,我们首先来看一看JSP指令和脚本元素,之后我们会解释JavaBeans和隐含对象。共有五种JSP指令和脚本元素。在JSP 1.0版中,大部分JSP被一个以“< %” 开头和以“%>”结尾的的标记括在其中。在更新的JSP 1.1规范出台后,就有了与XML兼容的版本。

JSP指令和脚本元素
◆Directives < %@ directive %>
◆Declarations < %! declaration %>
◆Expressions < %= expression %>
◆Code Fragment/Scriptlet < % code fragment %>
◆Comments < %-- comment --%>

指令

JSP指令是为JSP引擎而设计的。他们并不直接产生任何可见输出,而只是告诉引擎如何处理其余JSP页面。这些指令始终被括在 “< %@ ?%>”标记中。两个最重要的指令是“pagePage”和“Include”。“Taglib”指令不在讨论之列,但是在用JSP1.1创建自定义标记可以使用它。

几乎在所有JSP页面顶部都会看到“Page”指令。尽管不是必须的,但它可以让你指定:
◆到何处查找起支持作用的Java类别:
< %@ page import="java.util.Date" %>,
◆出现Java运行问题时,将网上冲浪者引向何处:
< %@ page errorPage="errorPage.jsp" %>,
◆还有你是否需要管理用户的会话级信息,这些信息可能来自多个网页(在下面的JavaBeans一节将对此做进一步讲)述:
< %@ page session="true" %>.
◆“Include”指令可以把你的内容分成更多可管理的元素,比如包括一个普通页面页眉或页脚的元素。包含的网页可以是一个固定的HTML 页面或更多的JSP内容:
< %@ include file="filename.jsp" %>

声明

JSP声明用来让你定义页面级变量,以保存信息或定义JSP页面的其余部分可能需要的支持方法。如果你发现代码太多,通常最好把它们写成一个独立的Java类别。声明一般都在“< %! ?%>”标记中。一定要以分号(;)结束变量声明,因为任何内容都必须是有效的Java语句:
< %! int i=0; %>。

表达式

有了JSP表达式,表达式评估结果会被转换成一个字符串,并且被直接包括在输出页面之内。JSP 表达式包含在“< %= ?%>” 标记中,没有分号,除非在加引号的字符串部分使用分号。
◆< %= i %>
◆< %= "Hello" %> .

代码片段/脚本片段

代码片段/脚本片段(Scriptlets) JSP代码片段或脚本片段是嵌在“< % ?%>”标记中的。这种Java代码在Web服务器响应请求时就会运行。在脚本片段周围可能是原始的HTML或XML语句,在这些地方,代码片段可以使你创建条件执行代码,或要用到另外一段代码的代码。例如,以下的代码组合使用表达式和代码片段,显示H1、H2、H3和H4标记中的字符串“Hello”。代码片段并不局限于一行源代码:
◆< % for (int i=1; i< =4; i++) { %>
◆< H< %=i%>>Hello< /H< %=i%>>
◆< % } %>.

注释

最后一个主要的JSP元素是嵌入式注释。尽管你始终可以在文件中加入HTML注释,但用户在查看页面源代码时会看到这些注释。如果你不想让用户看到它,你就应该将其嵌入“< %-- ?--%>” 标记中:
< %-- comment for server side only --%>.

隐藏注释
◆JSP页面的文档,但是不被传送到客户端
◆JSP语法

例子1

  1. < %@ page language="java" %>     
  2. < html>     
  3. < head>< title>注释测试< /titel>< /head>     
  4. < body>     
  5. < h2>注释测试< /h2>     
  6. < %-- 这一段注释在原代码中是看不到的 --%>     
  7. < /body>     
  8. < /html> 
  9.  

描述JSP会忽略隐藏注藏的文本行,隐藏注释通常被用来注释你不愿意被别人看到的注释。JSP不处理任何< %--和--%>之间的字符,这段注释也不会被发送到客户端,当然查看原代码也发现不了它。

在使用--%>结束注释之前你可以使用任何符号,如果你想在注释中用--%>,那么你可以用--%\>避开。

声明
在JSP页面声明变量和方法
JSP语法
< %! 声明;[声明;]+……%>

例子2

  1. < %! int i =0; %> 
  2. < %! int a, b, c; %> 
  3. < %! circle a = new circle (2,0); %> 

描述在JSP页面中,如果你想用变量和方法必须事先声明。你可以在一个声明元素里声明任意多个变量和方法,不够最后有多长,你都要加一个分号在后面。声明必须遵守JAVA程序语言的规定。当你在JSP中声明变量和方法的时候,必须牢记住以下几点规则:

1、必须以分号结尾(同样的规则适用于脚本的编写,相反,表达式不用)

2、用< %@ page %>引入的页面已经声明过的变量和方法可以直接使用,不用再次声明。
声明可以扩展范围,也就是说可以扩展到任何静态的JSP文件。任何用< jsp:include>包含的静态文件都可以。记诠动态的页面不可以。

表达式

在JSP页面里用脚本语言表达式
JSP语法
< %=表达式%>

地图文件有< font color="bule">< %=map.size()%>< /font>个。猜的不错,但是不对。试试< b>< %=numguess.gethint()%>< /b>。

描述表达式通过计算得出值,转换成字符串,插入到JSP页面中想要显示出来的地方。因为得出的值已经是字符串了,那么你就可以在JSP页面中用HTML标签任意的控制它。

当你在JSP页面中写表达式的时候,记住以下要点:

1、千万不要用分号来结束表达式(可是,在脚本中的表达式却要加分号;参阅脚本)

2、表达式中可以包含任何适合Java语言规范表达式。有时候你可以把表达式的值作为JSP要素的属性值。

脚本页面中用脚本语言编写的脚本段
JSP语法
< %=代码段%>

例子3

  1. < %  
  2. String name = null;  
  3. if (request.getParameter("name")==null {  
  4. %> 
  5. < %@ include file="error.html"%> 
  6. < % } else {  
  7. foo.setName(request.getParmeter("name"));  
  8. if (foo.getname().equalsIgnoreCase("integra"))  
  9. name = "acura";  
  10. if (name.equalsIgnoreCase("acura")){  
  11. %> 

描述一段代码可以包括任意长的代码,声明任意多的变量和方法或者包括任意多的表达式。当你在编写代码的时候,你可以做如下事情:

1、为以后的需要声明变量和方法(参阅:声明)

2、使用表达式(参阅:表达式)

3、使用固定值和< jsp:useBean>中的对象

4、在页面中使用任意其他声明值(如果你使用JAVA语言,必须遵守JAVA规则)文本,HTML标签和JSP指令和元素必须在脚本之外。脚本执行需要时间。

【编辑推荐】

  1. 如何提升Servlet和JSP应用程序的效率
  2. Flex和Jsp之间中文参数的传递
  3. 简单介绍JSP数据库链接
  4. 我国IPTV研究目全球领先
  5. 3G与IPTV是发展大方向
责任编辑:佚名 来源: IT168
相关推荐

2009-07-01 18:41:13

JSP语法

2009-02-23 14:17:00

include指令动作

2009-07-02 11:25:33

JSP课程

2010-06-13 10:56:13

UML文献

2020-12-11 09:38:49

Shell编程开发

2009-07-21 13:43:53

ASP和JSP比较

2009-06-30 11:27:25

JSP include

2009-07-06 09:34:19

JSP页面

2009-07-02 11:34:42

JSP指令JSP开发

2020-10-18 21:41:34

软件设计语言开发

2016-10-18 21:39:59

Semantic-UIReact基本元素组件

2024-11-27 09:19:25

2009-07-06 14:43:30

JSP元素

2012-03-15 10:04:06

移动web

2009-07-06 17:08:19

测试JSP容器

2009-09-10 09:48:15

JSP使用FCKedi

2010-06-22 23:58:29

Linux Badbl

2009-07-06 10:00:31

JSP页面传值

2009-07-06 15:03:53

JSP向Servlet

2009-07-03 17:33:06

JSP中调用JavaB
点赞
收藏

51CTO技术栈公众号