亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Servlet 采用 forward 時(shí),頁面出現(xiàn)漢字亂碼問題

系統(tǒng) 1817 0

經(jīng)常有人問到,在servlet里面forward到一個(gè)頁面之后,瀏覽器總是漢字的亂碼。經(jīng)調(diào)試發(fā)現(xiàn),是由于在servlet里面不能正確調(diào)用 response.getWriter()方法造成的。

servlet 如下,如果去掉注釋,則會(huì)出現(xiàn)亂碼

package ?test;

import ?java.io.IOException;
import ?java.io.PrintWriter;
import ?javax.servlet.RequestDispatcher;
import ?javax.servlet.ServletException;
import ?javax.servlet.http.HttpServlet;
import ?javax.servlet.http.HttpServletRequest;
import ?javax.servlet.http.HttpServletResponse;

public ? class ?TestServlet? extends ?HttpServlet? ... {
??@Override
??
public ? void ?doGet(HttpServletRequest?request,?HttpServletResponse?response)? throws ?IOException,?ServletException? ... {
// ????PrintWriter?out?=?response.getWriter();
????RequestDispatcher?requestDispatcher? = ?request.getRequestDispatcher( " /test/test2.jsp " );
????requestDispatcher.forward(request,?response);
??}

}

曾經(jīng)嘗試增加如下語句,問題依然存在

package ?test;

import ?java.io.IOException;
import ?java.io.PrintWriter;
import ?javax.servlet.RequestDispatcher;
import ?javax.servlet.ServletException;
import ?javax.servlet.http.HttpServlet;
import ?javax.servlet.http.HttpServletRequest;
import ?javax.servlet.http.HttpServletResponse;

public ? class ?TestServlet? extends ?HttpServlet? ... {
??@Override
??
public ? void ?doGet(HttpServletRequest?request,?HttpServletResponse?response)? throws ?IOException,?ServletException? ... {
????PrintWriter?out?
= ?response.getWriter();
????response.setCharacterEncoding(
" UTF-8 " );
????response.setContentType(
" text/html;charset=UTF-8 " );
????RequestDispatcher?requestDispatcher?
= ?request.getRequestDispatcher( " /test/test2.jsp " );
????requestDispatcher.forward(request,?response);
??}

}

去掉后,就可以正常顯示漢字了,

再次測(cè)試,發(fā)現(xiàn)是語句的順序有問題,需要調(diào)整為如下的代碼即可

package ?test;

import ?java.io.IOException;
import ?java.io.PrintWriter;
import ?javax.servlet.RequestDispatcher;
import ?javax.servlet.ServletException;
import ?javax.servlet.http.HttpServlet;
import ?javax.servlet.http.HttpServletRequest;
import ?javax.servlet.http.HttpServletResponse;

public ? class ?TestServlet? extends ?HttpServlet? ... {
??@Override
??
public ? void ?doGet(HttpServletRequest?request,?HttpServletResponse?response)? throws ?IOException,?ServletException? ... {
????response.setCharacterEncoding(
" UTF-8 " );? // ?先指定輸出流的編碼
????PrintWriter?out? = ?response.getWriter();? // ?再拿到輸出對(duì)象
????response.setContentType( " text/html;charset=UTF-8 " );
????RequestDispatcher?requestDispatcher?
= ?request.getRequestDispatcher( " /test/test2.jsp " );
????requestDispatcher.forward(request,?response);
??}

}

看來,response.getWriter() 在內(nèi)部的實(shí)現(xiàn)上,影響了輸出流的編碼集。必須先指定編碼集,再調(diào)用Writer才可以。

?

附test2.jsp的代碼

<% @?page?language = " java " ?contentType = " text/html;?charset=UTF-8 " ?pageEncoding = " UTF-8 " %>
< pre > 中文
<%= " 中文2 " %>
</ pre >

web.xml, 未使用任何過濾器?

<? xml?version="1.0"?encoding="UTF-8" ?>
< web-app? id ="WebApp_ID" ?version ="2.4" ?xmlns ="http://java.sun.com/xml/ns/j2ee"
??xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
??xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee?http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
??
< display-name > www.java2000.net </ display-name >
??
< welcome-file-list >
????
< welcome-file > index.html </ welcome-file >
????
< welcome-file > index.htm </ welcome-file >
????
< welcome-file > index.jsp </ welcome-file >
????
< welcome-file > default.html </ welcome-file >
????
< welcome-file > default.htm </ welcome-file >
????
< welcome-file > default.jsp </ welcome-file >
??
</ welcome-file-list >
</ web-app >

Servlet 采用 forward 時(shí),頁面出現(xiàn)漢字亂碼問題的分析


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 美女被爆羞羞网站 | 国产色丁香久久综合 | 国产精品久久久久久久久久久不卡 | 国产成a人片在线观看视频99 | 99热在线免费观看 | 久久精品国产6699国产精 | 亚洲图欧美日韩色综合图 | 激情影院在线 | 中文字幕不卡免费高清视频 | 国产在线激情视频 | 天天在线综合网 | 亚洲一区二区精品视频 | 成人免费播放视频777777 | 久久夜视频 | 色综合精品久久久久久久 | 手机在线中文字幕 | 老子午夜精品我不卡影院 | 欧美日本一级在线播放 | 四虎最新永久免费网址 | 94久久国产乱子伦精品免费 | 欧洲毛片真人 | 俄罗斯三级毛片 | 免费一级特黄欧美大片勹久久网 | 手机看片福利在线 | 激情五月色婷婷在线观看 | 久久一区二区免费播放 | 东京99热 | 国产精品成人在线播放 | 欧美午夜性刺激在线观看免费 | 国产网红福利视频网站 | 四虎精品免费永久在线 | 亚洲视频免费 | 亚洲成人网在线 | 亚洲最大免费视频网 | 91青青青国产在观免费影视 | 熟妇毛茸茸xxxoo | 狠狠狠色丁香婷婷综合久久88 | 91精品欧美成人 | 久久www免费人成_看 | 久久社区| 亚洲精品香蕉一区二区在线观看 |