本讲主要讲解JSP语法,包括JSP注释,JSP脚本元素(Scriptlet,表达式,声明)
JSP注释
注释可增加程序的可读性,易于软件的维护。JSP的注释分为两种,一种是显示注释又称HTML注释,一种是隐藏注释。下面以hello2工程为例来介绍这两种注释的使用方法。
1. 创建工程hello2。在Eclipse中创建工程名为hello2的Dynamic Web Project,在该工程下创建comment.jsp页面。
2. 编辑comment.jsp页面,代码如下。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注释</title>
</head>
<body>
<!-- 这行注释在浏览器查看源代码时能看见 --> ----- HTML注释(输出注释)
<%--这行注释在浏览器查看源代码时不能看见--%> ----- JSP页注释(隐藏注释)
</body>
</html>
3. 将工程部署到Tomcat上,在地址栏上输入:http://localhost:8080/hello2/comment.jsp,运行结果如图2-1。
图2-1 显示注释和隐藏注释的浏览器查看
JSP脚本元素
JSP页面中的脚本元素主要包括:声明(Declaration ),表达式(Expression)和小脚本(Scriptlets)。
1. <%= %> 表达式,用于嵌入Java表达式,这些表达式的结果将加入应答中。也可以用作运行时行为的属性值
2. <%! %> 声明,用于在JSP页面的实现类中声明实例变量和方法
3. <% %> 小脚本,用于嵌入脚本代码
scriptlet
1. 在hello2工程中创建var.jsp编辑var.jsp页面,代码如下。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>1+2+3+...+100</title>
</head>
<body>
<%
int sum = 0;//第1行代码
for (int i = 0; i <= 100; i++)
sum += i;
out.print(sum);//第4行代码
%>
</body>
</html>
2. 在浏览器地址栏上输入:http://localhost:8080/hello2/var.jsp,运行效果如图2-2所示。
表达式
本案例主要讲解表达式的使用方法,案例实现主要功能是计算a+b=c,并将c的值显示到页面上。
1. 在工程hello2中创建expression.jsp页面,编辑后的代码如下 。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP中变量的定义与使用</title>
</head>
<body>
<%
int a,b,c;//第1行代码
a=10;
b=15;
c=a+b;//第4行代码
%>
a+b=<%=c %>
</body>
</html>
2. 运行结果如图2-3所示。
图2-3 表达式的使用
声明
JSP声明用于在JSP程序中合法的声明变量、实例、方法和类。本案例主要介绍在声明下定义变量和在脚本中定义变量的区别。
1. 在工程hello2中创建count.jsp编辑的代码 如下。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP</title>
</head>
<body>
<%!
int i = 0; //声明在<%!>内的变量
%>
<%
int j= 0; //声明在<% >内的变量
%>
i的值:<%= ++i %>
j的值:<%= ++j %>
</body>
</html>
代码解释:当页面运行成功,多次刷新页面之后,大家会看见如图2-4相似的结果。为什么会出现这样的运行结果呢?原因在于声明在<%! %>内的变量和方法是一个类内的变量即成员变量(全局变量)。声明在<%%>内的变量是一个方法的变量(局部变量)。成员变量会被多个对象共享,而局部变量是单独对象访问。所以i会自动增加,j不会递增。
图2- 4 变量的两种定义方式
注:感兴趣的读者可以通过JSP的处理过程这节来验证,即通过生成Java类来验证上面所描述的内容。
本讲义基于《基于BootStrap3的JSP项目实例教程》,提供Eclipse版本的源码和Intellij IDEA版本的源码(maven),附带有课件PPT和教案,需要的请到百度云:http://pan.baidu.com/s/1qWOejwg。