個人學習之路_第三十四章_jsp

jspcss

在只有servlet時,輸出頁面內容比較麻煩(成本高,java代碼中輸出HTML標籤),因此須要一種技術,主要是HTML頁面的代碼
(HTML,css,js),能夠嵌入java代碼,來實現動態頁面的效果。這種技術就叫作 : JSPhtml

JSP:java server Page : 動態頁面技術,JSP就是Servlet。java

如何開發一個JSP:
在項目目錄中建立一個 .jsp 的文件
文件內容的第一個行:<%@ page contentType="text/html;char set=UTF-8" %>
後面能夠跟正常的HTML內容小程序

JSP如何運行的:
根據WEB服務器中的work目錄中的文件。JSP頁面在運行以前,被服務器翻譯成了servlet的源代碼(xxx.jsp -> jsp.java),
而後在內變異成字節碼(xxx_jsp.java->xxx_jsp.class),加載到JVM,運行.瀏覽器

JSP的語法:
1.三種腳本:把java的內容嵌入到THML的靜態部分中的方式
<% java代碼 %> : 普通的可執行的java代碼
<%= 表達式 %> : 計算表達式的值,並替換到頁面的當前位置
<%! 聲明(變量和方法) %> :聲明當前JSP所翻譯成的java類中的成員服務器

2.三種註釋:
1.JSP的註釋: <%-- 註釋內容,能夠多行 --%>
在翻譯時消失
2.java的註釋:<% java代碼,java註釋 %> //單行 /* 多行 */
翻譯是還存在,編譯時消失
3.標籤語言的註釋:<!-- 註釋內容 -->
和其它頁面中的標籤的地位相同,都會被當成內容輸出給瀏覽器(這種註釋儘可能不要用,由於會爆露程
序的結構,會被黑客利用)
因此儘可能優先用JSP的註釋,儘可能不要用標籤註釋。session

3.三個編譯指令:在翻譯和編譯JSP時的一些設置
<%@ page %> : 設置當前JSP頁面中的一些信息

contentType:設置內容類型(MIME類型)
pageEncoding:設置頁面使用的字符集
language:使用語言java
errorpage:當頁面中發生異常時,轉跳到哪一個頁面去進行異常處理.
isErrorpage:當前頁面是不是異常處理頁面
import:導包app

<%@ include file=" xxx.jsp " %> : 靜態包含另外一個頁面到本頁面中.
<%@ taglib %> : 引用第三方的標籤庫jsp

七個動做指令(動做標籤)this

< jsp.include page=" "/> : 動態包含.

動態包含和靜態包含的區別:
靜態包含:在翻譯階段,把被包含頁面直接合併到主頁面中,而後編譯、執行。
動態包含:主頁面的被包含頁面是各自進行翻譯和編譯的,在運行的時候,有主頁面經過include的方法
調用被包含頁面

<jsp: forward page=" "/> : 內部轉發
<jsp: param page=" "/> : 在動態包含和內部轉發時傳參數
<jsp: userBean page=" "/> : 使用javaBean
<jsp: getProperty page=" "/> : 取得javaBean的屬性值
<jsp: setProperty page=" "/> : 設置javaBean的屬性值
<jsp: plugin page=" "/> : 在頁面中引入Applet小程序

九個內置對象:事先建立的對象,能夠直接用。

page this(當前JSP頁面所對應的servlet的對象,域對象)
request HttpServletRequest(域對象)
session HttpSession(域對象)
application ServletContext(域對象)
response HttpServletResponse
config ServletConfig
out JspWriter:輸出的內容和JSP頁面中普通的標籤地位相同,使用response.getWriter輸出流輸出的內容,
永遠在頁面以前.
pageContext pageContext
取得全部其餘內置對象
操做域對象
exception Throwable


小總結:
在HTML頁面中嵌入java代碼的一種動態頁面技術。
JSP的本質:servlet(WEB服務器翻譯成servlet的源代碼、編譯、執行)

三種腳本:
<% %> : 普通的java執行語句
<%= %> : 計算表達式的值並替換到頁面中的當前位置
<%! %> : 聲明(類的成員)

三種註釋:
<%-- --%> : 在頁面中直接使用.只在JSP頁面有效
// /**/ : 在<% %>中是使用,翻譯後存在,編譯後消失
<!-- --> : 至關於標籤,因此一直保留到頁面中,儘可能不用
三個編譯指令:
<%@ page %>
contentType
pageEncoding
errorPage
isErrorpage
import
language:java
<%@ include file=" " %> : 靜態包含
<%@ taglib %> : 引用第三方的標籤庫

七個動做標籤:
<jsp: include page=" " > : 動態包含
<jsp: forward >
<jsp: param>
<jsp: useBean>
<jsp: getProperty>
<jsp: setProperty>
<jsp: plugin>

九個內置對象: page (object)this 當前頁面 request HttpServletRequest session HttpSession application ServletContext response HttpServletResponse out JspWriter(注意它和PrintWriter的區別) config ServletConfig pageContext pageContext 取得內置的其餘對象 操做域對象(全部四個域均可以操做,若是不指定域,則默認操做page域,其餘的域須要 經過參數來指定) exception 異常. isErrorpage = true 且其它頁面發生異常並跳轉到本頁面時此對象才存在. isErrorpage = false ,exception不存在,isErrorpage=true.可是髒街訪問的本業面不是從其 它頁面發生異常而跳轉過來的話, exception=null.

相關文章
相關標籤/搜索