代码人生的小狗窝

一行行枯燥的代码,却描绘出人生的点点滴滴

您现在的位置是:首页>_Web开发

乱码,乱码,jsp乱码!该怎么解决

发布时间:2018-10-16浏览(1837)

    乱码,乱码,jsp乱码!
    这几天做了一个小练习,不外乎就是增删改查,可是本来认为很简单的东西,竟然一下出了这么多小问题
    首先是乱码,先发一下我的乱码问题,请有经验的大哥们指教一下,感激不尽!
    前台的Query.jsp通过a标签传值到Update.jsp

    <td><a href="/JSPExample1/Update.jsp?name=<%= student.getName()%>&no=<%=student.getHeight()%>">更新</a></td>
    <td><a href="/JSPExample1/servlet/StudentInfo?status=delete&name="<%= students.get(i).getName()%>>删除</a></td>

    前台的update.jsp接收值并且传入到后台sevlet

    <%request.setCharacterEncoding("utf-8"); %>
      <form action="/JSPExample1/servlet/StudentInfo" method="post">
      更新学生信息</br>
    名字—<input type="text" name="name" value="<%= request.getParameter("name")%>"><br>
    学号<input type="text" name="stu_no" value="<%= request.getParameter("no")%>"><br>
    身高<input type="text" name="height" value="<%= request.getParameter("height")%>"><br>
      <input type="submit" value="提交"></input>
      <input type="hidden" value="update" name="Status"></input>
      </form>
    </form>

    在后台打印了一下看看是否乱码,结果,,哎,,,,,

    else if("update".equals(request.getParameter("Status"))){
    System.out.println("跳转update成功");
    // System.out.println(new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8"));
    si.update(request.getParameter("name"), request.getParameter("no"));
    ArrayList<Student> students= si.query("");
    //把数据从ser传到视图当中
    request.setAttribute("students",students);
    //页面从ser向视图跳转
    RequestDispatcher dis=request.getRequestDispatcher("/Query.jsp");
    dis.forward(request, response);
    }

    直接打印出:
    跳转update成功
    ??·?¤??·
    在Query.jsp和Update.jsp中我都设置过<%request.setCharacterEncoding("utf-8"); %>,那么封装在request中的数据应该就是以utf-8来编码的啊,为什么传入到后台的数据还是乱码呢?求指教!!
    ------解决思路----------------------
    设置request的编码方式为utf-8  或者 设置tomcat编码方式为utf-8
    ------解决思路----------------------
    <a href="/JSPExample1/Update.jsp?name=<%=URLEncoder.encode(student.getName(),"utf-8")%>&no=<%=student.getHeight()%>">更新</a>
    试试
    ------解决思路----------------------
    看看这个
    http://blog.csdn.net/sundacheng1989/article/details/7221593
    ------解决思路----------------------
    你前台传输到后台时使用的编码格式是UTF-8,但是你后台解析时并没有设置编码,前后编码不一致就会出现乱码情况,在你的servlet中加上request.setCharacterEncoding("utf-8")试试看能解决不
    ------解决思路----------------------
    弄个过滤器