Tomcat下写Servlet中文编译错误的坑
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");