JSP-基礎語法的解釋

每個語言都有它自己的語法,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現在已經過時了,但是博主認爲,學習本該如此,我們也應該瞭解一下我們的前輩爲我們留下的東西。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章