老手讲解在JSP开发中与Web的中文问题解决方法
这段时间经常看到有人问到web开发中怎么中文总是?号。原因其实很简单,因为大家大多用的是tomcat服务器,而tomcat服务器的默认编码为 iso-8859-1(西欧字符)。就是因为iso-8859-1(西欧字符)编码造成了我们经常看到?号。
方法一:最简单也是用的最多的方法。
<%@ page language="java" pageEncoding="GBK" %>
或者<%@ page contenttype="text/html;charset=gbk";>这里可以用gb2312或者gbk,只是gbk比gb2312支持跟多的字符。
这个方法用于jsp页面中的中文显示。
方法二:使用过滤器。
过滤器使用主要针对表单提交,插入数据库的数据都是?号。这也是应为tomcat不按request所指定的编码进行编码,还是自作主张的采用默认编码方式iso-8859-1编码。
编写一个SetCharacterEncodingFilter类。
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class SetCharacterEncodingFilter implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig=filterConfig;
this.encoding=filterConfig.getInitParameter("encoding");
String value=filterConfig.getInitParameter("ignore");
if(value==null)
this.ignore=true;
else if(value.equalsIgnoreCase("true"))
this.ignore=true;
else
this.ignore=false;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO 自动生成方法存根
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}
chain.doFilter(request, response);
}
public void destroy() {
// TODO 自动生成方法存根
this.encoding = null;
this.filterConfig = null;
}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}
然后再web.xml加上
<!-- Set Character Encoding-->
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.struts.common.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>
<!-- Set Character Encoding-->
使用过滤器的好处很多,特别是项目之中。
而且在使用国际化时就更有用了,只要在页面指定 <%@ page language="java" pageEncoding="UTF-8" %>,服务器就会根据本地Locale来显示正确的字符集。
所以我特别推荐使用过滤器。
方法三:修改tomcat的server.xml文件中URIEncoding.
<Connector debug="0" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"
port="80" redirectPort="8443" enableLookups="false" minSpareThreads="25" maxSpareThreads="75"
maxThreads="150" maxPostSize="0" URIEncoding="GBK" >
</Connector>
这个方法主要针对从url中获取字符串的问题。
转载于:https://blog.51cto.com/lailjiaaie/1103072
老手讲解在JSP开发中与Web的中文问题解决方法相关推荐
- java开发中遇到的问题及解决方法(持续更新)
java开发中遇到的问题及解决方法(持续更新) 参考文章: (1)java开发中遇到的问题及解决方法(持续更新) (2)https://www.cnblogs.com/LiuYanYGZ/p/6112 ...
- 微信小程序在开发中遇到的问题与解决方法
微信小程序在开发中遇到的问题与解决方法 参考文章: (1)微信小程序在开发中遇到的问题与解决方法 (2)https://www.cnblogs.com/zjjDaily/p/8032142.html ...
- Android应用开发中三种常见的图片压缩方法
Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法.比例压缩法(根据路径获取图片并压缩)和比例压缩法(根据Bitmap图片压缩). 一.质量压缩法private Bitmap comp ...
- iphone iPhone开发中为UINavigationBar设置背景图片方法
1:原文摘自:http://mobile.51cto.com/iphone-284865.htm iPhone开发中为UINavigationBar设置背景图片方法是本文要介绍的内容,在iPhone开 ...
- Android实际开发中的bug总结与解决方法(一)
Android实际开发中的bug总结与解决方法(一) 参考文章: (1)Android实际开发中的bug总结与解决方法(一) (2)https://www.cnblogs.com/ywq-come/p ...
- java 判断手机运营商_Java开发中识别手机运营商的方法
在Java开发中程序需要根据用户输入的号码判断运营商,这该怎么实现呢?而我们需要根据不同的运营商进行相应的处理,下面是爱站技术频道小编介绍的Java开发中识别手机运营商的方法. js实现方法: var ...
- 前端开发中遇到的问题及解决方法
前端开发中遇到的问题及解决方法 1,何为MVVM? view层: 视觉层:在前端开发中,通常是DOM层:主要作用是给用户展示各种信息: Model层: 数据层:数据可能是我们固定的死数据,更多的是来自 ...
- jsp页面中include的两种使用方法
jsp页面中include的两种使用方法 include有两种用法 <%@ include file="文件的绝对路径或者相对路径"%> <jsp:include ...
- 小米首页实践开发中遇到的问题及解决方法
小米首页实践开发中遇到的问题及解决方法 1.菜单栏的指向小三角问题 解决方法:使用矩形边框绘制三角形,用CSS设置矩形内容为空.边框设置一定的宽度(三角形的高),并且设置一个方向的边框颜色,其他方向颜 ...
最新文章
- 便携式不锈钢管道焊接机器人_304不锈钢管居然可以发黑?
- 记录ionic 最小化应用时所遇的问题
- AxWebBrowser
- 医疗用户端app原型/问诊/挂号/开药/视频问诊/电子处方/预约/互联网医疗平台用户端/Axure原型/电话问诊/药品/就诊开药/远程医疗平台/线上问诊/线上看病/rp源文件/移动端医疗原型/门诊
- Flink Weekly | 每周社区动态更新-12/24
- 最新安卓版本对照表,API对照表,持续更新
- 蓝方防守、HW总结报告模板
- 猜你喜欢”推荐算法大赛冠军分享
- 计算机在随机抽样上的应用,使用计算机随机分组与随机抽样的方法及应用
- 硬核图解面试最怕的红黑树【建议反复摩擦】
- 【测试基础】bug分级、测试流程、ISO9126质量模型
- 【求职面试】面试中 HR 经常问到什么样的问题?赶紧看一看!
- 【Python】迭代法求解非线性方程及方程组
- 行人与车辆检测计数人脸识别
- CentOS搭建SVN服务器
- arduino led灯通讯
- win10卸载补丁发生错误,没有成功卸载全部更新
- 临床血液学综合练习题库【3】
- 啊哈,拉个群就是私域流量,怪不得做不好运营工作
- 杭州卫星地图 百度卫星地图(含道路、标签信息叠加)
热门文章
- Microsoft Dynamics CRM 2013 and 2011 Update Rollups and Service Packs
- 使用NSURLConnection实现大文件断点下载
- Smart Crop,一种切除 PDF 扫描文档白边的新选择(工程篇)
- 我与监控宝之间的点点滴滴
- 《C语言及程序设计》实践参考——当年第几天
- SqlServer判断表是否存在
- BOM中的其他对象以及短路运算
- MYSQL数据库字母数字混合字段排序问题
- 开发人员学Linux(10):CentOS7安装配置代码质量管理平台SonarQube6.4
- CSS之 background-color: rgba(255,0,0,opacity number)