每個語言都有它自己的語法,JSP作爲Java動態web的實現,它有着它自己擴充的一些語法,當然它裏面支持Java的所有語法。
JSP註釋
<%--JSP註釋內容--%>
在JSP中還能使用HTML的註釋方法:
<!--HTML註釋內容-->
兩者的區別就是,HTML的註釋會顯示到客戶端,但是JSP的註釋不會顯示到客戶端。
JSP腳本片段
<%--JSP嵌入java代碼--%>
<%
//這裏面可以直接編寫Java代碼,和平時的Java可以一致
//這裏面聲明的Java代碼最終都會被生成到_jspService()方法中
%>
我們在JSP的原理中已經明確知道了它的運行原理,它會將這其中的Java代碼按順序生成到對應的文件中,所以我們在一個JSP頁面中利用這種方式可以實現Java代碼的編寫。
JSP表達式
<%--JSP輸出表達式:用於程序向客戶端的輸出--%>
<%=java變量或者表達式%>
<%--JSP輸出表達式:相當於如下java代碼--%>
<%
response.getWriter().write(表達式或變量的內容轉字符串);
%>
這個JSP的表達式就是用來向客戶端直接輸出JSP中Java變量或者Java表達式的值。
JSP聲明
<%--JSP聲明--%>
<%!
//這裏面也是Java代碼,但是這裏面是用於聲明該JSP生成的對應類中的成員
//可以聲明成員變量,也可以聲明成員方法,還能靜態代碼塊...
%>
它一般用於聲明該JSP中的成員。
舉例如下:
先定義一個學生類:
package cn.ara.pojo;
public class Student {
private int id;
private String name;
private String sex;
private int age;
//構造方法、geter和setter省略
}
定義一個JSP頁面:
<%--導入該JSP所需的包--%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="cn.ara.pojo.Student" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP首頁</title>
</head>
<body>
<%--JSP聲明 start--%>
<%!
static {
System.out.println("這是該類中的靜態代碼塊");
}
private String author = "Ara_Hu";
public void myMethod() {
System.out.println("這是" + author + "聲明的方法");
}
%>
<%--JSP聲明 end--%>
<%--這是JSP的註釋--%>
<!--這是HTML的註釋-->
<%--JSP腳本片段 start--%>
<%
//模擬查詢數據庫的數據
ArrayList<Student> students = new ArrayList<>();
students.add(new Student(1, "小明", "男", 18));
students.add(new Student(2, "小紅", "女", 19));
students.add(new Student(3, "小剛", "男", 18));
students.add(new Student(4, "小Ara", "男", 20));
students.add(new Student(5, "小胡", "男", 20));
%>
<%--JSP腳本片段 end--%>
<table border="1px">
<thead>
<tr>
<th>編號</th>
<th>姓名</th>
<th>性別</th>
<th>年齡</th>
</tr>
</thead>
<tbody>
<%--嵌套語句循環輸出數據 start--%>
<%
for (Student student : students) {
%>
<tr>
<th><%=student.getId()%>
</th>
<th><%=student.getName()%>
</th>
<th><%=student.getSex()%>
</th>
<th><%=student.getAge()%>
</th>
</tr>
<%
}
%>
<%--嵌套語句循環輸出數據 end--%>
</tbody>
</table>
</body>
</html>
然後直接啓動Tomcat運行,效果如下:
我們發現成功的將模擬的數據遍歷在客戶端了,而且我們還發現,我們審查元素時,看不到一點我們編寫的Java代碼,並且也沒有看到我們聲明的JSP註釋。
我們可以直接看該JSP生成的java文件:
在這裏插入代碼片
我們發現我們在JSP聲明中的代碼直接放在了該類的成員中。
我們編寫的其他Java腳本和HTML代碼都被整理到了_jspService方法中。
雖然JSP現在已經過時了,但是博主認爲,學習本該如此,我們也應該瞭解一下我們的前輩爲我們留下的東西。