java web上机课作业延伸出的坑爹问题

今天老师要我们用记事本写一个Servlet.java理解一下Servlet的基本原理的实现过程

于是乎,我看到了一个要求:代码中的符号应该修改为英文符号

为什么中文就不可以呢?然后我尝试写了中文,迎面而来的是疯狂的翻车。百度看了一堆也是没有解决

最终解决方案

坑点

由于是GBK编码,Notepad++中编码一定要选ANSI编码!!一定要选ANSI编码!!一定要选ANSI编码!!

原因

在整个Servlet访问过程中牵扯到 浏览器,Tomcat,Java程序三者

浏览器默认编码方式:gbk,

Tomcat默认编码:iso-8859-1 ,

java代码中的编码一般常用utf-8

从Servlet传输数据到浏览器的过程是:Servlet —> Tomcat —> 浏览器

因为只写了Servlet.java所以只能够在这之中控制Servlet和Tomcat与浏览器统一为GBK。

核心代码

response.setContentType("text/html;charset=GBK");
request.setCharacterEncoding("GBK");