<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 32,  comments - 3,  trackbacks - 0
     

    1,原理

    Property 文件中,使用的編碼方式根據(jù)機器本身的設(shè)置可能是GBK或者UTF-8。而在Java程序中讀取Property文件的時候使用的是Unicode編碼方 式,這種編碼方式不同會導(dǎo)致中文亂碼。因此需要將Property文件中的中文字符轉(zhuǎn)化成Unicode編碼方式才能正常顯示中文。



    2,解決辦法

    Java提供了專門的 工具對Property文件進(jìn)行Unicode轉(zhuǎn)化,這種工具就是native2ascii,它在JDK安裝環(huán)境的bin目錄下。

    native2ascii 工具將帶有本機編碼字符(非拉丁 1 和非單一碼字符)的文件轉(zhuǎn)換成帶有Unicode編碼字符的文件。

    假設(shè)需要轉(zhuǎn)化的屬性文件 為:D:\src\resources.properties(含有中文字符)

    轉(zhuǎn)化后的屬性文件為:D:\classes \resources.properties(中文字符統(tǒng)一轉(zhuǎn)化為Unicode)

    那么使用如下命令
    JAVA_HOME\bin\native2ascii -encoding GBK D:\src\resources.properties D:\classes\resources.properties

    就能將含有中文字符的屬性文件轉(zhuǎn)化成單一Unicode編碼方式的屬 性文件。中文亂碼自然會被解決
    posted @ 2010-02-04 20:43 donghang73 閱讀(753) | 評論 (0)編輯 收藏
    sendRedirect()與forward()實現(xiàn)轉(zhuǎn)向的異同
           1.前面慢,后者快
           2.前面無法讀取request.setAttribute()所保存的數(shù)值,而后者可以讀取
           3.前者地址欄顯示真正轉(zhuǎn)向后的地址,而后者顯示的是轉(zhuǎn)向前的地址
           4.前者,轉(zhuǎn)向地址開始的"/",表示的是本機的根目錄;而后者,"/"表示的是應(yīng)用的根目錄

    1.RequestDispatcher.forward()

            是在服務(wù)器端起作用,當(dāng)使用forward()時,Servletengine傳遞HTTP請求從當(dāng)前的Servlet or JSP到另外一個Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此時form提交的所有信息在 b.jsp都可以獲得,參數(shù)自動傳遞.

            但forward()無法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同時forward()無法在后面帶參數(shù)傳遞,比如servlet?name=frank,這樣不行,可以程序內(nèi)通過 response.setAttribute("name",name)來傳至下一個頁面.

            重定向后瀏覽器地址欄URL不變. 因為完成一個業(yè)務(wù)操作往往需要跨越多個步驟,每一步驟完成相應(yīng)的處理后,轉(zhuǎn)向到下一個步驟。比如,通常業(yè)務(wù)處理在Servlet中處理,處理的結(jié)果轉(zhuǎn)向到一個 JSP頁面進(jìn)行顯示。這樣看起來類似于Servlet鏈的功能,但是還有一些區(qū)別。一個RequestDispatcher對象可以把請求發(fā)送到任意一個服務(wù)器資源,而不僅僅是另外一個Servlet。

    注意,只有在尚未向客戶端輸出響應(yīng)時才可以調(diào)用forward()方法,如果頁面緩存不為空,在重定向前將自動清除緩存。否則將拋出一個異常

    例:servlet文件中重定向


    public void doPost(HttpServletRequest request,HttpServletResponse response)

            throws ServletException,IOException

    {

            response.setContentType("text/html; charset=gb2312");

            ServletContext sc = getServletContext();

            RequestDispatcher rd = null;

            rd = sc.getRequestDispatcher("/index.jsp");

            rd.forward(request, response);

    }

         
     
    2.response.sendRedirect()

            是在用戶的瀏覽器端工作,sendRedirect()可以帶參數(shù)傳遞,比如servlet?name=frank傳至下個頁面,同時它可以重定向至不同的主機上,且在瀏覽器地址欄上會出現(xiàn)重定向頁面的URL.

            HttpServletResponse接口定義了可用于轉(zhuǎn)向的sendRedirect()方法。代碼如下:

            public void sendRedirect(java.lang.String location)throws java.io.IOException

            這個方法將響應(yīng)定向到參數(shù)location指定的、新的URL。location可以是一個絕對的URL,如response.sendRedirect ("  

            RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法的區(qū)別是:前者僅是容器中控制權(quán)的轉(zhuǎn)向,在客戶端瀏覽器地址欄中不會顯示出轉(zhuǎn)向后的地址;后者則是完全的跳轉(zhuǎn),瀏覽器將會得到跳轉(zhuǎn)的地址,并重新發(fā)送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時,盡量使用Request Dispatcher.forward()方法,并且,這樣也有助于隱藏實際的鏈接。在有些情況下,比如,需要跳轉(zhuǎn)到一個其它服務(wù)器上的資源,則必須使用 HttpServletResponse.sendRequest()方法。

    posted @ 2010-02-04 16:15 donghang73 閱讀(298) | 評論 (0)編輯 收藏
    僅列出標(biāo)題
    共4頁: 上一頁 1 2 3 4 
    主站蜘蛛池模板: 亚洲午夜视频在线观看| 亚洲国产成人精品久久久国产成人一区二区三区综| 2048亚洲精品国产| 男人扒开添女人下部免费视频| 免费jjzz在线播放国产| 在线观看免费亚洲| 免费一级毛片在线观看| 国产精品亚洲专区在线播放| 国产大片线上免费看| 免费一级全黄少妇性色生活片| 亚洲国产精品自在拍在线播放| 男女交性无遮挡免费视频| 亚洲国产激情一区二区三区| a高清免费毛片久久| 亚洲Av永久无码精品三区在线| 暖暖日本免费中文字幕| 久久久亚洲欧洲日产国码二区| 亚洲精品在线免费观看| 99热亚洲色精品国产88| 永久久久免费浮力影院| 美女免费精品高清毛片在线视| 亚洲伦乱亚洲h视频| 一个人免费视频在线观看www | 亚洲精品tv久久久久久久久久| 成年大片免费高清在线看黄| 久久亚洲中文字幕精品一区| 香蕉免费一区二区三区| 亚洲国产日韩在线| 国产无遮挡吃胸膜奶免费看| 香蕉免费一级视频在线观看| 日木av无码专区亚洲av毛片| 午夜成人免费视频| 国产久爱免费精品视频| 亚洲精品国产福利在线观看| 宅男666在线永久免费观看| 国产黄在线观看免费观看不卡| 亚洲免费视频在线观看| 日韩人妻无码免费视频一区二区三区| caoporm碰最新免费公开视频| 亚洲酒色1314狠狠做| 国产a级特黄的片子视频免费 |