Servlet進階(三)JSP的靜態引入和動態引入
阿新 • • 發佈:2018-11-26
前言
本章學習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變數,靜態引入則不行!