美文网首页
javaweb学习遇到的问题

javaweb学习遇到的问题

作者: cocolove2 | 来源:发表于2016-05-22 12:59 被阅读169次
    更改MySQL数据库的编码为utf8mb4

    解决参考:更改MySQL数据库的编码为utf8mb4

    • 创建表格设置表格的编码为utf8mb4,示例:
      create table student(NO char(20),name varchar(20),primary key(NO))ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
    Eclipse创建web在tomcat上不能发布

    解决办法: Eclipse中的Web项目自动部署到Tomcat

    Javaweb开发中响应乱码和请求乱码

    解决方法:

    //=======================
    //tomcat6,7默认编码为iso8859-1
    //========================
    1.post请求
      /*
      * 这个方法只对请求的实体内容起作用,因GET提交的请求参数在地址
      * 栏 后,并不在实体内容中,所以这个方法对于GET提交无效
      */
    request.setCharacterEncoding("utf-8");
    //设置编码后,通过该方法取参数
     request.getParameter("key");
    
    2.get请求
    /*
    服务器用iso8859-1来解析,造成了乱码,由于iso8859-1无法正确
    显示这些字符,所以显示为了“?”,但是底层的编码仍然是正确的。所
    以,我们可以通过如下方式解决:
    */
    addr=request.getParameter("key");
    byte[] bs = addr.getBytes(“iso8859-1”);//将乱码解析回二进制数据
    addr = new String(bs,”utf-8”);//按照正确的utf-8解码得到正确的字符
    
    //*******************************************
    备注:当我们通过request.getInputStream()或request.getReader()方
    法获取参数时,由于表单提交的参数都会先进行UrlEncoding编码,所以
    在获取时,要进行UrlEncode解码 。而且以上两个方法只能获取到请求
    的实体的内容,所以对get请求是无用的。
    
    //以下示例代码是在post请求下测试的,有效
    String line;
    BufferedReader reader=request.getReader();
    while((line=reader.readLine())!=null){
      System.out.println(URLDecoder.decode(line));
    }
    
    

    参考:Javaweb开发中响应乱码和请求乱码的解决方案

    相关文章

      网友评论

          本文标题:javaweb学习遇到的问题

          本文链接:https://www.haomeiwen.com/subject/zomurttx.html