中文乱码:在以后学习过程中全部采用UTF-8

1、文件的乱码
1.1、项目文本文件默认编码:
       【右击项目】->【Properties】->【Resource】->【Text file encoding】     
 
1.2、文件默认编码:默认使用项目的默认编码
     【右击文件】->【Properties】->【Resource】->【Text file encoding】
1.3、 JSP 文件编码:由于 JSP 要翻译为 Servlet
1.3.1、JSP文件编码:
     【右击文件】->【Properties】->【Resource】->【Text file encoding】
1.3.2、JSP翻译为Servlet时的编码:
   <%@ page language="java" pageEncoding="utf-8"%>
中文乱码:在以后学习过程中全部采用UTF-8
2、浏览器和服务器间传输数据的乱码
 
2.1、 浏览器端 编码,一般由服务器端告诉浏览器如何解码数据:
2.1.1、Servlet
          response.setContentType("text/html; charset=UTF-8");
        或者  response.setCharacterEncoding(“UTF-8”);
   2.1.2、JSP
         <%@ page language="java" contentType="text/html; charset=utf-8" %>
   2.1.3、通用
         <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 
注:浏览器编码可以由我们手工修改,但最后不要这样,一般让浏览器自动选择即可。
中文乱码:在以后学习过程中全部采用UTF-8
2、浏览器和服务器间传输数据的乱码
 
2.2、 服务器端 编码,将客户端传过来的数据进行解码:
      浏览器默认使用ISO-8859-1进行编码数据,然后将数据传输到服务器,因此我们默认只需要将浏览器发送过来的数据转换为我们需要的编码即可。
