您的位置:首页 > 理论基础 > 计算机网络

HttpServletRequest与HttpServletResponse处理中文问题

2016-04-01 11:01 706 查看
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: