這樣tempStr 中的中文就可以正確顯示了。 由于Servlet 采用不同的引擎,其中文的解決方法可能不同;因此,當(dāng)出現(xiàn)中文顯示問題時(shí),建議一定要多實(shí)驗(yàn),最終總會得到解決。 (4) Java Servlet 程序彌補(bǔ)了 Applet 程序的不足, Servlet 主要應(yīng)用在HTTP Servlet 接收請求(HttpServletRequest接口)和產(chǎn)生響應(yīng)(HttpServletResponse接口)、使用Cookies 及會話管理(HttpSession 接口)應(yīng)用、Java Servlet 在網(wǎng)絡(luò)上的編程應(yīng)用如利用Servlet 上傳和下載文件、Servlet 的數(shù)據(jù)庫編程、在Servlet 中發(fā)送和接受郵件以及Java Servlet 在RMI和XML等方面的應(yīng)用,因此Servlet 的編程應(yīng)用還是比較廣泛的。 通常 Servlet 可以使用以下的方法調(diào)用: * 客戶通過訪問 Servlet 產(chǎn)生的文檔來調(diào)用 Server 得到一個(gè)訪問文檔的請求后,查找配置參數(shù),就會發(fā)現(xiàn)所需文檔不是一個(gè)靜態(tài)文檔,而是由 Servlet 對象產(chǎn)生的,于是服務(wù)器就會把請求傳給 Servlet,Servlet 調(diào)用 "service" 方法產(chǎn)生輸出。這種方法與傳統(tǒng)的調(diào)用 CGI 的方法類似。 * 直接通過 URL 調(diào)用 Servlet 客戶(瀏覽器)使用以下格式的 URL 調(diào)用:http://Servlet_Host_Name/servlet/<servlet URL><servlet URL>是指向 Servlet 位置的普通的URL,它的格式如下所示:name?para1=value1¶2=value2... 其中,name 是 Servlet 的名字,"?" 后面跟的是一串參數(shù),para1 是第一個(gè)參數(shù)名,value1是它的值,para1 是第二個(gè)參數(shù)名,value2是它的值,以此類推。通常Servlet 存放的位置可能與服務(wù)器不在同一臺機(jī)器上,這時(shí)服務(wù)器就要?jiǎng)討B(tài)加載、初始化和執(zhí)行Servlet 類。 * 通過 SSI(Server-Side Includes) 標(biāo)志調(diào)用 任何一個(gè)以.sthml 為擴(kuò)展名的文件都是服務(wù)器要分析的文件。在該文件中,如果出現(xiàn)了Servlet標(biāo)志,那么服務(wù)器就會運(yùn)行該Servlet,并把它的輸出結(jié)果插入標(biāo)志所指示的地方。 * 把 Servlet 放在/servlet/目錄下 如果一個(gè) Servlet 的類文件被放在/servlet/目錄下,那么就可以直接使用它的類名調(diào)用它。 * 通過 Filter Chain 調(diào)用 這種方法一般要把 Servlet 配置成當(dāng)一個(gè)特定的 MIME 類型被設(shè)置為響應(yīng)時(shí)再調(diào)用。 但Servlet 也有它的缺點(diǎn): * 在復(fù)雜的HTML 網(wǎng)頁中,加入的動(dòng)態(tài)部分如果用Servlet 來處理的話,那對程序員來說簡直是一場噩夢。 * Servlet 要進(jìn)行編譯、放入執(zhí)行碼等復(fù)雜的調(diào)用過程。 正是由于Servlet存在的缺點(diǎn),才出現(xiàn)使用JSP 技術(shù)來解決上面的問題,這也正是JSP 的優(yōu)點(diǎn)。