1. 程式人生 > >Servlet進階(三)JSP的靜態引入和動態引入

Servlet進階(三)JSP的靜態引入和動態引入

前言

      本章學習JSP靜態引入和動態引入的相關知識

方法

1.概念

我們通過前面的知識已經基本掌握了一個JSP頁面的基本組成。

問題:多個JSP檔案存在相同的資料,這個時候就很難受了。如果需求一改,我們要將這些JSP統統改一遍,十分繁瑣。

解決:使用JSP的引入功能

2.JSP的靜態引入

語法:<%@include file="JSP檔案路徑"%>

例項:在login.jsp中引入first.jsp

login.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>使用者登入</title>
  </head>
  <body>
  <%@include file="first.jsp"%>
  <form action="/login.do" method="post">
    使用者名稱:<input type="text" name="username"><br>
    密碼:<input type="text" name="password"><br>
    <input type="submit" value="登入">
  </form>
  </body>
</html>

first.jsp:

<%@ page pageEncoding="utf-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    我是引入的頁面
</body>
</html>

訪問login.jsp,我們觀察效果:

作用在於將引入的頁面內容連同主頁面內容一起轉化servlet進行展示

2.JSP動態引入

語法:<jsp:include page="JSP檔案路徑"></jsp:include>

例項:在login.jsp中引入first.jsp

login.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>使用者登入</title>
  </head>
  <body>
  <jsp:include page="first.jsp"></jsp:include>
  <form action="/login.do" method="post">
    使用者名稱:<input type="text" name="username"><br>
    密碼:<input type="text" name="password"><br>
    <input type="submit" value="登入">
  </form>
  </body>
</html>

訪問login.jsp,我們觀察效果:

我們發現,它和靜態引入實現了同樣的功能,那麼一個問題就出現了,靜態引入和動態引入有什麼區別?

原理:

靜態引入是將要引入的檔案合併入主檔案一起編譯形成一個servlet 

動態引入同時將倆個jsp轉譯為兩個servlet,主檔案轉譯的servlet呼叫要引入的檔案轉譯的servlet

通過上面原理的理解,我們知道:

靜態引入先合併後處理Java程式碼

動態引入是先處理各自的Java程式碼,再進行合併,也就是先處理後合併

換句話說:動態引入可以宣告同名Java變數,靜態引入則不行!