JSP的特點:
?????????1. jsp的運行必須交給tomcat.
?????????tomcat的work目錄:tomcat服務器存放jsp運行時的臨時文件。
?????????2. jsp頁面既可以寫html代碼,又可以寫java代碼,而html頁面不可以寫java代碼。
- Jsp就是一個servlet程序
- servlet的技術可以用在jsp程序中
- jsp的技術并不是全部適用于servlet程序
servlet與jsp
Servlet的生命周期:
?????????1)構造方法(第1次訪問)
?????????2)init方法(第1次訪問)
?????????3)service方法
?????????4)destroy方法
Jsp的生命周期
?????????1)翻譯: jsp->java文件
?????????2)編譯: java文件->class文件(servlet程序)
?????????3)構造方法(第1次訪問)
?????????4)init方法(第1次訪問):_jspInit()
?????????5)service方法:_jspService()
?????????6)destroy方法:_jspDestroy()
jsp表達式
?????????語法:<%=變量或者表達式%>
?????????作用:向瀏覽器輸出變量的值或表達式的結果
jsp腳本
?????????語法:<%java代碼%>
?????????作用:執行java代碼,把java中的代碼原封不動的拷貝到_jspService方法中執行
?????????注意:腳本中不能聲明方法(不可以方法中套方法),jsp聲明中不能重復定義翻譯好的一些發放
Jsp的注釋
?????????語法: <%!-- jsp注釋 --%>
?????????注意:html的注釋會被翻譯和執行。而jsp的注釋不能被翻譯和執行
jsp指令
- include指令
?????????作用:用于在當前頁面包含其他頁面
?????????作用: 在當前頁面用于包含其他頁面
?????????語法:<%@include file="被包含的jsp的路徑"%>
?????????注意:
?????????1)原理是把被包含的頁面的內容翻譯到包含頁面中,合并成翻譯成一個java源文件,再編譯運行!,這種包含叫靜態包含(源碼包含)
?????????2)如果使用靜態包含,被包含頁面中不需要出現全局的html標簽了!(如html、head、 body)
page指令
?????????作用: 告訴tomcat服務器如何翻譯jsp文件
<%@ page
language="java" --告訴服務器使用什么動態語言來翻譯jsp文件
import="java.util.*" --告訴服務器java文件使用什么包
導入包,多個包之間用逗號分割
pageEncoding="utf-8" --告訴服務器使用什么編碼翻譯jsp文件(成java文件)
contentType="text/html; charset=utf-8" 服務器發送瀏覽器的數據類型和內容編碼
注意:在開發工具中,以后只需要設置pageEncoding即可解決中文亂碼問題
errorPage="error.jsp" --指定當前頁面的錯誤處理頁面
isErrorPage="false/true" --指定當前頁面是否為錯誤處理頁面。false:不是錯誤處理頁面,則不能使用exception內置對象;true:是錯誤處理頁面,可以使用exception內置對象。
session="true" --是否開啟session功能,true是開啟狀態,可以使用session內置對象
buffer="8kb" --jsp頁面的緩沖區大小為8kb
isELIgnored="false" --是否忽略EL表達式 ```
**注意:**
errorPage="error.jsp"```
是局部處理頁面,全局處理頁面如下所示:
<error-page>
<error-code>500</pagecode>
<location>/500.jsp</location>
<error-code>
</error-page>
<error-page>
<error-code>404</pagecode>
<location>/404.jsp</location>
<error-code>
</error-page>