1、內置對象、域對象html
NO. | 內置對象 | 類型 |
1 | pageContext | javax.servlet.jsp.PageContext |
2 | request | javax.servlet.http.HttpServletRequest |
3 | response | javax.servlet.http.HttpServletResponse |
4 | session | javax.servlet.http.HttpSession |
5 | application | javax.servlet.ServletContext |
6 | config | javax.servlet.ServletConfig |
7 | out | javax.servlet.jsp.JspWriter |
8 | page | java.lang.Object |
9 | exception | java.lang.Throwable |
2、JSP中的Java元素java
<!--聲明--> <%! int i = 0; > <jsp:declaration> int i = 0; </jsp:declaration> <!--Java腳本--> <% out.println("你的 IP 地址 " + request.getRemoteAddr()); %> <jsp:scriptlet> out.println("你的 IP 地址 " + request.getRemoteAddr()); </jsp:scriptlet> <!--表達式--> <%= %> <jsp:expression> </jsp:expression>
3、指令與動做express
指令有三種服務器
動做有十種session
include指令與動做的區別:include指令是在JSP編譯成servlet以前將頁面合併,include動做是在執行servlet時引入指定的資源;app
4、page指令詳解jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
1.charset=UTF-8和pageEncoding="UTF-8"的區別編碼
pageEncoding是jsp文件自己的編碼spa
contentType的charset是指服務器發送給客戶端時的內容編碼翻譯
JSP要通過兩次的「編碼」,第一階段會用pageEncoding,第二階段會用utf-8至utf-8,第三階段就是由Tomcat出來的網頁,用的是contentType。
第一階段是jsp編譯成.java,它會根據pageEncoding的設定讀取jsp,結果是由指定的編碼方案翻譯成統一的UTF-8 JAVA源碼(即.java),若是pageEncoding設定錯了,或沒有設定,出來的就是中文亂碼。
第二階段是由JAVAC的JAVA源碼至java byteCode的編譯,不論JSP編寫時候用的是什麼編碼方案,通過這個階段的結果所有是UTF-8的encoding的java源碼。
若是JSP沒有顯示的使用 <%@ page session="false"%> 關閉session,則JSP文件在編譯成Servlet時將會自動加上這樣一條語句 HttpSession session = HttpServletRequest.getSession(true);這時session才被建立
5、EL表達式
EL表達式是JavaEE標準,不須要引入任何額外的jar包
${}和<%= %>的區別有
<%=%>裏面寫的是java代碼,${}是EL表達式,能夠直接取某個範圍內的值
${}EL表達式在JSP2.0以上才支持
${}不能用方法
EL的取值範圍是page,request,session,application默認會依次進行選擇
${}中使用條件表達式 ${memberUser.sex eq 1 ? "男":"女"}
${}比較 == eq empty not empty !=
${}bool表達式,使用 &&和|| 組合兩個表達式
JSP的聲明週期與servlet類似,多了一個將JSP解析編譯成servlet的過程;