Servlet打印HTML页面乱码问题
代码就在下面,最开始我以为是request和response的编码问题,还去搞了一个filter,结果最后发现跟filter半毛钱关系都没有,都是因为没有打印这么一句
out.println("<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\">");
input.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <title>Insert title here</title> 6 </head> 7 <body> 8 <form action="InputServlet" method="post"> 9 请输入内容:<input type="text" name="info"> 10 <input type="submit" value="提交"> 11 </form> 12 </body> 13 </html>
InputServlet.java
package org.lxh.servletdemo ;import java.io.* ; import javax.servlet.* ; import javax.servlet.http.* ;public class InputServlet extends HttpServlet{public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{String info = req.getParameter("info") ; // 假设参数名称为infoSystem.out.println(this + ": " + info); // @DebugPrintWriter out = resp.getWriter() ;out.println("<html>") ;// out.println("<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\">"); // 少了这一句就出现乱码,加上这一句,你不用filter都可以out.println("<head><title>MLDNJAVA</title></head>") ;out.println("<body>") ;out.println("<h1>" + info + "</h1>") ;out.println("</body>") ;out.println("</html>") ;out.close() ;}public void doPost(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{this.doGet(req,resp) ;} }
---------------------2014-01-09更新-----------------------
呃,验证了一下,上面说的是没有问题的。
刚才又试了试,如果你在代码中使用了req.setCharacterEncoding("utf-8"),那么会导致out.println("<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><title>MLDNJAVA</title></head>")失效。这个时候,就必须用resp.setContentType("text/html;charset=utf-8")来搭配,否则页面仍然是乱码
代码如下:
1 public class InputServlet extends HttpServlet{ 2 public void doGet(HttpServletRequest req,HttpServletResponse resp) 3 throws ServletException,IOException{ 4 req.setCharacterEncoding("utf-8"); // 这个必须有,否则response页面的中文会出现乱码 5 6 String info = req.getParameter("info") ; // 假设参数名称为info 7 8 // System.out.println(this + ": " + info); // @Debug 9 10 //resp.setCharacterEncoding("utf-8"); //! 这个与req.setCharacterEncoding("utf-8")搭配解决不了response页面的中文乱码的问题 11 12 resp.setContentType("text/html;charset=utf-8"); // 这个必须有,否则response页面的中文会出现乱码 13 14 PrintWriter out = resp.getWriter() ; 15 out.println("<html>") ; 16 out.println("<head><title>MLDNJAVA</title></head>"); 17 //out.println("<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><title>MLDNJAVA</title></head>"); //! 这个与req.setCharacterEncoding("utf-8")搭配解决不了response页面的中文乱码问题,通过浏览器查看InputServlet生成的页面的源码,看不到<meta>的内容 18 out.println("<body>") ; 19 out.println("<h1>" + info + ":" + new Date() + "</h1>") ; 20 out.println("</body>") ; 21 out.println("</html>") ; 22 out.close() ; 23 } 24 public void doPost(HttpServletRequest req,HttpServletResponse resp) 25 throws ServletException,IOException{ 26 this.doGet(req,resp) ; 27 } 28 }
Servlet打印HTML页面乱码问题相关推荐
- servlet和JSP页面乱码问题
JSP和Servlet的中文乱码处理 前几天学习了JSP和Servlet中有关中文乱码的一些问题,写成了博客,今天进行更新一下.应该是可以解决日常的乱码问题了.现在作以下总结希望对需要的人有所帮助.我 ...
- java servlet post_Java中Servlet Post和Get乱码
今天在Servlet中出现了乱码的问题,结果发现Post和Get乱码处理方式不一样. 在Servlet Post方法中代码如下: name就是前端页面传过来的, 调试发现name是乱码,后来添加了一句 ...
- js打印html页面中的指定内容?
js打印html页面中的指定内容? 文章发布日期: 2017-12-20 文章更新日期:2018-01-08 添加demo下载 下载地址 传送门->点击去下载 声明,所有的打印页面都叫,inde ...
- Eclipse解决JSP页面乱码问题
Eclipse解决JSP页面乱码问题 参考文章: (1)Eclipse解决JSP页面乱码问题 (2)https://www.cnblogs.com/wuyongyu/p/6610624.html (3 ...
- maven-eclipse 中index.html页面乱码
maven-eclipse 中index.html页面乱码: pox.xml修改: <project>--<properties><argLine>-Dfile.e ...
- 在Servlet中实现页面转发
在Servlet中实现页面转发,使用的是RequestDispatcher对象的forward()方法,可以在Servlet中通过forward()方法将当前的请求转发到其他Web组件 index.j ...
- requestmapping配置页面后_@RequestMapping接口及页面乱码问题
老师 对接口及乱码问题请教 接口问题 @RequestMapping("upload.do") @ResponseBody public ServerResponse upload ...
- JS调用打印机打印Web页面
第一种方法:指定不打印区域 使用CSS,定义一个.noprint的class,将不打印的内容放入这个class内. 详细如下: <style media=print type="tex ...
- servlet中实现页面跳转return “r:”和return “f:
servlet中实现页面跳转return "r:"和return "f:"的区别和作用 2015-07-28 14:22741830480 | 浏览 48 次 ...
最新文章
- Matlab画三维曲线入门
- php curl 不验证ssl,PHP Curl https跳过ssl证书认证报错记录及解决
- Protobuf序列化的原理-负数的存储
- ubuntu16.04 安装 ipython
- 【147天】尚学堂高淇Java300集视频精华笔记(108-109)
- 腾讯安全科恩实验室发布最新研究成果,针对奔驰车载娱乐系统的安全研究
- 【jvm】JVM体系
- 阿里面试“神器”,成为众多程序员手中的王炸!
- (C语言)猴子选大王
- Android 软件重新加载,【BUG系列】Android 点击 Home 键后再点击 APP图标,APP 重新启动了...
- Nero Burning ROM 2014 16.0.03000 精简安装版(功能最强大的光盘刻录软件)
- rstudio教程 java_RStudio的使用教程
- 华侨大学教务系统评教脚本----一键评教
- 将ACII码转为浮点数
- Linux DRM(二)基本概念和特性
- 国家市场监督管理总局公布《国家标准管理办法》
- 存储圈老炮大战小鲜肉
- Struts2动作类:Action
- 物联网云平台设计与开发:springboot项目搭建与开发(后端)
- openGL之API学习(一三九)求垂直向量
热门文章
- ios tweak之binary not signed (use ldid -S)问题解决
- 蓝牙设置种常用的Intent
- Updater Application Block for .net 2.0 发布了
- httpservletrequest 设置请求头_大部分程序员不知道的 Servelt3 异步请求,原来这么简单?
- (libgdx学习)Continuous non continuous rendering
- Eclipse 使用
- 最完整的android源码获取方法及环境建立
- 华为服务器通过mgmt口挂载光盘装系统及Linux系统rescue模式下修复内核
- 从一个git仓库拷贝到另一个git仓库
- AWS Fargate告诉你:什么是容器即服务