JSP基本语法、JSP指令——JSP脚本元素、JSP声明语句、JSP表达式、JSP注释、page指令、include指令

一、脚本元素

JSP脚本元素主要包含如下3种类型。

• JSP Scriptlets

• JSP声明语句

• JSP表达式

1.JSP Scriptlets

JSP Scriptlets 是一段代码段。当需要使用Java实现一些复杂操作或控制时,可以使用它。JSP Scriptlets的语法格式如下所示。

<% java 代码(变量、方法、表达式等)%>

在JSP Scriptlets中声明的变量是JSP页面的局部变量,调用JSP Scriptlets时,会为局部变量分配内存空间,调用结束后,释放局部变量占有的内存空间

2.JSP声明语句

JSP 的声明语句用于声明变量和方法,它以“<%!”开始,以“%>”结束,其语法格式如下所示。

<%!   定义的变量或方法等     %>

在上述语法格式中,被声明的Java代码将被编译到Servlet的_jspService()方法之外,即在JSP声明语句中定义的都是成员方法、成员变量、静态方法、静态变量、静态代码块等在JSP声明语句中声明的方法在整个JSP页面内有效,但是在方法内定义的变量只在该方法内有效。当声明的方法被调用时,会为方法内定义的变量分配内存,而调用结束后立刻会释放所占的内存。

在一个JSP页面中可以有多个JSP声明语句,单个声明中的Java语句可以是不完整的,但是多个声明组合后的结果必须是完整的Java语句。

需要注意的是

<%!和%>里面定义的属性是成员属性,相当于类的属性,方法相当于全局的方法,也相当于类里面的方法,但是它是不可以进行输出的,因为它只是进行方法的定义和属性的定义

<%和%>可以进行属性的定义,也可以输出内容,但是它不可以进行方法的定义。因为这对标签里面的内容是在此JSP被编译为Servlet的时候,放在_jspService()方法里面的,这个方法就是服务器向客户端输出内容的地方,它本身就是一个方法。所以,如果在它里面定义方法的话,那么就相当于是在类的方法里面嵌套定义了方法,这在Java里面是不允许的。但是,可以在里面定义自己的私有变量,因为方法里面也可以定义变量,也可以调用方法,唯独不可以再定义方法了。

总之

<%!和%>    是用来定义成员变量属性和方法的

<%  和 %>     主要是用来输出内容

如果涉及到了成员变量的操作,那么就应该使用<%!和 %>

而如果涉及到了输出内容,就使用<% 和 %>。

3.JSP表达式

JSP表达式(expression)用于将程序数据输出到客户端,它将要输出的变量或者表达式直接封装在以“<%=”开头和以“%>”结尾的标记中,其基本的语法格式如下所示。

<%=    expression    %>

在上述语法格式中,JSP表达式中的变量或表达式的计算结果将被转换成一个字符串,然后插入到JSP页面输出结果的相应位置处。

需要注意的是

“<%=”和“%>”标记之间插入的是表达式,不能插入语句“<%=”是一个完整的符号,“<%”和“=”之间不能有空格且JSP表达式中的变量或表达式后面不能有分号(;)

二、JSP注释

同其他各种编程语言一样,JSP也有自己的注释方式,其基本语法格式如下。

<%-- 注释信息 --%>

需要注意的是,Tomcat在将JSP页面编译成Servlet程序时,会忽略JSP页面中被注释的内容,不会将注释信息发送到客户端
 

三、page指令

在 JSP 页面中,经常需要对页面的某些特性进行描述,例如,页面的编码方式、JSP 页面采用的语言等,这时,可以通过page指令来实现。

page指令的具体语法格式如下所示。

<%@ page 属性名1= "属性值1" 属性名2= "属性值2" ...%>

在上面的语法格式中,page用于声明指令名称,属性用来指定JSP页面的某些特性。page指令提供了一系列与JSP页面相关的属性,如下图。

除了import属性外,其他的属性都只能出现一次,否则会编译失败。

需要注意的是,page指令的属性名称都是区分大小写的。

四、include指令

在实际开发时,有时需要在JSP页面静态包含一个文件,例如HTML文件、文本文件等,这时,可以通过include指令来实现。include指令的具体语法格式如下所示。

<%@ include file="被包含的文件地址"%>

include指令只有一个file属性,该属性用来指定插入到JSP页面目标位置的文件资源。需要注意的是,插入文件的路径一般不以“/”开头,而是使用相对路径

关于include指令的具体应用,有很多问题需要注意,接下来,将这些问题进行列举,具体如下

(1)被引入的文件必须遵循 JSP 语法,其中的内容可以包含静态 HTML、JSP 脚本元素和JSP指令等普通JSP页面所具有的一切内容。

(2)除了指令元素之外,被引入的文件中的其他元素都被转换成相应的Java源代码,然后插入当前JSP页面所翻译成的Servlet源文件中,插入位置与include指令在当前JSP页面中的位置保持一致。

(3)file属性的设置值必须使用相对路径如果以“/”开头,表示相对于当前Web应用程序的根目录注意不是站点根目录),否则,表示相对于当前文件。需要注意的是,这里的 file属性指定的相对路径是相对于文件(file),而不是相对于页面(page)。

五、对基本语法、JSP指令进行案例分析

创建date.jsp和include.jsp文件并将date.jsp包含于include.jsp文件

date.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Date</title>
</head>
<body>
	<%response.setHeader("Refresh","1");//每隔一秒刷新%>
 	<%=new java.util.Date().toLocaleString()%>  <%--输出时间 --%>
</body>
</html>

include.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<%!int a = 1, b = 2;//定义两个变量a\b%>


<%!
	public String print() { //自定义方法
		String str = "This is a method";//方法内变量
		return str;
	}
%>
<body>
	欢迎你,现在的时间是:
	<%@ include file="date.jsp"%><%--将date.jsp页面包含进来 --%>
	<br> a+b的和是:
	<%=a + b%>
	<br> 自定义方法的输出:
	<%=print()%>
</body>
</html>

运行代码

访问include.jsp



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏至xz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值