2.2.1、最简单方式:
    String username = request.getParameter(“username”);
       username = new String(username.getBytes("ISO-8859-1“), "UTF-8");
   2.2.2、比较好的解决方案
      // 必须 在获取参数之前,调用如下方法先解码
       request.setCharacterEncoding(“UTF-8”);
      String username = request.getParameter(“username”);
2.4、比较通用方案:在一个Filter中更改所有请求的编码方式:
    1、在src中添加filter来设置编码格式是中文,filter类可以在tomcat的包里面:apache-tomcat-6.0.16.zip\apache-tomcat-6.0.16\webapps\examples\WEB-INF\classes\filters下面,SetCharacterEncodingFilter.java文件
 
     2 、在 web.xml 中配置 filter ,具体配置如下页:
<filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>filters.SetCharacterEncodingFilter</filter-class>
        <init-param><param-name>encoding</param-name>
                            <param-value>utf-8</param-value></init-param>
</filter>
<filter-mapping>
        <filter-name>Set Character Encoding</filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>
2.5、 GET提交方式中文乱码解决
通过修改request.setCharacterEncoding(“UTF-8”);只能解决POST提交方式的请求编码,对GET无效。
 
     1 、最简单解决方案: 解决方案不再需要任何额外配置(如filter)
           TOMCAT默认ISO-8859-1 因此可以设置默认编码为UTF-8解决,在conf\server.xml文件中设置如下
             <Connector port="8080" protocol="HTTP/1.1"
                                connectionTimeout="20000"
                                redirectPort="8443" URIEncoding=”UTF-8”/>
     2 、在 tomcat4 之后,可以通过如下配置来解决中文乱码,但必须配置 filter
         在conf\server.xml文件中设置如下
                    <Connector port="8080" protocol="HTTP/1.1"
                                        connectionTimeout="20000"
                                        redirectPort="8443" useBodyEncodingForURI=“true”  />
         然后request.setCharacterEncoding(“UTF-8”)也可解决GET乱码
 
 
 
 

Java Web开发 之小张老师总结中文乱码解决方案的更多相关文章

  1. Java Web开发 之小张老师总结EL、JSP、Servlet变量

    EL 11 JSP 9 Servlet JSP类别 pageContext pageContext * 作用域 pageScope pageContext.getAttribute() * reque ...

  2. Java Web开发 之小张老师总结GET和POST区别

    get和post区别1.传输方式不同,get在request-line中传输(即在URL中传输).post在request-line及 request-body中传输(可认为隐藏传输)2.get传输长 ...

  3. 解决java web中safari浏览器下载后文件中文乱码问题

    解决java web中safari浏览器下载后文件中文乱码问题 String fileName = "测试文件.doc"; String userAgent = request.g ...

  4. Java Web开发中MVC设计模式简介

    一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...

  5. 【转】 java web开发之安全事项

    从事java web开发也有几年了,可是开发中的安全问题却越来越不以为然.直到不久遇到一黑软,瞬间sql注入,少时攻破网站数据库.还好,我还没有用root级的用户连接数据库.不过也没有什么用了,因为我 ...

  6. 【原创】三分钟教你学会MVC框架——基于java web开发(2)

    没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...

  7. 个人的java web开发书单

    首发至个人博客http://www.zidafone.com/blog/36 以下是对一些读过的书和一些买后随便翻了翻的书的个人感觉.都是java web开发的程序员可能接触的书,其他的如设计/手机开 ...

  8. 《Java web 开发实战经典》读书笔记

    去年年末,也就是大四上学期快要结束的时候,当时保研的事情确定了下来,终于有了一些空闲的时间可以学点实用的技术. 之前做数据库课程设计的时候,也接触过java web的知识,当时做了一个卖二手书籍的网站 ...

  9. 使用Eclipse+Maven+Jetty构建Java Web开发环境(几个教程综合集成2014发行)

    工作需要使用Jetty由于web集装箱,得知Eclipse+Maven+Jetty该组合是非常好的,因此,要在网上找了很多教程,但不写或多或少特定的或过时的内容而导致最终的配置失败,易于配置为未来的同 ...

随机推荐

  1. java坑之无法创建线程

    环境:linux 错误:java.lang.OutOfMemoryError: unable to create new native thread 原因:OS对线程是有限制 解决办法: 在Linux ...

  2. Smarty模板引擎技术

    Smarty模板引擎技术 什么是模板引擎? 什么是Smarty模板引擎? 为何选择Smarty模板引擎? 如何使用Smarty模板引擎? 一.历史背景 场景一:回顾之前编写PHP项目的方式 //链接数 ...

  3. 第一个MapReduce程序

    计算文件中每个单词的频数 wordcount 程序调用 wordmap 和 wordreduce 程序. import org.apache.hadoop.conf.Configuration; im ...

  4. linux电源管理系列(一)

    本系列将逐步介绍linux电源管理相关的知识,涉及到常见电源管理机制.linux电源管理机制.linux驱动中有关电源管理的相关接口.内核文档中关于Linux电源管理架构文档的分析.以下将以此来介绍相 ...

  5. [java学习笔记]java语言基础概述之函数的定义和使用&函数传值问题

    1.函数 1.什么是函数? 定义在类中的具有特定功能的一段独立小程序. 函数也叫做方法 2.函数的格式 修饰符   返回值类型    函数名(参数类型  形式参数1, 参数类型  形式参数2-) { ...

  6. offset() position() scrollTop() scrollLeft()

    (1)offset:获取当前元素相对于文档的高度.只对可见元素有效. 不管该元素如何定位,也不管其父元素如何定位,都是获取的该元素相对于当前视口的偏移 (2) position:获取元素相对于最近的一 ...

  7. 模仿 ios 分段单选

    http://blog.csdn.net/qduningning/article/details/37935227 res/drawable/seg_left.xml <?xml version ...

  8. WPF Button的背景图片设置

    这个问题很简单,但是对于从winfrom转过来的来讲,在做事的时候就会被绕进去,言归正传,如何设置一个bUtton的背景图片?如何去掉让人烦的默认选中时的灰色背景?请看如下的描述.问题的来源和解决都在 ...

  9. 三、mysql运算符

    取模有2种方法: 或 mod(,) 比较一个字段的值是不是null有两种方法:is null 或 <=> null 不能直接使用 where id = null;是不对的

  10. mybatis + postgresql 遇到的问题

    org.postgresql.util.PSQLException: ERROR: relation "circlefence" does not exist  这个问题是数据库表 ...