一、JSP介紹
JSP全稱Java Server Pages,是一種動態網頁技術,它可以將Java代碼嵌入HTML頁面,實現動態頁面的功能。
下面是一個JSP頁面的簡單示例:
Hello World
上面的代碼中,使用了JSP中的<% %>語法,將Java代碼嵌入到了HTML頁面中,並使用out.println()方法輸出了一句話。在運行時,JSP頁面會被轉換成一個Java Servlet,然後被Web容器執行。
二、JSP基礎語法
1. JSP注釋語法
JSP中的注釋語法和HTML一樣,有兩種:
- HTML注釋:使用
<!-- -->注釋的內容在客戶端是不可見的。 - JSP注釋:使用
<%-- --%>注釋的內容在客戶端也是不可見的,但是會在JSP頁面被轉換成Servlet時被保留。
2. JSP腳本語法
JSP腳本語法是將Java代碼嵌入到JSP頁面中的一種方式,可以使用以下兩種語法:
- 腳本let:使用
<% %>將Java代碼包含在其中。 - 表達式:使用
<%= %>輸出Java表達式的值。
下面是一個使用腳本let和表達式的例子:
Hello World
3. JSP指令語法
指令是一些特殊語句,用於設置JSP頁面的一些屬性。常用的指令有:<%@ page %>、<%@ include %>、<%@ taglib %>等。
下面是一個使用<%@ page %>指令控制JSP頁面編碼的例子:
Hello World
Hello, World!
三、JSP內置對象
JSP內置對象是在JSP頁面中自動創建的,可以使用它們來執行一些常見操作,如獲取請求信息、訪問Session等。
常用的JSP內置對象有:request、response、pageContext、session、application等。
下面是一個使用request、response對象的例子:
Hello World
Request URI:
Remote Address:
Server Name:
Response Status:
四、JSP標籤庫
JSP標籤庫是一組自定義標記,可以方便地擴展JSP功能,提高代碼的可讀性和可維護性。JSP標籤庫可分為兩種:標準標籤庫和自定義標籤庫。
標準標籤庫是由JSP規範定義的,包括了多個標籤庫,如Core、Fmt、Sql等。可以通過<%@ taglib %>指令導入標準標籤庫。
自定義標籤庫是由開發人員自己定義的,可以方便地將重複使用的代碼封裝成標籤,讓JSP頁面更加簡潔、易讀。下面是一個簡單的自定義標籤庫的例子:
1. 編寫tag文件:/WEB-INF/tags/hello.tag
<%@tag language="java" pageEncoding="UTF-8"%>
<%@attribute name="name" required="true" type="java.lang.String" description="The name to say hello to"%>
Hello, <c:out value="${name}"/>!
2. 在JSP頁面中使用標籤:
<%@taglib prefix="my" tagdir="/WEB-INF/tags"%> <my:hello name="World"/>
上面的代碼中,使用了<%@tag %>指令導入了自定義標籤庫,並使用了<my:hello %>標籤輸出了一句話。
五、JSP和Servlet之間的關係
JSP和Servlet在本質上是一樣的,都是用Java語言編寫的,只不過JSP是在HTML頁面中嵌入Java代碼,而Servlet是純Java代碼。在底層,JSP頁面在運行時會被轉換成一個Servlet,然後在Web容器中執行。
下面是一個簡單的Servlet和JSP頁面的例子:
1. 編寫Servlet:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
String message = "Hello, World!";
request.setAttribute("message", message);
RequestDispatcher rd = request.getRequestDispatcher("/hello.jsp");
rd.forward(request, response);
}
}
2. 編寫JSP頁面:
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<p>Message: <c:out value="${message}"/></p>
</body>
</html>
上面的代碼中,Servlet設置了一個名為message的屬性,並將請求轉發到了/hello.jsp頁面,然後在JSP頁面中使用了標籤輸出了這個屬性的值。
六、JSP小結
JSP是一種將Java代碼嵌入HTML頁面的動態網頁技術,它包含了腳本語法、指令語法、內置對象和標籤庫等功能。JSP和Servlet在底層是一樣的,都是Java代碼,只不過在表現形式上有所不同。使用JSP可以大大提高代碼的可讀性和可維護性,同時也能方便地實現動態網頁的功能。
原創文章,作者:JYGDH,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/369443.html
微信掃一掃
支付寶掃一掃