使用sevlet提交表單出現亂碼問題

今天使用NetBeans6.1開發servlet程序,使用GreetingServlet.java提交中文表單,ResponseServlet.java接收中文表單卻顯示亂碼。我上網查亂碼的解決辦法,試了很多次都不行,先放一放。第二天,我記得jsp程序設計中的jsp提交中文表單給servlet處理顯示中文正常,於是我按照那本書上的編碼設置將GreetingServlet.java改了改,運行還是亂碼。我於是添加了一個input.jsp文件,源代碼如下:

<%@ page contentType="text/html;charset=GB2312" %>
 <html>   <body bgcolor="white">
        <h2>您的名字叫什麼?</h2>
        <form method=get>
        <input type="text" name=username size="25">
            <p></p>
            <input type="submit" value="提交">
            <input type="reset" value="重設">
            <%
            String username = request.getParameter("username");
            if ((username != null) && (username.length() > 0)) {
            RequestDispatcher dispatcher =
                getServletContext()
                    .getRequestDispatcher("/response");
            if (dispatcher != null) {
                dispatcher.include(request, response);
            }
        }
        %>
    </form>
    </body>
</html>

然後右鍵單擊項目-》屬性-》運行-》相對URL:/input.jsp 。再運行,還是亂碼。我記得書上的這個程序在tomcat的webapps目錄下運行正常。我把這個項目放到tomcat的webapps目錄下運行顯示中文正常,說明是NetBeans的項目編碼設置有問題,我在網上一查,很快查出來,input.jsp的編碼設置應爲

<%@ page language="java" pageEncoding="UTF-8" %>
<%@ page contentType="text/html; charset=UTF-8" %>
然後將ResponseServlet.java的編碼改爲response.setContentType("text/html;charset=UTF-8");

然後NetBeans運行中文顯示正確,Ok!思路一定要靈活,一種思路不行,換一種思路

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章