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

Servlet 采用 forward 時,頁面出現漢字亂碼問題

系統 1603 0

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

servlet 如下,如果去掉注釋,則會出現亂碼

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);
??}

}

曾經嘗試增加如下語句,問題依然存在

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);
??}

}

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

再次測試,發現是語句的順序有問題,需要調整為如下的代碼即可

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();? // ?再拿到輸出對象
????response.setContentType( " text/html;charset=UTF-8 " );
????RequestDispatcher?requestDispatcher?
= ?request.getRequestDispatcher( " /test/test2.jsp " );
????requestDispatcher.forward(request,?response);
??}

}

看來,response.getWriter() 在內部的實現上,影響了輸出流的編碼集。必須先指定編碼集,再調用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 時,頁面出現漢字亂碼問題的分析


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 免费看真人a一级毛片 | 91精品国产闺蜜国产在线 | 激情网址大全 | 日韩亚洲第一页 | 四虎最新网站 | 伊人色综合久久天天 | 国产一区二区免费福利片 | 离线枕边人国语在线影视 | 久久综合久色欧美婷婷 | 不卡高清av手机在线观看 | 狠狠色综合久久丁香婷婷 | 青青青国产在线 | 真人特级毛片免费视频 | 成人欧美视频在线观看 | 伊人网狠狠干 | 在线国产欧美 | 一级毛片免费 | 奇米影视778成人四色狠狠 | 一本一本久久a久久精品综合麻豆 | 免费看搡女人的视频 | 一级特级毛片 | 国产精品久久久久久久久齐齐 | 亚洲免费国产 | 奇米影视在线视频8888 | 欧美人在线一区二区三区 | 成人影院欧美大片免费看 | 久久国产精品二国产精品 | 色悠久久久久综合网小说 | 日本九九视频 | 人做人爱视频欧美在线观看 | 亚洲在线网 | 成人影院wwwwwwwwwww | 91成人精品视频 | 国产福利小视频在线观看 | 久久精品成人免费网站 | 岛国精品在线观看 | 色拍自拍亚洲综合在线 | 亚洲悠悠色综合中文字幕 | 亚洲日韩中文字幕 | 91精品久久 | 一本久道久久综合狠狠爱 |