javaweb学习遇到的问题

更改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开发中响应乱码和请求乱码的解决方案

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • 一.Web概述 1.Web发展历史 原始年代1990-1992:1990年,HTML标记语言的出现标志Web开发时...
    贾里阅读 5,117评论 0 5
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,052评论 6 342
  • 感赏儿子早晨坚持晨读,单词,跳绳,固化成习惯,今天跳绳断了很多次,看得出来心情比较浮躁。我鼓励他,下次会跳得更好的...
    玲03阅读 760评论 0 1
  • 现在的我站在三楼上,凝视着母校美丽的教学楼和漂亮的大操场,我不禁思绪万千,心中的留恋之情油然而生!在母校学习...
    燕孜婷阅读 2,325评论 0 0