日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

32、JAVA_WEB开发基础之jsp

發布時間:2023/12/3 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。