博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【JAVA笔记——术】JSP中乱码问题的解决方法
阅读量:6602 次
发布时间:2019-06-24

本文共 1875 字,大约阅读时间需要 6 分钟。

  直接用一个模板做的网站,可悲的是这模板质量太差,大部分时间都花在调整乱码问题上的,笔者感觉jsp中的乱码也就这点了。在汇总了网上大部分靠谱的解决方法之后,整理如下。

1.html页面的编码规范

用户能看到的都是html页面,因此,无论首先应该做到的是静态页面编码的规范。

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

</head>

对于JSP页面首行加上

<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>

2.servlet编码的规范

servlet作为中间的控制者,承担了对用户请求的一部分处理以及与后台数据库的交互功能,因此MVC模式中servlet作为一个枢纽一方面得解决用户请求信息的编码规范以及与数据库交互的编码规范。

response.setContentType("text/html;charset=UTF-8");

在此默认为response.setContentType("text/html");若不加charset=UTF-8有可能造成在使用request.getRequestDispatcher重定向时造成乱码;

PrintWriter out = response.getWriter();

request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");

 后两者没什么好说的,对接收的编码进行规范,前者如果删除有可能造成重定向乱码

因此前四行代码一般直接这样使用

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
doPost(request, response);

————————————————————————————————————————————

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");

3.数据库连接时的编码规范

DriverManager.getConnection("jdbc:mysql://localhost/*******?useUnicode=true&characterEncoding=utf8", " ", " ");

设定连接数据库交互的编码规范

如果这里在数据库中还存在乱码,请检查一下数据库对应的字符集,用数据库管理软件可以轻易编辑,这里不赘述

4.设置tomcat默认字符集

可以考虑这样做,在有时忘记对编码进行规范的时候,tomcat采用默认字符集,打卡tomcat所在文件夹的 /conf/server.xml

<Connector port="8080" protocol="HTTP/1.1" 

               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8" />

如果大家还存在乱码的问题可以联系我

转载于:https://www.cnblogs.com/cunchen/p/9464247.html

你可能感兴趣的文章
ES6之const和let
查看>>
vue1 x 过滤器(三)
查看>>
探索Java并发编程与高并发解决方案
查看>>
树莓派3(Raspberry Pi 3)安装Win10 IoT Core
查看>>
给域控用户分配指定共享目录并定义共享目录大小
查看>>
kickstart及引导镜像制作
查看>>
Hi,I‘m here
查看>>
JMeter入门教程
查看>>
无法更新运行时文件夹共享状态:在客户机操作系统内装载共享文件夹文件系统时出错--解决办法...
查看>>
我的友情链接
查看>>
高可用分布式存储(Corosync+Pacemaker+DRBD+MooseFS)
查看>>
vsftpd的应用(匿名和认证,不同用户不同的目录)
查看>>
Open*** 秘钥+用户名密码双重验证登录
查看>>
MongoDB基础理念及操作初探
查看>>
实现图元及属性的算法---凸多边形的扫描填充
查看>>
木偶然-2011.4.19
查看>>
网易——合唱团,动态规划,限制了个数和位置差
查看>>
Oracle TimesTen企业级应用实践分享
查看>>
我的友情链接
查看>>
关于Docker Registry v2的搭建
查看>>