99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

java JSP頁(yè)面編碼過(guò)程

2018-09-28 19:24 更新

JSP頁(yè)面編碼過(guò)程

我們知道JSP頁(yè)面是需要轉(zhuǎn)換為servlet的,在轉(zhuǎn)換過(guò)程中肯定是要進(jìn)行編碼的。在JSP轉(zhuǎn)換為servlet過(guò)程中下面一段代碼起到至關(guān)重要的作用。

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

在上面代碼中有兩個(gè)地方存在編碼:pageEncoding、contentType的charset。其中pageEncoding是jsp文件本身的編碼,而contentType的charset是指服務(wù)器發(fā)送給客戶(hù)端時(shí)的內(nèi)容編碼。

在前面一篇博客中就提到過(guò)(java中文亂碼解決之道(四)—–java編碼轉(zhuǎn)換過(guò)程)jsp在轉(zhuǎn)換為Servlet的過(guò)程中是需要經(jīng)過(guò)主要的三次編碼轉(zhuǎn)換過(guò)程(除去數(shù)據(jù)庫(kù)編碼轉(zhuǎn)換、頁(yè)面參數(shù)輸入編碼轉(zhuǎn)換):

第一次:轉(zhuǎn)換為.java文件;

第二次:轉(zhuǎn)換為.class文件;

第三次:業(yè)務(wù)邏輯處理后輸出。

第一階段

JVM將JSP編譯為.jsp文件。在這個(gè)過(guò)程中pageEncoding就起到作用了,JVM首先會(huì)獲取pageEncoding的值,如果該值存在則采用它設(shè)定的編碼來(lái)編譯,否則則采用file.encoding編碼來(lái)編譯。

第二階段

JVM將.java文件轉(zhuǎn)換為.class文件。在這個(gè)過(guò)程就與任何編碼的設(shè)置都沒(méi)有關(guān)系了,不管JSP采用了什么樣的編碼格式都將無(wú)效。經(jīng)過(guò)這個(gè)階段后.jsp文件就轉(zhuǎn)換成了統(tǒng)一的Unicode格式的.class文件了。

第三階段

后臺(tái)經(jīng)過(guò)業(yè)務(wù)邏輯處理后將產(chǎn)生的結(jié)果輸出到客戶(hù)端。在這個(gè)過(guò)程中contentType的charset就發(fā)揮了功效。如果設(shè)置了charset則瀏覽器就會(huì)使用指定的編碼格式進(jìn)行解碼,否則采用默認(rèn)的ISO-8859-1編碼格式進(jìn)行解碼處理。流程如如下:

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)