JSP筆記

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

指令有三種服務器

  • <%@ page >
  • <%@ include >
  • <%@ taglib >

動做有十種session

  • jsp:include
  • jsp:forward

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的過程;

相關文章
相關標籤/搜索