本帖最后由 diver0912 于 2011-05-15 20:54:25 编辑

解决方案 »

  1.   


    GetPostData.javapackage com.servlet;import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;public class GetPostData extends HttpServlet {
       
       
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
           response.setContentType("text/html;charset=gb2312");
           response.setCharacterEncoding("gb2312");
            PrintWriter out = response.getWriter();
            try {
                out.println("<html><body>\n"+
                        "<h1 >"+"get post data"+"</h1>\n"+
                        "<ul>\n"+
                        "<li><b>username</b>: "+
                        request.getParameter("username")+"\n"+
                        "<li><b>password</b>: "+
                        request.getParameter("password")+"\n"+
                        "</ul>\n"+
                        "</body></html>"
                        );
            } finally { 
                out.close();
            }
        }      protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        }     protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        }    public String getServletInfo() {
            return "Short description";
        }
    }
      

  2.   


    [<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>多值变量提交</title>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
      </head>
      <body>
            <form name="form1" method="post" action="multichoice">
            <input type="checkbox" name="checkbox1" value="苹果">苹果
            <input type="checkbox" name="checkbox1" value="西瓜">西瓜
            <input type="checkbox" name="checkbox1" value="桃子">桃子
            <input type="checkbox" name="checkbox1" value="葡萄">葡萄
            <input type="submit" name="Submit" value="提交">
            <input type="reset" name="Reset" value="重置">
        </form>
      </body>
    </html>
      

  3.   

    当你从前台读的中文到后面时是乱码,这时就需要做编码处理 new String(request.getParameter("username").getBytes("ISO-8859-1"),"UTF-8"))就可以了   希望你能成功 呵呵。。
      

  4.   

    晕,刚才代码复制错了package com.servlet;import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;public class multiChoice extends HttpServlet {
       
         protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            response.setContentType("text/html;charset=gb2312");
            response.setCharacterEncoding("gb2312");
            PrintWriter out = response.getWriter();
            try {
               String[] paramValues=request.getParameterValues("checkbox1");
                String temp=new String("");
                for(int i=0;i<paramValues.length;i++)temp+=paramValues[i]+"";
                out.println("你喜欢吃的水果有:"+temp+"。");
            } finally { 
                out.close();
            }
        }     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
           @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            processRequest(request, response);
        }         protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {        processRequest(request, response);    }       public String getServletInfo() {
            return "Short description";
        }// </editor-fold>}
      

  5.   

    比如说你的request.getParameterValues("checkbox1")的这个变量读取时因为有中文字符,所以可以重新编码下   改为String[] paramValues=new String(request.getParameterValues("checkbox1").getBytes("ISO-8859-1"),"UTF-8");只要是遇到提交过来的有中文的都需要转换的。
      

  6.   

    在你processRquest方法中编码格式都设为UTF-8试试
      

  7.   

    如果是用post传值,Servlet中,取得表单值之前,使用request.setCharacterEncoding("UTF-8");就可以解决问题
      

  8.   

    但是用get还是会出现乱码!你就要用
    String name = new String (name.getByte("iso-8859-1"),"utf-8");