1、第一步:新建一个javaweb项目。打开myeclipse file --》new--》web project具体操作如下图所示:
2、第二步:搭建servlet开发环境。新建一个servletUserServlet.java,index.jsp在web.x罪焐芡拂ml中配置servlet代码如下:package com.test.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class UserServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String sex = request.getParameter("sex"); String[] bobby = request.getParameterValues("bobby"); System.out.println("性别 :"+sex); for (int i = 1; i <= bobby.length; i++) { System.out.println("爱好"+i+" :"+bobby[i-1]); } }}
3、第三步:问题分析,解决思路。1、乱码产生原因是get请求在前端处理时将中使用ISO-8859-1进行编码而java文件和jsp文件一般都是使用UTF-8编码,如下图1所示2、确认了问题解决起来也就简单,只要使用对应的编码对其解码就可以解决此问题。
4、第四步:解决方案1在后台使用ISO-8859-1解码。具体实现代码如下所示:package com.test.servlet;import java.io.IOE旌忭檀挢xception;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class UserServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String sex = request.getParameter("sex"); String[] bobby = request.getParameterValues("bobby"); System.out.println("性别 :"+new String(sex.getBytes("ISO-8859-1"),"utf-8")); for (int i = 1; i <= bobby.length; i++) { System.out.println("爱好"+i+" :"+new String(bobby[i-1].getBytes("ISO-8859-1"),"utf-8")); } }}
5、第五步:使用post方式提交表单。<form action="/servlet/userServlet.do" method="post"> 爱好1:<input type="text" name="bobby"><br/> 爱好2:<input type="text" name="bobby"><br/> 爱好3:<input type="text" name="bobby"><br/> 爱好4:<input type="text" name="bobby"><br/> 性别:<input type="text" name="sex"><br/> <input type="submit" value="提交"> </form>
6、第六部:传输之前使用编码。1、js前端编码encodeURI方法 编码decodeURI方法 解码2、java后台编码import java.net.URLDecoder;import java.net.URLEncoder;//URLEncoder.encode("乱码","UTF8");编码 //URLDecoder.decode("乱码","UTF-8")解码