JavaWeb解决Request和Response乱码问题

在JavaWeb中常会遇到乱码问题
这里就针对Request和Response记录几种解决方案

Request

  1. 采用GET方法的提交

Tomcat 9的版本对GET方式的提交已经解决了中文乱码问题,所以如果你使用的是Tomcat 9的版本可以直接把POST提交方式改为GET,就可以解决乱码了

  1. 在接收的Servlet中使用setCharacterEncoding()方法
    但是注意此方法仅对POST提交起作用,无论什么版本的Tomcat的POST方法均可。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	//设置请求正文中的字符编码
	request.setCharacterEncoding("UTF-8");
}	
  1. POST和GET提交乱码均能解决的推荐法
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//这里的name的字符编码是ISO8859-1
		String name = request.getParameter("name");
		//将name字符串按照原编码打散成为一个一个字节
		byte[] bytes = name.getBytes("ISO8859-1");
		//组装:将bytes字节数组按照指定字符编码编码进行组装
		name=new String(bytes,"UTF-8"); 
		
		String age = request.getParameter("age");
		System.out.println("name:"+name);
		System.out.println("age:"+age);
	}

Response

  1. setContentType()方法
    该方法设置响应的MIME类型(video/mp4、image/jpg等),以及该类型数据的字符编码,即响应的字符编码
response.setContentType("text/html;charset=utf-8");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值