JSP的出現,主要是簡化了對頁面的輸出。其本質是一個servlet。
- JSP概念
- JSP文法
- 3個指令
- 6個動作标簽
- 9個内置對象
一、JSP概念
JAVA伺服器頁面 ,可以寫HTML,也可以寫JAVA代碼。會自動把标簽列印到頁面,可以簡化書寫。JSP本質上是一個servlet。包含内容可以概括成:
- 3個指令
- 6個動作标簽
- 9個内置對象
二、JSP文法
- 腳本:用于辨別JAVA代碼的
- <%!….%>:定義全局成員(定義在類中,方法外)
- <%…..%>:定義局部成員的(定義在service方法中)
- <%=….%>:定義輸出語句(列印在頁面上)
-
注釋
<%–……–%>:裡面的注釋不會顯示在頁面上,可以注釋JSP腳本
三、3個指令
- 作用
- 指令用于配置JSP檔案的資訊;
- 用于加載一些資源
- 指令格式
<%@ 指令名稱 屬性名=“屬性值” %>
- 指令分類
- page:用于配置JSP檔案的資訊;
- language:用于指定伺服器立端使用的語言環境,就一個值JAVA
- import:用于導包,可以定義多個包
- pageEncoding: 指定頁面編碼
- contentType:告訴浏覽器,目前頁面的編碼方式
- autoFlush:自動重新整理緩沖區
- buffer:response輸出流的緩沖區大小,預設8KB
- errorPage:指定錯誤頁面的路徑。在XML中,通過
來指定錯誤頁面,如:<errorPage>
<%@ page language="java" import="java.util.*,java.io.InputStream" pageEncoding="utf-8" autoFlush="true" buffer="8kb" errorPage="500.jsp"%>
- include:用于包含
<%@ include file="b.jsp"%>
- taglib:加載一些資源檔案
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- page:用于配置JSP檔案的資訊;
四、6個動作标簽
動作标簽的作用是用來簡化java腳本。
-
相當于是建立了一個對象<java:useBean >
-
相當于類中的set方法<java:setProperty>
-
相當于類中的get方法<java:getProperty>
//1.正常的類中建立一個對象,指派,取出的過程
User user = new User();
user.setUsername("zhangsan");
out.print(user.getUsername());
//2.jsp中動作标簽的方法
<java:useBeam id="user" class="com.skystone.domain.User">//建立user對象,其實用的是反射的方法
<java:setProperty name="user" property="username" value="lisi">//向成員變量username中指派
<java:getProperty name="user" property="username" >//通過get得到值,會列印到頁面上
-
動态包含,先生成兩個類,再把結果合并<java:include>
-
要跳轉的頁面<java:forward>
-
跳轉時,要傳遞的參數值<java:param>
<jsp:forward page="/result.jsp" >//轉向result頁面
<jsp:param value="zhangsan" name="username"/>//傳遞參數
</jsp:forward>
五、9個内置對象
在JSP轉換為的servlet中的service方法中初始化好的對象。在jsp中可以直接使用
- application :ServletContext
- session:HttpSession
- request:HttpServletRequest
- pageContext:PageContext
- 域對象,域的範圍,目前頁面
- 擷取其它八個内置對象
- response:HttpServletResponse
- out:response的輸出流等價
- page:就是this,目前對象
- exception:異常對象,Throwable
- config:ServletConfig對象
out與response.write()的差別
- 差別:當伺服器響應之前,會先将out緩沖區的資料重新整理到response中,再從response緩沖區擷取資料。作出響應。
- 結論:兩個不要一起使用,
六、JSP應用理念
- jsp頁面中一定不要寫java代碼(為了後期的可維護性和代碼的簡潔性)
- jsp開發時,要遵循MVC和javaweb的三層結構