JSP程序设计实训(五)——JSP基本语法(一)

上一篇:JSP程序设计实训(四)——CSS基本知识
下一篇:JSP程序设计实训(五)——JSP基本语法(二)

JSP基本语法

  • JSP基本语法的学习包括JSP页面的基本结构、JSP的脚本元素、JSP的指令和JSP的常用动作。
1. JSP页面的基本结构
  • 一个JSP页面是通过在HTML标签的基础上嵌入JSP动作和指令、CSS、Java变量和方法(Java代码段)、其他脚本元素(如JavaScript)等组成的。实际上,JSP基本元素为了和HTML的标签进行区别,JSP标记都以"<%""<jsp"开头,以"%>"">"结尾。举个例子:
<%@ page contentType="text/html; charset=UTF-8" %>
<html>
	<head>
		<title>JSP页面的基本结构实例</title>
		<meta http-equiv = "Content-Type" content = "text/html;charset = UTF-8">
	</head>
	<body>
		<%int sum = 0;
            int x = 1;
		%>
		<%
			while(x<=10){
				sum += x;
				++x;
			}
		%>
		<p>1加到10的结果是:<%= sum %></p>
		<!-- 注意,在上一句中%=之间不能有空格 -->
		<p>现在的时间是:<%= new java.util.Date() %></p>
	</body>
</html>

在这里插入图片描述

  • 在上面代码示例中,第一行是JSP的 page 指令,他描述JSP文件转换成JSP服务器所能执行的 java 代码时使用的控制信息,如“contentType”用于指定内容类型,“pageEncoding”用于指定页面的编码方式。JSP中的声明以"<%!""<%"开头,以"%>"结尾。"<%= sum %>"是表达式,在JSP中表达式以"<%="开头,以"%>"结尾。
2. JSP的脚本元素
  • 在JSP页面中,经常使用JSP的变量、方法、表达式、脚本、注释来实现一些功能,下面分别介绍这些基本元素的使用。

(1)变量和方法的声明

  • 在JSP页面中可以声明一个或多个符合java规范的合法变量和方法,声明的变量和方法将在JSP页面使用,并将在JSP页面初始化时被初始化。JSP中声明的语法格式如:<%!语句1;语句2;...[语句n]%>
  • 需要注意的是,声明以"<%!""<%"开头,以"%>"结尾;一个声明仅在一个页面中生效;可以直接使用在<%@ page%>中被包含起来的已经声明的变量和方法,不需要对其重新声明;如果想在每个页面都使用某些声明,最好把他们写成一个独立的文件,然后用"<%@ include%>"指令或"<jsp:include>"动作包含起来。

(2)表达式

  • JSP允许在"<%=""%>"之间插入一个表达式,表达式由变量、常量、运算符组成。表达式可以将数据转换成一个字符串并直接在网页上输出。表达式的语法格式为:<%=表达式%>
  • JSP的表达式没有分号。表达式常用在向页面输出内容、生成动态链接地址、动态指定 form 表单处理页面。注意,在"<%""="之间不能有空格。

(3)脚本

  • JSP脚本是一段Java代码,在请求期间执行,可以使用JSP页面谁定义的变量、方法、表达式或者JavaBean。脚本定义的变量和方法在当前整个页面内有效,但不会被其他线程共享,用户对该变量的作用不会影响其他用户,当变量所在页面关闭时该变量就会被销毁。

(4)注释

  • 程序中注释的作用是提高程序的可读性、可维护性和可扩展性。在JSP中注释有3种类型:隐藏注释、Java注释和HTML注释。
    4.1:隐藏注释
    • 隐藏注释是JSP的标准注释,写在JSP程序中,用于描述和说明JSP程序代码,在发布JSP网页时完全被忽略,也不会输送到客户浏览器上,即JSP页面运行后页面上看不到注释内容,且查看源文件(在客户端上)也看不到注释内容。其语法格式为:<%-- 注释语句 --%>
    • 举个例子:
<body>
	<h3>例子</h3>
	<hr>
	<%-- 注释内容,客户端页面与源文件不可见 --%>
	<hr>
</body>

4.2:Java注释

  • Java注释与隐藏注释相似,在发布网页时不会在页面上显示,在浏览器的源文件中也看不到注释内容。其语法格式为:<%/* 注释内容 */%><%// 注释内容 %>

4.3:HTML注释

  • 在发布网页时可以在浏览器源文件窗口中看到HTML注释,即注释的内容会被诉讼到客户端浏览器中,但是不会在页面上显示。该类注释中也可以使用JSP表达式。其语法格式为:<!-- 注释语句[<%= 表达式 %>] -->。注意,在源文件上看到的是表达式结果,而不是表达式本身。
  • 举个例子:
<body>
	<hr>
	<!-- 例子<%=new java.util.Date()%>-->
	<hr>
</body>
  • 在源文件中显示为:
<body>
	<hr>
	<!-- 例子Fri Feb 14 16:49:56 CST 2020-->
	<hr>
