html传参给selvet乱码,A标签中传递的中文参数到Servlet 后台request.getParameter()接收时出现中文乱码...

package util;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletRequestWrapper;

import java.io.UnsupportedEncodingException;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

public class MyHttpServletRequest extends HttpServletRequestWrapper {

protected Log log = LogFactory.getLog(getClass());

private static final String ENCODED = "UTF-8",DECODE="ISO8859-1";

public MyHttpServletRequest(HttpServletRequest request) {

super(request);

}

@Override

public String getQueryString() {

String queryString = super.getQueryString();

if(queryString != null){

try {

return new String(queryString.getBytes(DECODE),ENCODED);

} catch (UnsupportedEncodingException e) {

log.info(e.getMessage(),e);

}

}

return queryString;

}

@Override

public String getParameter(String name) {

String value = super.getParameter(name);

if (value != null) {

try {

return new String(value.getBytes(DECODE), ENCODED);

} catch (UnsupportedEncodingException e) {

log.info(e.getMessage(),e);

}

}

return value;

}

@SuppressWarnings("unchecked")

@Override

public Map getParameterMap() {

Map values = super.getParameterMap();

Map valuesMap = new HashMap();

Set names = values.keySet();

for (Iterator iter = names.iterator(); iter.hasNext();) {

String name= iter.next();

String[] v = values.get(name);

if(v != null) {

String[] valuesCopy = new String[v.length];

for(int i = 0; i < v.length; i++) {

try {

valuesCopy[i] = new String(v[i].getBytes(DECODE), ENCODED);

} catch (UnsupportedEncodingException e) {

log.info(e.getMessage(),e);

}

}

valuesMap.put(name, valuesCopy);// 向新Map放入转码过的值

}

}

return valuesMap;// 返回是副本

}

@Override

public String[] getParameterValues(String name) {

String[] values = super.getParameterValues(name);

if(values != null) {

String[] valuesCopy = new String[values.length];//原数组是只读的,不能修改

for(int i = 0; i < values.length; i++) {

try {

valuesCopy[i] = new String(values[i].getBytes(DECODE), ENCODED);

} catch (UnsupportedEncodingException e) {

log.info(e.getMessage(),e);

}

}

return valuesCopy;

}

return values;

}

}

后台调用

request = new MyHttpServletRequest(request);

来自:http://bbs.csdn.net/topics/320081498  回答的二楼作者

css pre如果同时运用了css的border-radius、 overflow两个属性且标签中内容太多时&comma;外部div滚动条在firefox下滚动时很卡

pre如果同时运用了css的border-radius. overflow两个属性且标签中内容太多时,外部div滚动条在firefox下滚动时很卡. 解决方法:去掉css中border-radius. ...

MyBatis 中传递多个参数的 4 种方式

方式 1 :封装成对象入参  #{对应实体类的属性} //UserMapper.java 接口 /** * 多条件查询:根据用户名称(模糊查询)和用户角色查询用户列表(参数:对象入参) * @para ...

Mybatis中传递多个参数的方法总结

一.单个参数: public List getXXBeanList(String xxCode);

request&period;getParameter&lpar;&rpar;及解决数据库中文乱码问题——实习第七天

今天老师让我们自己做一个小项目,我开始着手于实现这个小项目.途中遇到过几个小问题,在此做个小记录, 相信后期还是会借鉴的. 1,从前台传入数据给后台传入数据,并没有传入成功: 输出的为Null. 当然 ...

通过重写request&period;getParameter方法来解决中文乱码问题。

在原生servlet的商城项目中,BeanUtils.populate方法封装不上注册的参数. 已知BeanUtils.populate方法是封装不上date对象的,于是自定义了一个转换器用来封装Da ...

随机推荐

【扩展欧几里德】Vijos P1009 清帝之惑之康熙

题目链接: https://vijos.org/p/1009 题目大意: 两个人,一个在坐标x,每天走m,一个在坐标y,每天走n,坐标长L,问几天后碰面. 题目思路: [扩展欧几里德] 根据同余方程的 ...

myeclipse插件安装

MyEclipse插件安装 安装1: HELP->MuEclipse Configuration Center.切换到SoftWare选项卡. 点击 add site 打开对话框,在对话框中na ...

C&num;中DataTable转化JSON

[WebMethod(Description = "将一个DataTable对象转化成JSON")] public string GetJSON() { JavaScriptSer ...

C&sol;C&plus;&plus;将一个整型数组拼接成一个字符串

参考: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include #include int ma ...

关于Mobx中装饰器语法的环境配置

1.弹出项目配置 npm run eject 此处注意,若弹出项目配置失败,请先执行以下两行代码(若没有安装git则请跳过,本人是在安装git的情况下解决问题的) 1.git add . 2.git ...

我的IT之路2013(一)

一眨眼又到了写总结的时候了.废话不多说了,直接切入正题. 春节过后 从春节前开始大概半个月的时间就开始在TKY做物资管理项目,中间穿插了两个考试和J2EE的学习:结束TKY工作后继续深入学习J2EE, ...

去掉WIN7 桌面图标的小箭头

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons&quot ...

Linux基本操作命令及作用

文件和目录操作命令 命令 作用 cd change directory,切换目录 cp copy,其功能为复制文件或目录 find 用于查找目录或文件 mv move ,移动或重命名文件或目录 pwd ...

bzoj 2653 二分答案&plus;可持久化线段树

首先离散化,然后我们知道如果对于一个询问的区间[l1,r1],[l2,r2],我们二分到一个答案x,将[l1,r2]区间中的元素大于等于x的设为1,其余的设为-1,那么如果[l1,r1]的最大右区间和 ...

linux CentOS6&period;5 yum安装mysql 5&period;6(转载&amp&semi;删改)

按:下面文章经过我一路测试没有问题,是篇好文,在此感谢作者 别踩我袈裟  .另因原文有些啰嗦,我自己有所删改,并尾后增加了一大段. 出处:https://www.cnblogs.com/renjido ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值