中文乱码:在以后学习过程中全部采用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. ASP.NET中使用开源插件zTree的小结

    在最近的项目应用中,找到了zTree免费的好东西,这里总结一下: 源码下载:http://www.ztree.me/ 效果是酱紫的: 前台代码: 样式和脚本 <link rel="st ...

  2. 第一节 Hibernate 基本配置

    1 新建maven工程 1)打开eclipse,依次点击File---->New---->Maven Project. 2)选择org.apache.maven.archetypes ma ...

  3. java synchronized关键字

    引用其他人的一段话 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并发线程访问同一个对象object中的这个synchro ...

  4. COM原理

    1, 进程内组件:服务程序杯加载到客户的进程空间,通常是DLL的形式.本地组件:服务程序与与客户程序在同一台电脑上,通常是EXE.远程组件: 服务程序与与客户程序在不同的电脑上,可以是DLL模块也可是 ...

  5. [java学习笔记]java语言核心----面向对象之static关键字

    static关键字用处 用于修饰成员变量和成员函数 被修饰后的成员具有以下特点: 随着类的加载而加载 优先于对象存在 被所有对象所共享 可以直接被类名调用 使用注意 静态方法只能访问静态成员:非静态方 ...

  6. DEDECMS中,友情链接

    友情链接:dede:flink {dede:flink row='24' type='image' titlelen="24" typeid="0"} [fie ...

  7. Jquery 页面元素动态添加后绑定事件丢失方法,非 live

    代码1: 以此方法绑定的input框事件,在通过add按钮后用jquery绑定的事件 alert就会丢失 <input type="button" value="A ...

  8. SpecFlow教程--快速入门

    原文http://www.specflow.org/getting-started/ 一.安装 为了能正确安装SpecFlow所需要的东西,你必须安装集成IDE的插件以及设置你的项目使用SpecFlo ...

  9. SharedPreference 的存取

    1.通过名称来获取指定的SharedPreferences,下面这句代码表示获取名字问hello的SharedPreferences,数据保存在 data/data/package名/shared_p ...

  10. 代码分享:php判断数组是否有序

    发布:脚本学堂/PHP编程  编辑:JB02   2013-12-17 14:59:02  [大 中 小] 转自:http://www.jbxue.com/article/14723.html如何判断 ...