32、JAVA_WEB开发基础之jsp
是什么
是簡化servlet的一種技術,將html語句和java代碼混合在一個文件中進行編寫,只對網頁中動態產生的內容用java代碼編寫,靜
態內容仍用html語句編寫
運行原理
jsp本質上是一個servlet ,每個jsp頁面第一次被訪問時,jsp引擎將它翻譯成一個servle源程序,接著再把這個servlet源程序翻譯
成servlet的class類文件,然后再由web容器像調用普通servle程序一樣的方式加載和解釋執行這個由jsp頁面翻譯成的servlet程
序,這一部分在服務器中進行
生命周期
分三個階段:
1、翻譯階段:.jsp 文件 → .java文件
2、編譯階段:.java 文件 → .class文件
3、執行階段: 執行.class文件
均在web容器中進行
域對象
jsp中有四個域對象:pageContext、request、session、application(對屬性的作用域的范圍從小到大)
pageContext:屬性的作用范圍是當前jap頁面
request:屬性的作用范圍僅限于同一個請求
session:屬性的作用范圍限于一次會話,瀏覽器打開知道關閉稱之為一次會話
application:屬性的范圍限于當前web應用,范圍最大的屬性作用范圍,只要在一處設置屬性,處處可得
內置對象
jsp中有九個內置對象:
1、request對象:?javax.servlet.httpServletRequest類型的對象。 封裝了用戶提交的請求信息,該對象代表了客戶端的請求信
息,主要用于接受通過HTTP協議傳送到服務器的數據。request對象的作用域為一次請求轉發
2、response對象:代表的是對客戶端的響應,主要是將JSP容器處理過的對象傳回到客戶端。response對象也具有作用域,它
只在JSP頁面內有效。
3、session對象:由服務器自動創建的與用戶請求相關的對象。服務器為每個用戶都生成一個session對象,用于保存該用戶的信
息,跟蹤用戶的操作狀態。
4、application對象:可將信息保存在服務器中,除非服務器關閉,否則application對象中保存的信息會在整個應用中都有效。
5、out 對象:用于在Web瀏覽器內輸出信息,并且管理應用服務器上的輸出緩沖區。在使用 out 對象輸出數據時,可以對數據緩
沖區進行操作,及時清除緩沖區中的殘余數據,為其他的輸出讓出緩沖空間。待數據輸出完畢后,要及時關閉輸出流。
6、pageContext 對象:可以取得任何范圍的參數,通過它可以獲取 JSP頁面的out、request、reponse、session、application 等
對象。pageContext對象的創建和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext對象。
7、config 對象:主要作用是取得服務器的配置信息。通過 pageConext對象的 getServletConfig() 方法可以獲取一個config對
象。當一個Servlet 初始化時,容器把某些信息通過 config對象傳遞給這個 Servlet。 開發者可以在web.xml 文件中為應用程序環
境中的Servlet程序和JSP頁面提供初始化參數。
8、page 對象:代表JSP本身,只有在JSP頁面內才是合法的。 page隱含對象本質上包含當前 Servlet接口引用的變量,類似于
Java編程中的 this 。
9、exception 對象 :作用是顯示異常信息,只有在包含 isErrorPage="true" 的頁面中才可以被使用,在一般的JSP頁面中使用該
對象將無法編譯JSP文件。
表達式
一個用于輸出結果的簡化形式 <%= 要輸出的數據(類似于print)?%>
指令
有三個指令:include、page、taglib
基本格式:<%@ 指令 屬性=值 % >
1、include: 靜態包含,源碼級包含,直接將包含的文件的所有代碼加到主文件中,只生成一個servlet源文件
<%@ include file="b.jsp" %>
2、page:用于定義jsp頁面的各種屬性
? ? ? language:合法語言
? ? ? extends:當前的jsp被翻譯成servlet時需要繼承哪些類
? ? ? import:導入的包
? ? ? session:true表示當前頁面可以使用session隱藏對象,false表示不能使用session
? ? ? errorPage:指定若當前頁面出現錯誤的實際相應的頁面是什么,/表示的是當前web應用的根目錄
? ? ? isErrorPage:指定當前頁面是否為錯誤處理頁面,可以說明當前頁面是否可以使用exception隱藏對象,錯誤頁面不建議直接可以訪問
? ? ? contentType:指定當前jsp頁面的響應類型
? ? ? pageEncoding:指定當前jsp頁面的字符編碼
? ? ? isELIgnored:指定jsp頁面是否可以使用EL表達式
3、taglib:描述了jsp頁面所使用的標簽庫,用于引入第三方標簽庫
標簽
jsp中有三個標簽:
1、<jsp:include page=""></jsp:include>:動態引入,生成兩個servlet源文件,通過方法的凡是將目標頁面包含進來
2、<jsp:forward page="/include/b.jsp"></jsp:forward>: 直接轉發,相當于轉發,可以使用jsp:param自標簽向b.jsp傳入一些參數
3、<jsp:javaBean> :可用于引入實體bean
jsp頁面亂碼問題解決
1、頁面的編碼要保持一致,還需要保證瀏覽器顯示的字符編碼保持一致,一般都使用utf-8
2、設置編碼格式:request.setCharacterEncoding("utf-8");? ? ?response.setCharacterEncoding("utf-8");
總結
以上是生活随笔為你收集整理的32、JAVA_WEB开发基础之jsp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玄派玄意星笔记本上架:i5 + 32G
- 下一篇: 投影仪怎么调对比度 有什么步骤