HttpServletRequest与HttpServletResponse处理中文问题

来源:互联网 发布:ubuntu下安装jdk rpm 编辑:程序博客网 时间:2024/05/29 12:43
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

//通知用户提交的数据的编码方式 charsetrequest.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);

0 0
原创粉丝点击