整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          Jsp頁面中常見的page指令

          、《JSP頁面實際上就是Servlet》

          2、《JSP頁面中最常使用的腳本元素》

          3、《JSP頁面隱藏了哪些對象》

          Page指令

          我們在說《JSP頁面中最常使用的腳本元素》的時候,提到了指令標簽

          而Page指令,就是一種極其常見的指令

          之前使用的例子:

          Page指令可以在頁面內隨便放置,一般是放在頁首的位置。

          里面有很多使用:

          (1)language:

          language屬性有默認,寫成別的編譯不了

          寫法是:<%@ page language="java"%>

          (2)extends:

          標明JSP編譯時需要加入的Class的全名,最好不使用它,它會限制JSP的編譯能力.

          寫法是: <%@ page extends="package.class"%>

          (3)import:

          import屬性,寫了之后會自動添加到servlet的import語句中,但不進行包存在性的檢查;

          寫法:<%@ page import="java.util.*"%>

          (4)session:

          Session對象是否參與會話,session="false"就沒有session對象了

          寫法:<%@ page session="false"%>

          (5)buffer:

          buffer屬性指定out對象(JspWriter)使用的緩沖區大小,以kb為單位,默認8kb

          寫法:<%@ page buffer="none"%>

          (6)autoFlush:

          autoFlush屬性控制當緩沖區滿了后,是自動清空輸出緩沖區(默認true),還是在緩沖區溢出后拋出異常(false)。

          寫法:<%@ page autoFlush="true"%>

          (7)isThreadSafe:

          isThreadSafe問你的應用是否是線程安全的,缺省為true,表示應用是線程安全的,可以同時響應多個請求;如果設置為false,那么一次只能處理一個用戶請求。

          寫法:<%@ page isThreadSafe="false"%>

          (8)info:

          定義一個可以在servlet中通過getServletInfo方法獲取的字符串。 jsp容器做的是在servlet中生成getServletInfo方法返回info屬性指定的String

          寫法:<%@ page info="infotext"%>

          (9)errorPage:

          errorPage="relativeURL" 設置處理異常事件的JSP文件。

          isErrorPage="true | false" 設置此頁是否為出錯頁,如果被設置為true,你就能使用exception對象

          寫法:<%@ page errorPage="error.jsp"%>、、<%@ page isErrorPage="true"%>

          (10)isELIgnored:

          isELIgnored忽略el表達式

          寫法:<%@ page isELIgnored="true"%>

          (11)contentType:

          contentType屬性設置發送到客戶端文檔的響應報頭的類型和字符編碼。多個使用;號分開。 pageEncodeing屬性只用于更改字符編碼

          寫法:<%@ page contentType="text/html; charset=UTF-8"%>

          Charset設置的是頁面的字符集、pageEncoding定義的輸出流的字符集

          我們寫整理這些,里面的內容會在學習的過程中不斷擴展,這次我們就做一個小例子

          我們在我們之前的頁面寫一個明顯的錯誤

          然后我們運行服務器

          然后訪問頁面

          點擊提交

          頁面就會出現錯誤

          但是這個看的人有點暈。特別是用戶他不知道這是什么

          我們寫一個錯誤頁面

          我們寫內容

          然后在錯誤頁面引入

          然后就看到我們寫的內容了,這樣就不會出現前面用戶看不懂的情況,我們可以寫我們想寫的

          這個例子最后一個,也出現了Exception中的隱藏對象,記到筆記了,又遇到一個。

          ageEncoding:設置JSP源文件本身和響應正文中的字符集編碼。

          ContentType 屬性指定響應的 HTTP 內容類型。如果未指定 ContentType,默認為 text/HTML。

          語法  Response.ContentType [= ContentType ]

          contentType:設置JSP源文件和響應正文的字符集編碼及MIME類型。

          contentType的charset:設置服務器發送給客戶端時的內容的編碼。

          JSP要經過兩次的“編碼”,第一階段會用pageEncoding,第二階段會用utf-8的.java文件至utf-8的.class文件,第三階段就是由Tomcat傳回瀏覽器的網頁, 用的是contentType。

          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源碼。

          JAVAC用UTF-8的encoding讀取java源碼,編譯成UTF-8 encoding的二進制碼(即.class),這是JVM對常數字串在二進制碼(java encoding)內表達的規范。

          第三階段是Tomcat(或其的application container)載入和執行階段二的來的JAVA二進制碼

          輸出的結果,也就是在客戶端見到的,這時隱藏在階段一和階段二的參數contentType就發揮了功效

          pageEncoding 和contentType的預設都是 ISO8859-1. 而隨便設定了其中一個, 另一個就跟著一樣了(TOMCAT4.1.27是如此). 但這不是絕對的, 這要看各自JSPC的處理方式. 而pageEncoding不等于contentType, 更有利亞洲區的文字 CJKV系JSP網頁的開發和展示, (例pageEncoding=GB2312 不等于 contentType=utf-8)。

          jsp文件不像.java,.java 在被編譯器讀入的時候默認采用的是操作系統所設定的locale所對應的編碼,比如中國大陸就是GBK,臺灣就是BIG5或者MS950。而一般我們不管 是在記事本還是在ue中寫代碼,如果沒有經過特別轉碼的話,寫出來的都是本地編碼格式的內容。所以編譯器采用的方法剛好可以讓虛擬機得到正確的資料。

          但是jsp文件不是這樣,它沒有這個默認轉碼過程,但是指定了pageEncoding就可以實現正確轉碼了。

          舉個例子:

          1.<%@ page contentType="text/html;charset=utf-8" %>

          大都會打印出亂碼,因為輸入的“你好”是gbk的,但是服務器是否正確抓到“你好”不得而知。

          但是如果更改為

          1.<%@ page contentType="text/html;charset=utf-8" pageEncoding="GBK" %>

          這樣就服務器一定會是正確抓到“你好”了。

          需要將文檔移動到一個新的位置時,就需要使用JSP重定向了。

          最簡單的重定向方式就是使用response對象的sendRedirect()方法。這個方法的簽名如下:

          public void response.sendRedirect(String location)throws IOException

          這個方法將狀態碼和新的頁面位置作為響應發回給瀏覽器。您也可以使用setStatus()和setHeader()方法來得到同樣的效果:

          ....String site = "http://www.runoob.com" ;response.setStatus(response.SC_MOVED_TEMPORARILY);response.setHeader("Location", site); ....

          實例演示

          這個例子表明了JSP如何進行頁面重定向:

          <%@ page language="java" contentType="text/html; charset=UTF-8"

          pageEncoding="UTF-8"%><%@ page import="java.io.*,java.util.*" %><html><html><head><title>頁面重定向</title></head><body><h1>頁面重定向</h1><%

          // 重定向到新地址

          String site = new String("http://www.runoob.com");

          response.setStatus(response.SC_MOVED_TEMPORARILY);

          response.setHeader("Location", site); %></body></html>

          將以上代碼保存在PageRedirecting.jsp文件中,然后訪問http://localhost:8080/PageRedirect.jsp,它將會把您帶至http://www.runoob.cc/。

          如您還有不明白的可以在下面與我留言或是與我探討QQ群{{308855039}},我們一起飛!


          主站蜘蛛池模板: 国产激情视频一区二区三区| 国模精品一区二区三区| 久久精品国产一区二区| 杨幂AV污网站在线一区二区| 美女视频一区二区三区| 日韩精品一区二区三区视频| 免费人人潮人人爽一区二区| 国产成人一区二区三区免费视频| 精品国产免费一区二区| 国产精品无码一区二区三区免费| 免费一区二区视频| 成人区精品一区二区不卡 | 在线观看国产区亚洲一区成人| 国产美女口爆吞精一区二区| 日本大香伊一区二区三区| 久久国产视频一区| 伊人色综合视频一区二区三区| 中文乱码人妻系列一区二区| 狠狠综合久久av一区二区 | 亚洲AV无码一区二区二三区软件| 制服丝袜一区二区三区| 人妻夜夜爽天天爽爽一区| 亚洲AV日韩AV一区二区三曲| 国产av一区二区精品久久凹凸| 中文字幕一区精品| 亚洲一区电影在线观看| 免费精品一区二区三区在线观看 | 国产一区二区三区在线2021| 亚洲午夜精品一区二区| 欧美日韩精品一区二区在线视频| 色欲AV无码一区二区三区| 日韩精品无码一区二区三区AV| 人妻天天爽夜夜爽一区二区| 亚洲Av永久无码精品一区二区| 日韩经典精品无码一区| 国模吧一区二区三区| 日本一区二区三区免费高清| 亚洲国产专区一区| 3d动漫精品啪啪一区二区免费| 日韩视频在线一区| 国产一区二区内射最近更新|