由於學習android開發,必然要去學習關於Web開發的東西,首先來接觸一下JSP。關於JSP的出現背景、工做原理等東西就暫時不寫了。直接切入正題,怎麼使用JSP。今天先來學習最基礎的JSP指令。html
JSP指令是幹什麼的呢?咱們都知道JSP其實就是簡化的Servlet,JSP指令就是來設置JSP頁面的屬性,告訴編譯器如何生成Servlet,如何處理頁面,如編碼方式等。JSP指令的格式爲:「<%@ JSP指令 %>」。(注:JSP不區分大小寫)
java
JSP的指令標籤主要就是如下三個:android
pageweb
include編程
taglib緩存
1. page指令安全
page從字面理解就是「頁面」,因此page的做用就是聲明整個JSP頁面的相關屬性。其格式以下:session
<%@ page 屬性1="屬性1的值1"[,"屬性1的值2"…]
屬性2="屬性2的值1"[,"屬性2的值2"…]
…
%>多線程
page的主要屬性:app
language屬性
定義了JSP腳本所使用的編程語言,或許這個是用來擴展的,但目前只支持Java,所以只能這樣來寫:
<%@ page language="java" %>
import屬性
爲當前JSP頁面引入要使用的Java包和類,而且import屬性是page指令中惟一能夠屢次使用聲明的屬性,若是引入多個包或類,能夠用「,」分開。如:
<%@ page import="java.lang.*","java.io.*" %>
contentType屬性
定義了JSP頁面響應的MIME類型和字符編碼,根據該屬性判斷文檔的類型。如:
<%@page contentType="text/html;charset=GB2312"%>
contentType默認值默認值是"text/html;charset=ISO-8859-1" 。
經常使用文檔類型有:
HTML:text/html
純文本:text/plain
JPG圖像:image/jpeg
GIF圖像:image/gif
WORD文檔:application/msword
session屬性
用來設置是否須要使用內置的session對象,默認值爲「true」。
autoFlush屬性
當緩衝區滿時,是否自動刷新,默認值爲「true」。
buffer屬性
指定緩存的大小,值爲none或多少kb,在autoFlush爲true的狀況下有效,如:
<%@ page buffer="16kb" %>
isThreadSafe屬性
設置當前JSP頁面是否線程安全,就是是否容許多線程訪問,默認值爲true。
info屬性
描述JSP頁面的信息,爲任意字符串,可使用servlet類的getServletInfo()方法來得到該值。
errorPage屬性
設置一個錯誤處理頁面,當JSP頁面出現異常或錯誤時,會跳轉到該屬性指定的錯誤頁面,其值爲指定的某個JSP頁面的相對路徑。
isErrorPage屬性
設置該JSP頁面是否爲錯誤處理頁面,默認值爲false。
固然,page指令還有幾個其餘不經常使用或已經取消的屬性,就是由於基本不會涉及,瞭解不瞭解都無所謂了。
2. include指令
include指令應該是最簡單的了,就是指定當前JSP頁面包含一個其餘的文件,從而和當前文件組成一個總體的文件。該指令能夠屢次使用。全部包含的文件的源碼至關於添加到當前JSP文件中,編譯成一個class文件,是包含編譯的關係,屬於靜態包含文件(後面會有一個動做指令與其類似,但原理不一樣)。其格式以下:
<%@ include file="包含文件的相對路徑" %>
3. taglib指令
taglib指令用來指定當前JSP頁面內使用的JSP標籤庫,標籤的功能很強大,也很高效,也是JSP最經常使用的功能,但目前我也不瞭解到底怎樣,日子很長,慢慢學。taglib指令有兩個屬性,分別指定類庫地址uri和前綴prefix。如:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>