Tomcat9 Get请求中含有汉字中文

网上的教程都是以Tomcat以前版本为例子的!

下面说的是::最新版的Tomcat  9.0.27

在Java Web项目中:
JSP客户端网页需要给Tomcat服务器传递Get请求(参数中有中文):

有俩中情况:
一是:<form  action=”/AServlet?name=张三你好”     method=”get”>   其余省略!

而是:在浏览器栏里直接输入:http://localhost:8080/day21_5/AServlet?name=张三你好   

 

由于最新版本的Tomcat严格遵循《 RFC 7230 and RFC 3986》这两个标准!

Get请求时,get的URL参数中不能有:中文,或者其他不被允许的字符!

但是我们为了方便,硬是要传递中文get参数!那么怎么解决乱码问题??

 

客户端JSP页面最好使用 UTF-8 编码格式!

Tomcat服务器上的后台代码的Java源文件,也要使用UTF-8格式!

而且已经知道了:最新版本的Tomcat的URI传输的格式也是UTF-8哦!

 

那么:在客户端的JSP页面中,把get请求参数中的中文汉字,使用URLEncoder.encode(“张三你好”,”UTF-8”);把这几个汉字强制编码成为UTF-8编码!

<%@ page   import="java.net.*" %>

<%

String   user="张三你好";

user = URLEncoder.encode(user,"UTF-8");

pageContext.setAttribute("user",user);

%>

<form  action=”/AServlet?name=${user}”     method=”get”>  

 

在Tomcat服务器后台的代码中:再使用URLDecoder.decode(“”,”UTF-8”);即可!

String  value=request.getParameter(user);

try {

value=URLDecoder.decode(value, "UTF-8");

} catch (UnsupportedEncodingException e) {

throw  new  RuntimeException(e);

}

System.out.println("乱码解决后用户名:" + value);

 

即可解决乱码问题!

Tomcat越来越方便啦!

注意:URLEncoder类与URLDecoder类都在java.net包中!

强烈建议:要在编程中使用英文!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值