zoukankan      html  css  js  c++  java
  • 【The Most Important】浅谈JSP表单Post方式中文乱码问题

      首先祝大家鸡年吉祥!在这里我要说下这两天里这个问题困扰着我,大过年的心情都被烦扰的不好了,所以我带着兴奋的心情来赶快完成这篇博客,解决大家的问题。我的问题是post方式传递表单数据,Tomcat服务器返回后中文总是乱码。

      我看了很多网上的博客,我了解了contentType、pageEncoding的区别 附上链接:http://www.cnblogs.com/laj12347/p/3318998.html

      了解了Http中get,post的区别 附上链接:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html

      还看了许多解决办法,没有一个能解决我问题的,于是我开始自己慢慢的静下心来试试。后来发现<% request.setCharacterEncoding("UTF-8"); %>这句代码的位置很重要,一定要写在顶部,我一开始一直是写在<body></body>体里面的,但其实并没有什么用。对的,我就是这么Alt+上下键调动位置一次一次试验才最终有正确的写法的,您别说我笨,因为我看了很多篇博文,都没有解决我的问题,所以我只能靠自己了。也正是因为他们未强调这句代码的位置的重要性,才让我们很多人浪费时间还解决不了问题。下面附上简简单单的代码:

    JavaBean:

     1 package com.hdu.test;
     2 
     3 public class UseBean {
     4     private String name;
     5 
     6     public void setName(String name) {
     7         this.name = name;
     8     }
     9 
    10     public String getName() {
    11         return name;
    12     }
    13 }

    register.html:

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <meta charset="UTF-8">
     5 <title>填写注册信息</title>
     6 </head>
     7 <body>
     8     <form action="register.jsp" method="post">
     9         <table>
    10             <tr>
    11                 <td>姓名:<input type="text" name="name"></td>
    12                 <td><input type="submit" value="提交"></td>
    13             </tr>
    14         </table>
    15     </form>
    16 </body>
    17 </html>

    register.jsp:

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"%>
     2 <% request.setCharacterEncoding("UTF-8"); %><!-- 该行代码的位置十分重要书写在顶部哦 -->
     3 <jsp:useBean id="user" scope="page" class="com.hdu.test.UseBean"></jsp:useBean>
     4 <jsp:setProperty property="*" name="user" />
     5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     6 <html>
     7 <head>
     8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     9 <title>显示注册信息</title>
    10 </head>
    11 <body>
    12     姓名:<jsp:getProperty property="name" name="user" />
    13 </body>
    14 </html>

    实现简单的功能,运行register.html表单填入姓名(记得填写中文以测试),点击提交后,浏览器显示姓名并且不会乱码

  • 相关阅读:
    if 语句
    变量命名
    python变量
    运算符
    注释
    PyCharm
    python版本,执行
    Tornado 【简述】
    Git 【管理篇】
    MySQL的介绍
  • 原文地址:https://www.cnblogs.com/Miracle-Maker/p/6353881.html
Copyright © 2011-2022 走看看