簡單!JSP基礎知識

編程語言 JSP HTML Java 天真無邪快樂的程序員 天真無邪快樂的程序員 2017-10-07

JSP基礎

1.JSP 是一種運行在 WEB 服務器的腳本語言,它的本質就是 Servlet .

page.jsp --"翻譯"--> page_jsp.java --"編譯"--> page_jsp.class

2.jsp的作用

* Servlet

> 缺點:不適合設置html響應體,需要大量的response.getWriter().print("html")

> 優點:動態資源,可以編程

* html

> 缺點:html是靜態頁面,不能包含動態信息

> 優點:不用為輸出html標籤而發愁

* jsp(java server pages)

> 優點:在原有html的基礎上添加java腳本,構成jsp頁面

3.jsp和Servlet的分工

* JSP

> 作為請求發起頁面,例如顯示錶單、超鏈接

> 作為請求結束頁面,例如顯示數據。

* Servlet

> 作為請求中處理數據的環節

4.JSP文件中可以出現的 JSP "元素":

--> 指令: 程序通過 JSP 源碼 向 JSP 容器 ( Tomcat ) 下達的命令

<%@ 指令名稱 屬性名稱="屬性值" %>

page指令 --> <%@ page language="java" %>

include指令 --> <%@ include file="inner.jsp" %>

使用 include 指令可以包含 一個 .html 、.jsp 、 .txt 文件(只能是字符文件,不能是圖片等文件,也不能是 Servlet )

使用 include 包含一個文件,包含操作發生在 .jsp 被翻譯成 .java 階段

5.include產生的亂碼問題

pageEncoding和contentType兩種屬性的區別:

1)pageEncoding是jsp文件本身的編碼

2)contentType的charset是指服務器發送給客戶端時的內容編碼

方法一:在html代碼首行加上<%@ page language="java" pageEncoding="UTF-8" %>

taglib指令 -->

<c:forEach begin="1" step="2" end="11" var="x">

${ x }

</c:forEach>

--> 表達式:

<%= 表達式 %>

<%= reqeust.getContextPath() %>

--> 聲明:

<%! 聲明屬性或方法 %>

<%! public String name = "Java Server Pages"; %>

--> 腳本:(java代碼片段)

<% 直接書寫 Java 代碼塊 %>

<%

for( int i = 0 ; i < 10 ; i ++ ) {

System.out.println( i ) ;

}

%>

--> JSP註釋: 只存在於 JSP 文件中,相應的 .java 文件和 .class 文件中都不存在

<%-- JSP註釋的內容 --%>

6.jsp的組成

* jsp = html + java腳本 + jsp標籤(指令)

* jsp中無需創建即可使用的對象一共有9個,被稱之為9大內置對象。例如:request對象,out對象

request、response、session、application、pageContext、config、out、page、exception

* 3種java腳本

> <%...%>:java代碼片段(常用),用於定義0~N條java語句!

方法內能寫什麼,它就能放什麼

> <%=...%>:java表達式,用於輸出(常用),用於輸出一條表達式(或變量)的結果

System.out.println();括號內能放什麼,它就能放什麼

> <%!...%>:聲明,用來創建類的成員變量和成員方法(基本不用,但容易被考到)

class MyClass{

類體中能放什麼,<%!...%>內就能放什麼

}

案例:演示jsp中java腳本的使用

案例:演示jsp與servlet分工

7.jsp原理(理解)

* jsp其實是一種特殊的servlet

> 當jsp頁面第一次被訪問時,服務器會把jsp編譯成java文件(這個java其實是一個servlet類)

> 然後再把java編譯成.class文件

> 然後創建該類對象

> 最後調用它的service()方法

> 第二次請求同一jsp時,直接調用service方法

* 在tomcat的work目錄下可以找到jsp對應的.java源代碼

* 查看jsp對應java文件;

> java腳本

> html

8.jsp註釋

<%-- --%>

JSP 的 9 個標準內置對象

* application

類型:ServletContext

* request

類型: HttpServletRequest

* response

類型:HttpServletResponse

* session

類型:HttpSession

* pageContext

類型:PageContext

* out

類型:JspWriter

* config

類型: ServletConfig

* exception

在可能發生異常的頁面中使用 <%@ page errorPage="catch.jsp" %>; 指定錯誤處理頁面

在錯誤處理頁面:只有聲明瞭 <%@ page isErrorPage="true" %> 的頁面才會有 exception 對象存在

* page

類型: Servlet

相關推薦

推薦中...