日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

JSP和Servlet對中文的處理過程(4)_JSP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:困擾JSP的一些問題與解決方法
如今每一個使用servlets的開發(fā)者都知道JSP,一種由Sun公司發(fā)明并花費大量精力加以推行并建構在servlet技術之上的web技術。JSP將servlet中的html代碼脫離了出來,從而可以加速web應用開發(fā)

下節(jié)先討論Servlet從JAVA文件到CLASS文件的轉化過程,然后再解釋從CLASS文件如何輸出到客戶端。之所以這樣安排,是因為JSP和Servlet在輸出時處理方法是一樣的。

Servlet:從源文件到Class的過程

Servlet源文件是以“.java”結尾的文本文件。本節(jié)將討論Servlet的編譯過程并跟蹤其中的中文變化。

用“javac”編譯Servlet源文件。javac可以帶“-encoding ”參數(shù),意思是“用< Compile-charset >中指定的編碼來解釋Serlvet源文件”。

源文件在編譯時,用來解釋所有字符,包括中文字符和ASCII字符。然后把字符常量轉變成Unicode字符,最后,把Unicode轉變成UTF。

在Servlet中,還有一個地方設置輸出流的CharSet。通常在輸出結果前,調用HttpServletResponse的setContentType方法來達到與在JSP中設置一樣的效果,稱之為。

注意,文中一共提到了三個變量:、和。其中,JSP文件只與有關,而和只與Servlet有關。

看下例:

import javax.servlet.*;

import javax.servlet.http.*;

class testServlet extends HttpServlet

{

public void doGet(HttpServletRequest req,HttpServletResponse resp)

throws ServletException,java.io.IOException

{

resp.setContentType("text/html; charset=GB2312");

java.io.PrintWriter out=resp.getWriter();

out.println("");

out.println("#中文#");

out.println("");

}

}


該文件也是用UltraEdit for Windows編寫的,其中的“中文”兩個字保存為“D6 D0 CE C4”(GB2312編碼)。

開始編譯。下表是不同時,CLASS文件中“中文”兩字的十六進制碼。在編譯過程中,不起任何作用。只對CLASS文件的輸出產生影響,實際上是和一起,達到與JSP文件中的相同的效果,因為對編譯和CLASS文件的輸出都會產生影響。

表3 “中文”從Servlet源文件到Class的轉變過程

Compile-charset
Servlet源文件中
Class文件中
等效的Unicode碼

GB2312
D6 D0 CE C4

(GB2312)
E4 B8 AD E6 96 87 (UTF)
\u4E2D\u6587 (在Unicode中=“中文”)

ISO-8859-1
D6 D0 CE C4

(GB2312)
C3 96 C3 90 C3 8E C3 84 (UTF)
\u00D6 \u00D0 \u00CE \u00C4 (在D6 D0 CE C4前面各加了一個00)

無(默認)
D6 D0 CE C4

(GB2312)
同ISO-8859-1
同ISO-8859-1


普通Java程序的編譯過程與Servlet完全一樣。

分享:JavaBean 在jsp和serlvle中傳遞技術要點
javaBean 在jsp和serlvle中的傳遞技術要點 一、 初始化javaBean 1、 在jsp中 在上一段的代碼中執(zhí)行過程如下: ? 按照scope的參數(shù)尋找相同id的javabean,如果找到了就跳出該; ?

來源:模板無憂//所屬分類:JSP教程/更新時間:2008-08-22
相關JSP教程