1.JSP声明
JSP声明的语法格式如下:
<%! 声明部分 %>
下面通过一段代码介绍一下
<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage=""%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>声明示例</title>
</head>
<!-- 下面是JSP声明部分 -->
<%!
//声明一个整型变量
public int count;
//声明一个方法
public String info() {
return "hello";
}%>
<body>
<%
//将count的值输出后再加1
out.println(count++);
%>
<br />
<%
//输出info()方法的返回值
out.println(info());
%>
</body>
</html>
浏览器浏览页面时可看到正常输出count值,并且会输出hello的信息。
要点:JSP经过编译后通过JSP声明的变量和方法会对应到编译后的Servlet的成员变量和方法,所以JSP声明定义的变量和方法可以添加访问权限修饰符。但是切记不可使用abstract来修饰声明方法,因为抽象方法将导致JSP对应的Servlet变成抽象类,从而无法实例化。
2.JSP表达式
JSP输出表达式语法格式如下:
<%=表达式 %>
<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage=""%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>声明示例</title>
</head>
<!-- 下面是JSP声明部分 -->
<%!
//声明一个整型变量
public int count;
//声明一个方法
public String info() {
return "hello";
}%>
<body>
<!-- 使用表达式输出变量值 -->
<%=count++%>
<br />
<%=info()%>
<!-- 使用表达式输出方法返回值 -->
</body></html>
表达式的方法替代了上面out.println输出的语句。两者在浏览器页面中显示的完全一致。需要注意的是:表达式后不可有分号!
3.JSP脚本
JSP脚本语法格式如下:
<% Java代码 %>
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> 小脚本测试 </title>
<meta name="website" content="http://www.crazyit.org" />
</head>
<body>
<table bgcolor="#9999dd" border="1" width="300px">
<!-- Java脚本,这些脚本会对HTML的标签产生作用 -->
<%
for(int i = 0 ; i < 10 ; i++)
{
%>
<!-- 上面的循环将控制<tr>标签循环 -->
<tr>
<td>循环值:</td>
<td><%=i%></td>
</tr>
<%
}
%>
<table>
</body>
</html>
上面代码在浏览器显示会显示10行表格,并且输出相应i的值。
要点:JSP脚本部分会转换成编译后的Servlet方法中的可执行性代码,但是Java语法中不允许方法里面定义方法,所以JSP脚本中不可以定义方法!