代码就在下面,最开始我以为是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页面乱码问题相关推荐

  1. servlet和JSP页面乱码问题

    JSP和Servlet的中文乱码处理 前几天学习了JSP和Servlet中有关中文乱码的一些问题,写成了博客,今天进行更新一下.应该是可以解决日常的乱码问题了.现在作以下总结希望对需要的人有所帮助.我 ...

  2. java servlet post_Java中Servlet Post和Get乱码

    今天在Servlet中出现了乱码的问题,结果发现Post和Get乱码处理方式不一样. 在Servlet Post方法中代码如下: name就是前端页面传过来的, 调试发现name是乱码,后来添加了一句 ...

  3. js打印html页面中的指定内容?

    js打印html页面中的指定内容? 文章发布日期: 2017-12-20 文章更新日期:2018-01-08 添加demo下载 下载地址 传送门->点击去下载 声明,所有的打印页面都叫,inde ...

  4. Eclipse解决JSP页面乱码问题

    Eclipse解决JSP页面乱码问题 参考文章: (1)Eclipse解决JSP页面乱码问题 (2)https://www.cnblogs.com/wuyongyu/p/6610624.html (3 ...

  5. maven-eclipse 中index.html页面乱码

    maven-eclipse 中index.html页面乱码: pox.xml修改: <project>--<properties><argLine>-Dfile.e ...

  6. 在Servlet中实现页面转发

    在Servlet中实现页面转发,使用的是RequestDispatcher对象的forward()方法,可以在Servlet中通过forward()方法将当前的请求转发到其他Web组件 index.j ...

  7. requestmapping配置页面后_@RequestMapping接口及页面乱码问题

    老师 对接口及乱码问题请教 接口问题 @RequestMapping("upload.do") @ResponseBody public ServerResponse upload ...

  8. JS调用打印机打印Web页面

    第一种方法:指定不打印区域 使用CSS,定义一个.noprint的class,将不打印的内容放入这个class内. 详细如下: <style media=print type="tex ...

  9. servlet中实现页面跳转return “r:”和return “f:

    servlet中实现页面跳转return "r:"和return "f:"的区别和作用 2015-07-28 14:22741830480 | 浏览 48 次 ...

最新文章

  1. Matlab画三维曲线入门
  2. php curl 不验证ssl,PHP Curl https跳过ssl证书认证报错记录及解决
  3. Protobuf序列化的原理-负数的存储
  4. ubuntu16.04 安装 ipython
  5. 【147天】尚学堂高淇Java300集视频精华笔记(108-109)
  6. 腾讯安全科恩实验室发布最新研究成果,针对奔驰车载娱乐系统的安全研究
  7. 【jvm】JVM体系
  8. 阿里面试“神器”,成为众多程序员手中的王炸!
  9. (C语言)猴子选大王
  10. Android 软件重新加载,【BUG系列】Android 点击 Home 键后再点击 APP图标,APP 重新启动了...
  11. Nero Burning ROM 2014 16.0.03000 精简安装版(功能最强大的光盘刻录软件)
  12. rstudio教程 java_RStudio的使用教程
  13. 华侨大学教务系统评教脚本----一键评教
  14. 将ACII码转为浮点数
  15. Linux DRM(二)基本概念和特性
  16. 国家市场监督管理总局公布《国家标准管理办法》
  17. 存储圈老炮大战小鲜肉
  18. Struts2动作类:Action
  19. 物联网云平台设计与开发:springboot项目搭建与开发(后端)
  20. openGL之API学习(一三九)求垂直向量

热门文章

  1. ios tweak之binary not signed (use ldid -S)问题解决
  2. 蓝牙设置种常用的Intent
  3. Updater Application Block for .net 2.0 发布了
  4. httpservletrequest 设置请求头_大部分程序员不知道的 Servelt3 异步请求,原来这么简单?
  5. (libgdx学习)Continuous non continuous rendering
  6. Eclipse 使用
  7. 最完整的android源码获取方法及环境建立
  8. 华为服务器通过mgmt口挂载光盘装系统及Linux系统rescue模式下修复内核
  9. 从一个git仓库拷贝到另一个git仓库
  10. AWS Fargate告诉你:什么是容器即服务