亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

java學習筆記—HttpServletResponse(22)

2019-11-14 23:36:17
字體:
來源:轉載
供稿:網友
java學習筆記—HttpServletResponse(22)

1 亂碼處理

GET請求使用直接通過地址欄回車或超鏈接的單擊以及form表單中method的get數據提交過來的請求,該請求和傳遞用戶參數的方式是http://www.jnb.com?name=jack&age=36 因此可見get方式的請求參數有限(小于1K)。而且傳遞的數據直接在地址欄可見。如: 百度的搜索關鍵字。

1.1 編寫一個提交get數據的一個注冊表

 <form action="/day07/regist" method="get">       <table align="center" border="1">         <tr>           <td>用戶:</td>           <td><input type="text" name="uname"/></td>         </tr>         <tr>           <td>地址:</td>           <td><input type="text" name="address"/></td>         </tr>         <tr align="center">           <td colspan="2">               <input type="submit" value="注冊"/>               <input type="reset" value="重置"/>           </td>         </tr>       </table>    </form>

2 編寫一個RegistServlet處理用戶的Get請求數據

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {        // 處理響應數據的格式和編碼        response.setCharacterEncoding("utf-8");        response.setContentType("text/html;charset=utf-8");        // 獲取字符輸出流對象        PRintWriter out = response.getWriter();        // 獲取請求參數        String name = request.getParameter("uname");        String address = request.getParameter("address");        // 輸出數據        out.println("name="+name);        out.println("<br/>");        out.println("address="+address);    }

運行結果發現輸入中文提交后顯示結果為亂碼:

3 分析亂碼的原因

4 使用代碼解決亂碼問題

public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {        // 處理響應數據的格式和編碼        response.setCharacterEncoding("utf-8");        response.setContentType("text/html;charset=utf-8");        // 獲取字符輸出流對象        PrintWriter out = response.getWriter();        // 獲取請求參數        String name = request.getParameter("uname");        String address = request.getParameter("address");        // 獲取ISO8859-1的原始數據        byte [] bs = name.getBytes("ISO8859-1");        name = new String(bs,"UTF-8");        bs = address.getBytes("ISO8859-1");        address = new String(bs,"UTF-8");        // 輸出數據        out.println("name="+name);        out.println("<br/>");        out.println("address="+address);    }

如果使用以上的代碼解決GET亂碼每一個請求參數都需要重新的解碼太繁瑣,因此可以直接使用服務器通知瀏覽器以指定的方式進行編碼字符數據。

5 使用URIEnoding方式解決GET亂碼問題

<Connector port="8080" protocol="HTTP/1.1"                connectionTimeout="20000"                redirectPort="8443"                URIEncoding="utf-8"/>

URIEncoding主要指定的是%E5%8D%A1%E5%8D%A1的數據的解碼方式,如果沒有指定那么默認是ISO8859-1,如果指定那么采用指定的碼表進行解碼。因此服務器端就沒有必要使用兩個中編碼方式進行轉碼了。

注意:在實際的生產環境中我們代碼的亂碼問題不可能以來服務器幫助我們解決,因此推薦使用第一個轉碼方式。后期可以直接實現一個亂碼的過濾器實現處理亂碼的問題。

  1. POST請求

POST請求主要是以form表單的method=”post”發送的請求。該請求的數據在HTTP協議的請求體中??梢詡鬟f任意大小的數據。因此比較適合上傳文件。

修改以上的注冊頁面提交方式為post,那么在doPost()直接獲取數據并輸出同樣出現亂碼。

使用代碼解決亂碼

public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {        // 處理響應數據的格式和編碼        response.setCharacterEncoding("utf-8");        response.setContentType("text/html;charset=utf-8");        // 處理post請求參數亂碼        request.setCharacterEncoding("utf-8");        // 獲取字符輸出流對象        PrintWriter out = response.getWriter();        // 獲取請求參數        String name = request.getParameter("uname");        String address = request.getParameter("address");        // 輸出數據        out.println("name="+name);        out.println("<br/>");        out.println("address="+address);}

總結:以后在實際的開發中避免不了給頁面輸出中文數據以及中文的參數。那么以后在處理用戶請求的doGet和doPost方法中我們應直接編寫如下三句:

response.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");request.setCharacterEncoding("utf-8");


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91日本视频在线| 亚洲第一级黄色片| 国产精品v日韩精品| 亚洲www视频| 国产精品白丝jk喷水视频一区| 欧美激情一区二区三区久久久| 久热精品在线视频| 久久精品国产一区二区三区| 久久久久久久91| 国产精品久久一区| 美日韩精品免费视频| 国产不卡一区二区在线播放| 成人欧美一区二区三区在线| 国产精品亚洲激情| 91精品久久久久久久| 国产精品亚洲аv天堂网| 国产精品久久久久7777婷婷| 国产精品日韩欧美| 亚洲电影天堂av| 亚洲精品欧美日韩| 久久久久999| 日韩精品久久久久| 亚洲高清久久网| 成人羞羞国产免费| 欧美黑人极品猛少妇色xxxxx| 中文字幕日本精品| 国产精品亚洲一区二区三区| 成人黄色av网站| 国产成人中文字幕| 亚洲精品黄网在线观看| 亚洲人a成www在线影院| 精品久久中文字幕久久av| 精品magnet| 国产精品88a∨| 国产一区二区在线播放| 日韩最新在线视频| 亚洲精品自拍偷拍| 国产精品91久久久久久| 欧美激情欧美狂野欧美精品| 国产一区二区香蕉| 日韩视频免费大全中文字幕| 日韩黄色av网站| 精品美女国产在线| 精品国产乱码久久久久酒店| 国产丝袜一区二区三区| 亚洲精品天天看| 亚洲色在线视频| 国产精品精品久久久久久| 亚洲在线免费视频| 中文字幕欧美精品日韩中文字幕| 国内精品久久久久| 国产精品色视频| 日韩美女av在线| 7m第一福利500精品视频| 91精品国产综合久久香蕉最新版| 国产精品久久久久7777婷婷| 亚洲天堂网在线观看| 亚洲国产精品电影| 国产成人精品国内自产拍免费看| 国产成人精品久久二区二区91| 伊人久久久久久久久久久| 国产精品成人av性教育| 亚洲天堂av在线免费| 国产玖玖精品视频| 欧美成人精品一区二区| 色综合男人天堂| 亚洲香蕉在线观看| 欧美三级xxx| 久久久久久久网站| 另类天堂视频在线观看| 91在线免费观看网站| 亚洲国产高清自拍| 欧洲精品久久久| 亚洲日韩欧美视频| www.亚洲男人天堂| 日韩成人在线免费观看| 亚洲桃花岛网站| 久久精品国产欧美亚洲人人爽| 伊人亚洲福利一区二区三区| 久久久女女女女999久久| 国产精品午夜一区二区欲梦| 国产精品人成电影在线观看| 亚洲伊人久久大香线蕉av| 亚洲精品videossex少妇| 中文字幕亚洲图片| 久久成人免费视频| 亚洲国产欧美在线成人app| 亚洲精品一区二区三区婷婷月| 国产精品久久久久久一区二区| 亚洲网站在线播放| 欧美精品日韩www.p站| 亚洲奶大毛多的老太婆| 欧美精品日韩www.p站| 久久九九精品99国产精品| 国产伦精品一区二区三区精品视频| 国产精品极品美女在线观看免费| 青青久久aⅴ北条麻妃| 国产精品久久久久久久午夜| 亚洲一区二区三区在线免费观看| 91久久久国产精品| 黑人巨大精品欧美一区二区三区| 在线播放国产一区二区三区| 亚洲男人的天堂在线| 一本色道久久88亚洲综合88| 88xx成人精品| 欧美大尺度在线观看| 亚洲日本中文字幕免费在线不卡| 日韩视频免费观看| 国产成人精品一区二区| 欧美另类极品videosbestfree| 精品国产乱码久久久久久虫虫漫画| 精品视频偷偷看在线观看| 国内精品伊人久久| 欧美久久精品一级黑人c片| 国产成人精品视频在线观看| 日本免费一区二区三区视频观看| 欧美三级欧美成人高清www| 91精品啪aⅴ在线观看国产| 亚洲精选在线观看| 青青精品视频播放| 国产精品视频久久| 91人人爽人人爽人人精88v| 国产日韩精品在线观看| 精品久久久av| 国产日韩欧美一二三区| 亚洲视频网站在线观看| 成人在线小视频| 91美女高潮出水| 久久久久久久国产精品| 久久久久久久久久久人体| 国产xxx69麻豆国语对白| 一区二区亚洲欧洲国产日韩| 亚洲片国产一区一级在线观看| 久久久999国产| 日韩精品视频在线| 欧美电影在线播放| 韩国美女主播一区| 69久久夜色精品国产7777| 亚洲bt欧美bt日本bt| 国产日韩视频在线观看| 亚洲男人的天堂在线| 成人免费视频97| 视频在线一区二区| 91亚洲一区精品| 国产精彩精品视频| 久久天天躁狠狠躁老女人| 热99精品只有里视频精品| 日本精品久久久久久久| 欧美激情亚洲国产| 国产精品69精品一区二区三区| 亚洲国产精品久久久| 精品高清一区二区三区| 高清一区二区三区日本久| 久久久精品网站| 久久视频在线直播| 欧美性在线视频| 久久久久久久网站| 成人福利网站在线观看| 成人乱人伦精品视频在线观看| 在线观看欧美日韩| 国产做受69高潮| 欧美日韩一区二区在线播放| 久久久久久久久久久免费| 国产原创欧美精品|