下面程式碼示範的是JavaFX進程命令列參數的實例。大家可以參考一下。
1.概述
JSP文件是透過三大指令,九大物件以及JSP表達式等與HTML語句結合形成的一個文件,其本質為Servlet。簡單來說,即Java程式碼+HTML語句。
2.運行原理
每個JSP頁面被訪問時,即被JSP引擎翻譯為一個Servlet源程序,該源程序再被編譯成Servlet的class類文件。之後的執行流程與普通Servlet的執行一致。 Servlet引擎將class類別檔案裝載並翻譯執行。
3.九大對象
JSP有9個內建對象,不需要聲明就可以使用。
(1)request:實際上就是HTTPServletRequest。
(2)response:實際上是HTTPServletResponse。
(3)pageContext:代表當前JSP頁面,幾乎包含了當前JSP頁面的所以信息,也可以從該對像中獲取其它八個對象。
(4)session:代表瀏覽器和伺服器的一次會話,是HttpSession的一個物件。
(5)out:可以直接透過該物件的方法在頁面輸出文字資訊或HTML程式碼。
(6)application:代表目前WEB應用,是ServletContext物件。
(7)exception:在聲明了後可以透過該物件輸出異常資訊。
(8)config:目前JSP對應的Servlet的ServletConfig對象,若要存取目前JSP的設定參數,需要映射存取才可以。
(9)page:指向目前Jsp對應的Servlet物件的參考 ,但是為object型別。
其中最為常用也最為重要的四個物件依作用域範圍如下:
pageContext:作用域為目前JSP頁面。透過引入的文件中的變數等當前頁面也可以存取。但是透過pageContext.include("file")引入文件的變數和參數並不能直接在當前頁面使用和修改,該方法的實質是將file中的內容原封不動地添加在當前頁面,可以理解為將HTML頁面直接拼接在該位置。
request:作用範圍在請求轉送的過程中一直有效。
session:作用域為瀏覽器和伺服器的一次會話。直覺表現在瀏覽器的一次開啟與關閉。應用案例如購物網站中購物車的實現。
application:當應用程式裝載在伺服器中時有效。該應用程式從伺服器卸載或重新裝載,以及伺服器關閉等都會導致該物件失效。應用案例如網站統計造訪人數。
與屬性相關的方法:
Object getAttribute(String name)取得指定的屬性
〜) get getAttriute(LgetAttriute)( Attribute(String name)移除指定的屬性
setAttribute(String name,Object o)設定屬性
4.三大指令
(1)page:聲明頁面資訊或匯入內容
① 導入檔案
① 導入所需的jar包。外部新增的jar包一般存放在Web項目下 WEB-INFlib、
<%@ page import="java.util.*"%>
② 關閉session,session預設為開啟。
<%@ pagesession="false" %>
③ 目前頁面出錯則跳到"file"頁。並且該跳轉方式為請求轉送。
<%@ page errorPage="file"%>
④ 上文的"file"頁面,可以對頁面錯誤做處理或說明,可以配合exception物件使用。
<%@ page isErrorPage="true"%>
⑤ 目前JSP頁面的字元編碼(JSP檔案編碼)
<%@ page pageEncoding="utf-8"%>
⑥ 當前JSP頁面的回應類型(伺服器發送給瀏覽器的內容『
<%@ page contentType="text/html; charset=utf-8"%>
⑧ 指定JSP頁面的信息,可以使用getServletInfo()方法獲取到該字串
<%@ page isELInored="false" %>
(2)include指令:將其它文件包含進來與當前頁面進行合併。這類文件通常包括文字、JSP或其他格式的文件。
① 靜態引入:通知JSP引擎在翻譯JSP頁面時,將其他來源檔案合併到目前JSP頁面轉換成的Servlet來源檔案中。兩個來源檔案合併為一個Servlet來源檔案。 "file"為相對路徑。
<%@ include page="file"%>
②动态引入:该句被执行时程序通过请求转发跳转到"file",执行当中的内容之后再返回执行当前页面的剩余部分,实际是两个Servlet源文件
<jsp:include page="file"></jsp:include>
(3) taglib: 能够让用户根据需求自定义新的标签,便于功能的实现,但因此也导致了代码易读性不高。
5.其它
(1) JSP表达式:可以直接将表达式中的内容显示在浏览器中
<%= "Hello World!" %>
(2) 声明函数
<%! pulic void function(){ out.println("Hello World!"); }%>
(3)注释
<!-- 客户端注释,客户端查看源可以看到 -->
<%-- 服务端注释,客户端查看不到 --%>