</body>
3. JSP的指令
  • 指令用来描述JSP文件转换成JSP服务器所能执行的Java代码时使用的控制信息,用于指定整个JSP页面的相关信息,并设置JSP页面的相关属性。常用的JSP指令有 page 指令、 include 指令和 taglib 指令。

(1)page 指令

  • page 指令用来定义JSP文件中的全局属性,它描述了与页面相关的一些信息,其作用域为它所在的JSP页面和其包含的文件。页面指令一般位于JSP页面的顶端,但是可以放在JSP页面的任何位置。在同一个JSP页面中可以有多个 page 指令,在使用多个 page 指令时,其属性处理 import 外只能使用一次。page 指令的语法格式如下:
<%@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]"]
	[pageEncoding = "pageEncoding"]
	[isErrorPage = "true|false"]
%>

1.1:language 属性

  • language 属性用于指定JSP页面中使用的脚本语言,其默认值为Java。根据JSP 2.0规范,目前只可以使用Java语言,如果使用其他语言则会产生异常。

1.2:extends 属性

  • extends 属性用于指定JSP编译器父类的完整限定名,此JSP页面产生的 Servlet 将由该父类扩展而来。例如:<%@page extends = "javax.servlet.http.HttpServlet"%>。一般不建议使用该属性。JSP容器可以提供专用的高性能父类,如果指定父类,可能会限制JSP容器本身具有的能力。

1.3:import 属性

  • import 属性用于导入JSP页面使用的Java API类库。import 属性是所有 page 属性中唯一可以多吃设置的属性,用来指定JSP页面中所用到的类。如果需要在一个 JSP 页面中同时导入多个Java包,可以逐一说明,也可以使用逗号分隔。

1.4:session 属性

  • session 属性用于指定是否可以使用 session 对象,若允许页面参与HTTP会话,就设置为true,否则设为false,其默认为 true。

1.5:buffer 属性

  • buffer 属性用于设定页面的缓冲区大小(字节数),属性值为 none 时表示禁用缓冲区,其默认值为8KB。

1.6:autoFlush 属性

  • autoFlush 属性用于指定JSP页面缓冲区是否自动刷新输出,默认值为true。如果该属性值为true,则页面缓冲区满时自动刷新输出;否则,当页面缓存区满时抛出一个异常。

1.7:isThreadSafe 属性

  • isThreadSafe 属性用于指定JSP页面是否能够处理一个以上的请求,如果为 true,则该页面可能同时收到JSP引擎发出的多个请求;反之,JSP引擎会对收到的请求进行排队,当前页面在同一时刻只能处理一个请求。其默认值为 true。建议将该属性设置为 true,确保页面使用的所有对象都是线程安全的。

1.8:info 属性

  • info 属性用于指定JSP页面的相关信息文本,无默认值。

1.9:errorPage 属性

  • errorPage 属性用于指定错误页面。当页面出现一个未被捕获的异常时,错误信息将被 throw 语句抛出,而被设置为错误信息网页的JSP页面将利用 exception 隐含对象获取错误信息。relativeURL 默认设置为空,即没有错误处理页面。

1.10:contentType 属性

  • contentType 属性用于指定内容 MIME 类型和JSP页面的编码方式。对于普通JSP页面,默认的contentType 属性值为“text/html;charset=ISO-8859-1”

1.11:pageEncoding 属性

  • pageEncoding 属性用于指定JSP页面的编码方式,默认值为ISO-8859-1。

1.12:isErrorPage 属性

  • isErrorPage 属性指定JSP页面是否为处理异常错误的页面,其默认值为 false。如果将 isErrorPage 属性设置为 true,则固有的 exception 对象脚本元素可用。

(2)include 指令

  • include 指令用于在当前JSP页面中加载需要插入的文件代码,即为页面插入一个静态文件,如JSP页面、HTML页面、文本文件或一段Java程序,这些加载的代码和原有的JSP代码合并成一个新的JSP文件。include 指令的语法格式如下:<%@include file="文件名"%>。其中,文件名指被包含的文件,include 指令只有一个 file 属性,该属性用于指定插入的包含文件的相对路径,无默认值。
  • 在JSP中用 include 指令包含一个静态文件,同时解析这个文件中的JSP语句。使用JSP的 include 指令有助于实现JSP页面的模块化。

(3)taglib 指令

  • taglib 属性用来自动页面中使用的标签库以及自定义标签的前缀,taglib 指令语法格式为:<@%taglib uri="tagLibraryURI" prefix="tagPrefix"%>

3.1:uri 属性

  • uri(统一资源标识符)属性用于指定标记库的存放位置,并告诉JSP引擎在编译JSP程序时如何处理指定标签库中的标签,无默认值。uri 属性可以是 TLD(标记库描述符)文件或web.xml 文件中定义的标记库的符号,也可以是TLD 文件或 JAR 文件的相对路径。

3.2:prefix 属性

  • prefix 属性用于指定标记库中所有动作元素名中使用的前缀,无默认值。

参考书籍:马军霞、张志锋、皇安伟等编著的《JSP程序设计实训与案列教程》第二版

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值