HttpServletRequest与HttpServletResponse处理中文问题

本文介绍了如何使用HttpServletResponse和HttpServletRequest处理HTTP请求与响应,包括设置字符编码、处理中文乱码问题以及通过字节流和字符流发送数据到客户端。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HttpServletResponse

   服务器对浏览器做出的响应,将需要发送给浏览器的所有数据全部存放在此对象。使用流操作,存放在指定的流中,数据将显示在浏览器中。

字节流  response.getOutputStream()

字符流  response.getWriter() ;

    二者不能同时存在。


long str = new Date().getTime() ;
ServletOutputStream out =  response.getOutputStream() ;
out.print(str);
out.close();


long str = new Date().getTime() ;
PrintWriter pw = response.getWriter() ;
pw.print(str);
pw.close();


处理中文

response.setContentType("text/html;charset=UTF-8");
//通知响应浏览器的字符编码 通知tomcat和浏览器 当前servlet发送的数据的编码方式
 String str = "中文" ;
//字节流
 ServletOutputStream out = response.getOutputStream() ;
 out.write(str.getBytes()); 
//GBK编码
 out.write(str.getBytes("UTF-8")); 
//UTF-8编码

//下载到本地的副本  服务器默认GBK解析
 out.close(); 
response.setContentType("text/html;charset=UTF-8");
String str = "中文" ;
PrintWriter pw = response.getWriter() ;
pw.write(str);
pw.close(); 


HttpServletRequest

浏览器向服务器的请求(浏览器数据发送给服务器时,数据存放的地方)    Get/Post

处理中文post  此时请求页面的编码方式为UTF-8

//通知用户提交的数据的编码方式 charset
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("username") ;
System.out.print(name); 


性别:
<input type="radio" name="sex" check="checked" value="0" />男
<input type="radio" name="sex" value="1" />女
爱好:
<input type="checkbox" name="love" value="0"/>打麻将
<input type="checkbox" name="love" value="1"/>吃饭
<input type="checkbox" name="love" value="2"/>睡觉
检讨:
<textarea name="error"></textarea>

request.getParameter("sex") ; 
//获取radio的值
request.getParameterValues("love") ; 
//获取checkbox的值


处理中文 Get方式

String str = request.getParameter("username") ;
//http协议传输
String realStr = new String(str.getytes("ISO-8859-1"),"UTF-8") ;

//获得所有的请求的元数据
String query = request.getQueryString() ;
String realStr = URLDecoder.decode(query,"UTF-8") ;
System.out.println(realStr);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值