Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 91福利国产在线在线播放,国产精品久久亚洲一区二区,免费精品久久

          整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢(xún)熱線:

          Jsp頁(yè)面中常見(jiàn)的page指令

          、《JSP頁(yè)面實(shí)際上就是Servlet》

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

          3、《JSP頁(yè)面隱藏了哪些對(duì)象》

          Page指令

          我們?cè)谡f(shuō)《JSP頁(yè)面中最常使用的腳本元素》的時(shí)候,提到了指令標(biāo)簽

          而Page指令,就是一種極其常見(jiàn)的指令

          之前使用的例子:

          Page指令可以在頁(yè)面內(nèi)隨便放置,一般是放在頁(yè)首的位置。

          里面有很多使用:

          (1)language:

          language屬性有默認(rèn),寫(xiě)成別的編譯不了

          寫(xiě)法是:<%@ page language="java"%>

          (2)extends:

          標(biāo)明JSP編譯時(shí)需要加入的Class的全名,最好不使用它,它會(huì)限制JSP的編譯能力.

          寫(xiě)法是: <%@ page extends="package.class"%>

          (3)import:

          import屬性,寫(xiě)了之后會(huì)自動(dòng)添加到servlet的import語(yǔ)句中,但不進(jìn)行包存在性的檢查;

          寫(xiě)法:<%@ page import="java.util.*"%>

          (4)session:

          Session對(duì)象是否參與會(huì)話,session="false"就沒(méi)有session對(duì)象了

          寫(xiě)法:<%@ page session="false"%>

          (5)buffer:

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

          寫(xiě)法:<%@ page buffer="none"%>

          (6)autoFlush:

          autoFlush屬性控制當(dāng)緩沖區(qū)滿了后,是自動(dòng)清空輸出緩沖區(qū)(默認(rèn)true),還是在緩沖區(qū)溢出后拋出異常(false)。

          寫(xiě)法:<%@ page autoFlush="true"%>

          (7)isThreadSafe:

          isThreadSafe問(wèn)你的應(yīng)用是否是線程安全的,缺省為true,表示應(yīng)用是線程安全的,可以同時(shí)響應(yīng)多個(gè)請(qǐng)求;如果設(shè)置為false,那么一次只能處理一個(gè)用戶(hù)請(qǐng)求。

          寫(xiě)法:<%@ page isThreadSafe="false"%>

          (8)info:

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

          寫(xiě)法:<%@ page info="infotext"%>

          (9)errorPage:

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

          isErrorPage="true | false" 設(shè)置此頁(yè)是否為出錯(cuò)頁(yè),如果被設(shè)置為true,你就能使用exception對(duì)象

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

          (10)isELIgnored:

          isELIgnored忽略el表達(dá)式

          寫(xiě)法:<%@ page isELIgnored="true"%>

          (11)contentType:

          contentType屬性設(shè)置發(fā)送到客戶(hù)端文檔的響應(yīng)報(bào)頭的類(lèi)型和字符編碼。多個(gè)使用;號(hào)分開(kāi)。 pageEncodeing屬性只用于更改字符編碼

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

          Charset設(shè)置的是頁(yè)面的字符集、pageEncoding定義的輸出流的字符集

          我們寫(xiě)整理這些,里面的內(nèi)容會(huì)在學(xué)習(xí)的過(guò)程中不斷擴(kuò)展,這次我們就做一個(gè)小例子

          我們?cè)谖覀冎暗捻?yè)面寫(xiě)一個(gè)明顯的錯(cuò)誤

          然后我們運(yùn)行服務(wù)器

          然后訪問(wèn)頁(yè)面

          點(diǎn)擊提交

          頁(yè)面就會(huì)出現(xiàn)錯(cuò)誤

          但是這個(gè)看的人有點(diǎn)暈。特別是用戶(hù)他不知道這是什么

          我們寫(xiě)一個(gè)錯(cuò)誤頁(yè)面

          我們寫(xiě)內(nèi)容

          然后在錯(cuò)誤頁(yè)面引入

          然后就看到我們寫(xiě)的內(nèi)容了,這樣就不會(huì)出現(xiàn)前面用戶(hù)看不懂的情況,我們可以寫(xiě)我們想寫(xiě)的

          這個(gè)例子最后一個(gè),也出現(xiàn)了Exception中的隱藏對(duì)象,記到筆記了,又遇到一個(gè)。

          ageEncoding:設(shè)置JSP源文件本身和響應(yīng)正文中的字符集編碼。

          ContentType 屬性指定響應(yīng)的 HTTP 內(nèi)容類(lèi)型。如果未指定 ContentType,默認(rèn)為 text/HTML。

          語(yǔ)法  Response.ContentType [= ContentType ]

          contentType:設(shè)置JSP源文件和響應(yīng)正文的字符集編碼及MIME類(lèi)型。

          contentType的charset:設(shè)置服務(wù)器發(fā)送給客戶(hù)端時(shí)的內(nèi)容的編碼。

          JSP要經(jīng)過(guò)兩次的“編碼”,第一階段會(huì)用pageEncoding,第二階段會(huì)用utf-8的.java文件至utf-8的.class文件,第三階段就是由Tomcat傳回瀏覽器的網(wǎng)頁(yè), 用的是contentType。

          JSP要經(jīng)過(guò)兩次的“編碼”,第一階段會(huì)用pageEncoding,第二階段會(huì)用utf-8至utf-8,第三階段就是由Tomcat出來(lái)的網(wǎng)頁(yè), 用的是contentType。

          第一階段是jsp編譯成java

          它會(huì)根據(jù)pageEncoding的設(shè)定讀取jsp,結(jié)果是由指定的編碼方案翻譯成統(tǒng)一的UTF-8 JAVA源碼(即.java),如果pageEncoding設(shè)定錯(cuò)了,或沒(méi)有設(shè)定,出來(lái)的就是中文亂碼。

          第二階段是由JAVAC的JAVA源碼至java byteCode的編譯

          不論JSP編寫(xiě)時(shí)候用的是什么編碼方案,經(jīng)過(guò)這個(gè)階段的結(jié)果全部是UTF-8的encoding的java源碼。

          JAVAC用UTF-8的encoding讀取java源碼,編譯成UTF-8 encoding的二進(jìn)制碼(即.class),這是JVM對(duì)常數(shù)字串在二進(jìn)制碼(java encoding)內(nèi)表達(dá)的規(guī)范。

          第三階段是Tomcat(或其的application container)載入和執(zhí)行階段二的來(lái)的JAVA二進(jìn)制碼

          輸出的結(jié)果,也就是在客戶(hù)端見(jiàn)到的,這時(shí)隱藏在階段一和階段二的參數(shù)contentType就發(fā)揮了功效

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

          jsp文件不像.java,.java 在被編譯器讀入的時(shí)候默認(rèn)采用的是操作系統(tǒng)所設(shè)定的locale所對(duì)應(yīng)的編碼,比如中國(guó)大陸就是GBK,臺(tái)灣就是BIG5或者M(jìn)S950。而一般我們不管 是在記事本還是在ue中寫(xiě)代碼,如果沒(méi)有經(jīng)過(guò)特別轉(zhuǎn)碼的話,寫(xiě)出來(lái)的都是本地編碼格式的內(nèi)容。所以編譯器采用的方法剛好可以讓虛擬機(jī)得到正確的資料。

          但是jsp文件不是這樣,它沒(méi)有這個(gè)默認(rèn)轉(zhuǎn)碼過(guò)程,但是指定了pageEncoding就可以實(shí)現(xiàn)正確轉(zhuǎn)碼了。

          舉個(gè)例子:

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

          大都會(huì)打印出亂碼,因?yàn)檩斎氲摹澳愫谩笔莋bk的,但是服務(wù)器是否正確抓到“你好”不得而知。

          但是如果更改為

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

          這樣就服務(wù)器一定會(huì)是正確抓到“你好”了。

          需要將文檔移動(dòng)到一個(gè)新的位置時(shí),就需要使用JSP重定向了。

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

          public void response.sendRedirect(String location)throws IOException

          這個(gè)方法將狀態(tài)碼和新的頁(yè)面位置作為響應(yīng)發(fā)回給瀏覽器。您也可以使用setStatus()和setHeader()方法來(lái)得到同樣的效果:

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

          實(shí)例演示

          這個(gè)例子表明了JSP如何進(jìn)行頁(yè)面重定向:

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

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

          // 重定向到新地址

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

          response.setStatus(response.SC_MOVED_TEMPORARILY);

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

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

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


          主站蜘蛛池模板: 日韩人妻不卡一区二区三区 | 中文激情在线一区二区| 日本一区精品久久久久影院| 高清精品一区二区三区一区| 亚洲一区二区三区深夜天堂| 精品国产日韩亚洲一区| 欧美日韩国产免费一区二区三区| 国产精品伦一区二区三级视频| 亚洲国产高清在线一区二区三区| 亚洲av无码一区二区三区在线播放| 国产在线aaa片一区二区99| 国产aⅴ一区二区三区| 国内精品一区二区三区在线观看 | 国产一区二区三区乱码网站| 国内精品无码一区二区三区| 夜色阁亚洲一区二区三区| 在线观看视频一区二区| 亚洲一区二区免费视频| 亚洲一区二区三区首页| 无码人妻精品一区二区三区夜夜嗨 | 国产婷婷一区二区三区| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲Aⅴ无码一区二区二三区软件| 精品人妻无码一区二区三区蜜桃一| 国产成人精品久久一区二区三区| 亚洲国产精品一区二区久| 无码人妻一区二区三区在线视频| 一区二区在线电影| 色狠狠色狠狠综合一区| 亚洲av综合av一区二区三区| 国产精品久久无码一区二区三区网| 色窝窝免费一区二区三区| 美日韩一区二区三区| 国产一区二区在线观看麻豆| 精品综合一区二区三区| 日本高清成本人视频一区| 久久91精品国产一区二区| 亚洲高清日韩精品第一区| 亚拍精品一区二区三区| 精品国产一区二区三区久久影院| 国产成人一区二区三区高清|