千万不要看网上那些杂七杂八的解决乱码的文章,解决乱码最好的方法是(没有之一):在所有地方统一采用UTF-8编码。

这其中包括:

1 - 工程

如果使用的是Eclipse,那么打开Preference,搜索encoding,把所有能改的地方都改成UTF-8,这就确保了源文件的编码。

如果使用的是NetBeans,不用设置,因为NetBeans默认就是UTF-8。

2 - 数据库

例如MySQL,加上启动参数--character-set-server=utf8,这样以后创建的所有数据库都是UTF-8编码,这样就不需要一个一个数据库改了。注意选择MySQL管理工具的时候要选择支持UTF-8的,不过貌似不支持的很少。

3 - Web服务器

例如Tomcat 6,在<Service name="Catalina">中的<Connector>中加上URIEncoding="utf-8",确保URL的编码格式为UTF-8。

4 - JSP页面

开头要这样写:
<%@ page ... charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<meta ... charset=UTF-8">

5 - Servlet过滤器

如果项目中使用了Servlet,那么编写一个Servlet过滤器,就能避免在每一个Servlet开头都写那几行同样的语句了:

public class EncodingFilter implements Filter {
  public void doFilter (request, response, chain) {
    // 设置编码格式
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    // 传递到下一个过滤器
    chain.doFilter(request, response);
  }
}

转自:http://blog.sina.com.cn/s/blog_417d26b70100e5ho.html

Java Web开发(JSP、Servlet)乱码的一揽子解决方案的更多相关文章

  1. Java Web开发——JSP基本语法杂记

    在一个JSP页面中,可以包括指令标识.HTML代码.JavaScript代码.嵌入的Java代码.注释和JSP动作标识等内容.但是这些并不是JSP页面所必须的. 1 指令标识指令标识主要用于设定整个J ...

  2. Java Web开发中的乱码问题

    POST方法乱码: 1:存在乱码的示例: 前端页面: <%@ page language="java" contentType="text/html; charse ...

  3. java web开发及Servlet常用的代码

    日志 1.使用门面模式的slfj,并结合log4j,logback. 2.info.debug.error,要写清楚. 3.使用占位符,如下: log.info("用户id为: {} &qu ...

  4. java web开发中遇到的问题及解决方案(个人学习日志,持续更新)

    转:http://blog.csdn.net/ducexu/article/details/7529613 2012.05.02   星期三 1.问题:导入的新工程,名字上出现感叹号. 原因:工程的j ...

  5. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  6. java web 开发入门 --- tomcat/servlet/jsp

    在做java web 开发时,要先安装tomcat.它是一个web服务器,也叫web容器,我们把写好的jsp, html页面放到它里面,然后启动它,就可以用浏览器访问这些页面,地址栏中输入localh ...

  7. Java Web开发之详解JSP

    JSP作为Java Web开发中比较重要的技术,一般当作视图(View)的技术所使用,即用来展现页面.Servlet由于其本身不适合作为表现层技术,所以一般被当作控制器(Controller)所使用, ...

  8. Java Web开发之Servlet、JSP基础

    有好多年不搞Java Web开发了,这几天正好国庆放假,放松之余也有兴趣回头看看Java Web开发技术的基础. 我们都知道,Servlet是Java Web开发的重要基础,但是由于Servlet开发 ...

  9. Java Web开发技术教程入门-JSP基本语法和九大内置对象

    这两天气温逐渐升高,好想把自己泡在冰块里······ 恩嗯摁蒽恩嗯摁蒽恩嗯摁蒽恩嗯摁蒽.......今天阅读到了这本书的第四章-JSP基本语法.经过第一天的阅读,我们明白JSP技术是Java Web开 ...

  10. 【Java Web开发学习】Spring MVC添加自定义Servlet、Filter、Listener

    [Java Web开发学习]Spring MVC添加自定义Servlet.Filter.Listener 转载:https://www.cnblogs.com/yangchongxing/p/9968 ...

随机推荐

  1. 【Jump Game II 】cpp

    题目: Given an array of non-negative integers, you are initially positioned at the first index of the ...

  2. Windows网络编程笔记2

    这一次看看重定向器和如何使用Netbios函数获取本机mac地址 5.获取Mac地址 利用NCBASTAT命令实现,适配器状态命令会返回一个 ADAPTER_STATUS结构,紧接着是大量 NAME_ ...

  3. Android onConfigurationChanged用法(规避横竖屏切换导致的重新调用onCreate方法)

    onConfigurationChanged的目的是为了规避横竖屏切换干掉activity而重新调用onCreate方法的问题:有的时候,我们希望重新进入OnCreate生命周期,此时可以调用onSa ...

  4. 博客内插入bilibili视频

    原理 使用iframe标签,更改其中src的aid和cid,使其对应要插入的视频,即可在文章内插入bilibili视频 获取cid aid即为视频的av号,cid有两种获取方式,一是通过bilibil ...

  5. mybatis sql转义符号

    第一种写法:通过<![CDATA[ ]]>符号来写 大于等于:<![CDATA[ >= ]]> 小于等于:<![CDATA[ <= ]]> 例如:sql ...

  6. java作业8

    interface Pet{ public String getName(); public String getColor(); public int getAge(); } class Cat i ...

  7. HDU 4845 拯救大兵瑞恩(分层图状压BFS)

    拯救大兵瑞恩 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Sub ...

  8. mac 安装 python 配置||虚拟环境

    前篇:http://www.cnblogs.com/ostrich-sunshine/p/8747791.html 介绍了 Mac 下 python 的一些相关知识. 这篇介绍 python3 的安装 ...

  9. linux之eval

    1. eval command-line 其中command-line是在终端上键入的一条普通命令行.然而当在它前面放上eval时,其结果是shell在执行命令行之前扫描它两次.如: pipe=&qu ...

  10. Bzoj2829 信用卡凸包

    Time Limit: 10 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 333  Solved: 155 Description Input ...