Servlet转码问题
HttpServletRequest获取页面数据
提交表单时,Servlet直接从页面通过HttpServletRequest对象的getParameter(String arg0)获取参数时
默认编码解码方式为iso8859-1,而浏览器会对中文参数值进行编码(会使用表单所在页面时的字符集编码);
编码和解码方式不一致时就会出现乱码。解决方式:
一般页面的编码集为utf-8(注意页面使用的编码集),所以在服务端采用这种方式解码就行了;
但是由于请求方式不同有不同解决方法:
1.get的请求方式时:
可以在tomcat的配置文件server.xml中配置的节点添加(加粗部分)
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
2.post的请求方式时:
需要直接在获取参数之前设置解码方式
request.setCharacterEncoding("utf-8");
3.两种情况都适用的方法(麻烦、不适用)
就是按默认解码方式获取的数据取得后,再自己写代码去解码再编码,但是每个会乱码的参数都需要,所以很麻烦
byte[] bs = user.getBytes("iso8859-1");
user = new String(bs,"utf-8");
HttpServletResponse返回数据
可以在返回数据前设置,通知容器使用指定的字符集
response.setContentType("text/html;charset=utf-8");
或者单独设置
response.setCharacterEncoding("utf-8");
注册博客园已经半年了,看了很多大神的文章,也解决了不少问题,很多次想写下自己的第一篇博客,但是一直很忐忑
没有一次开始,今天终于下定决心,虽然写的很简单,也不够清晰的感觉,但是走出了自己的第一步,希望自己能够在这条路走得更远。
Servlet转码问题的更多相关文章
- Servlet源码初探
年底,公司的事情告一段落,就来捣鼓一下这个Servlet源码,为下一步的spingmvc源码初探做准备 1.Servlet接口 public interface Servlet { void init ...
- Eclipse查看Servlet源码
Eclipse查看Servlet源码 @(Java) 1.servlet-api 和 javax.servlet-api的区别 在正式查看Servlet源码前,我们首先要分清楚上述两个jar包的区别. ...
- httpServlet,GenericServlet,Servlet源码分析
httpServlet源码: /* * Licensed to the Apache Software Foundation (ASF) under one or more * contribut ...
- servlet源码查看
1,下载源码,点击此处可下载 2,创建web项目 我这里以jdbc这个web项目为例讲解 在javaee libraries中有个javaee.jar包,选中它-->右击-->Proper ...
- springboot 2.1.3.RELEASE添加filter,servlet源码学习
Servlet规范中,通过ServeltContext来注册Filter.Servlet,这里分析Filter,Servlet是相同逻辑 springboot2.0中,我们通过 FilterRegis ...
- Servlet源码分析
Servlet API的核心就是javax.servlet.Servlet接口,所有的Servlet 类(抽象的或者自己写的)都必须实现这个接口.在Servlet接口中定义了5个方法,其中有3个方法是 ...
- IDE:Eclipse查看Servlet源码
一.源码下载 1.打开tomcat官网:http://tomcat.apache.org/ , 点击右侧下载菜单(以tomcat-7为例)进入下载页面:http://tomcat.apache. ...
- JavaWeb高级:Servlet源码分析
很多东西归根结底是对Servlet源代码的了解,通过学习源代码加深了解Java高级特性
- JSP + servlet 源码 实现文件的上传
JSP页面 upLoad.jsp _________________________________ <%@ page language="java" import=&quo ...
随机推荐
- Windows Azure Storage (18) 使用HTML5 Portal的Azure CDN服务
<Windows Azure Platform 系列文章目录> Update:2015-04-15 如果读者使用的是国内由世纪互联运维的Azure China服务,请参考笔者的文档:Azu ...
- 搞懂 SynchronizationContext(第一部分)【翻译】
SynchronizationContext -MSDN 很让人失望 我不知道为什么,目前在.Net下关于这个类只有很少的资料.MSDN文档也只有很少的关于如何使用SynchronizationCon ...
- Java接口和抽象类的区别
今天看到项目中,写了一个抽象类,里面有很多方法继承了这类,当调用这个接口时,采用的是这个抽象类去调方法的,当时一想,这个不就是我们说的Java的多态的特征: 继承:存在继承关系的子类和父类 重写:子类 ...
- KnockoutJS 3.X API 第七章 其他技术(3) 延迟更新
.example { display: inline-block; padding: 1em; margin-right: 2em; background: #F6F6EF; } 注意:本文档适用于K ...
- Qt 之 数字钟
本例用来展示 QTimer 的使用,如何定时的更新一个窗口部件. 1 QLCDNumber 类 QLCDNumber 是一种可将数字显示为类似 LCD 形式的窗口部件,它同 QLabel 一样,都继 ...
- Security10:授予访问Object的权限
1,将访问Object的权限授予Database Role 或 User 的语法如下 GRANT <permission> [ ,...n ] ON [ OBJECT :: ][ sche ...
- 网站初步收工---www.dkill.net
今天10.30左右备案核审成功了,然后一天都在忙部署和一些其他的东西,中途也写了很多文档,遇到很多问题,直接琢磨了N久,暂时发了这么多教程,明天揭露阿里云的各种坑(先用winServer服务器,有时间 ...
- LINQ系列:Linq to Object分组操作符
分组是指根据一个特定的值将序列中的值或元素进行分组.LINQ只包含一个分组操作符:GroupBy. GroupBy 1>. 原型定义 public static IQueryable<IG ...
- 传智播客--数据绑定--INotifyPropertyChanged(小白内容)
INotifyPropertyChanged一般在数据绑定的时候使用. InotifyPropertyChanged是.net内置的接口,数据绑定时会检测DataContext是否实现了Inotify ...
- 【开源】OSharp框架解说系列(1):总体设计及系列导航
系列文章导航 [开源]OSharp框架解说系列(1):总体设计 [开源]OSharp框架解说系列(2.1):EasyUI的后台界面搭建及极致重构 [开源]OSharp框架解说系列(2.2):EasyU ...