get方式传递中文和接受中文参数

29 篇文章 0 订阅
10 篇文章 0 订阅

get方式传递中文和接受中文参数

import java.net.URLEncoder;
import java.net.URLDecoder;


加密

actx.getSession().put("subject",URLEncoder.encode(model.getPayName(),"utf-8"));

解密

new String(URLDecoder.decode(request.getParameter("body"),"utf-8"));


下面是web项目中的模拟,在地址栏请求方法1 ,方法1get方式请求方法2,并带有一个中文参数,方法2获取这个参数并打印在控制台


环境:Myeclipse


public void testT() throws IOException{
System.out.println("运行到这里了");
ActionContext ctx = ActionContext.getContext();
HttpServletResponse response = (HttpServletResponse) ctx.get(ServletActionContext.HTTP_RESPONSE);
HttpServletRequest request = (HttpServletRequest) ctx.get(ServletActionContext.HTTP_REQUEST);

String url1="http://localhost:8085/struts2go/test/testT2.action?payname="+URLEncoder.encode("中文","UTF-8");
System.out.println("url1:"+url1);
response.sendRedirect(url1);

}
public void testT2(){
ActionContext ctx = ActionContext.getContext();
HttpServletResponse response = (HttpServletResponse) ctx.get(ServletActionContext.HTTP_RESPONSE);
HttpServletRequest request = (HttpServletRequest) ctx.get(ServletActionContext.HTTP_REQUEST);

try {//URLDecoder.decode
System.out.println(request.getParameter("payname"));                                                  //失败的
System.out.println(URLDecoder.decode(request.getParameter("payname"),"UTF-8"));   //失败的
//java.net.URLDecoder
System.out.println(java.net.URLDecoder.decode(request.getParameter("payname"),"UTF-8"));   //失败的
String name = new String(request.getParameter("payname").getBytes("iso8859-1"),"utf-8");      //成功的
System.out.println(name);


} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值