java web 学习笔记 编码问题总结
2014-07-21 01:01
543 查看
java web 学习笔记 编码问题总结
1.非form表单中提交的中文参数---------------------------传递给Servlet服务器时,默认以iso-8859-1解码。所以要用iso-8859-1编码,在以utf-8编码
代码示例;
Post提交时,
Form 表单中以Get提交(以上代码已经不起作用)浏览器默认在地址框中用iso-8859-1解码
具体处理方式如下:
解决方式:
过滤器 -----全站中文乱码的解决
java web 学习笔记 编码问题总结
1.非form表单中提交的中文参数---------------------------传递给Servlet服务器时,默认以iso-8859-1解码。所以要用iso-8859-1编码,在以utf-8编码
代码示例;
String username = request.getParameter("username"); //将jsp页面用UTF-8中文文本,在服务器端默认用ISO-8859-1解码接收,然后在服务器编码用iso-8859-1编码,然后用utf-8编码解码返回。 username = new String(username.getBytes("ISO-8859-1"),"UTF-8"); From表单中传递给Servlet服务器时,如果有中文。 |
request.setCharacterEncoding(“utf-8”); response.setContentType("text/html;charset=utf-8"); 如上语句有两个功能,一是:告诉服务器用utf-8编码中文。二是告诉浏览器默认用utf-8接收中文。 |
具体处理方式如下:
解决方式:
String name = request.getParameter(“name”); Name = new String(“iso-8859-1”,”utf-8”);解决 |
package com.itheima.filter; import java.io.IOException; import java.io.UnsupportedEncodingException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequestWrapper; import javax.servlet.http.HttpServletResponse; public class SetAllCharacterEncodingFilter implements Filter { FilterConfig filterconfig; public void init(FilterConfig filterconfig) throws ServletException { this.filterconfig = filterconfig; } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request; HttpServletResponse response; try { request = (HttpServletRequest) req; response = (HttpServletResponse) resp; } catch (ClassCastException e) { throw new ServletException("non-HTTP request or response"); } String value = filterconfig.getInitParameter("encoding"); if(value==null) { value = "UTF-8"; } request.setCharacterEncoding(value);//POST请求参数中文 response.setContentType("text/html;charset="+value); MyHttpServletRequest myrequest = new MyHttpServletRequest(request); chain.doFilter(myrequest, response); } public void destroy() { } } class MyHttpServletRequest extends HttpServletRequestWrapper { public MyHttpServletRequest(HttpServletRequest request) { super(request); } public String getParameter(String name) { String method = super.getMethod(); String value = super.getParameter(name); if("get".equalsIgnoreCase(method)) { try { value = new String(value.getBytes("ISO-8859-1"),"UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } return value; } } package com.itheima.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletDemo extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); response.getWriter().write("get方式提交表单:"+name); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); response.getWriter().write("post方式提交表单"+name); } } |
相关文章推荐
- java web 学习笔记 编码问题总结
- java web 学习总结之 Servlet/JSP 编码问题
- java web 学习总结之 Servlet/JSP 编码问题
- selenium 学习笔记 ---新手学习记录(5) 问题总结(java)
- selenium 学习笔记 ---新手学习记录(10) 问题总结(java)--poi--excel 操作
- 【Java学习笔记之十】Java中循环语句foreach使用总结及foreach写法失效的问题
- Python 编码解码的问题(学习笔记+总结思考)
- selenium 学习笔记 ---新手学习记录(6) 问题总结(java)
- 黑马程序员--Java学习笔记之Web开发—JavaScript常用触发事件总结
- 【软工学习笔记】【web开发环境】解决eclipse中web项目出现Project facet Java version 1.8 is not supported.的问题
- selenium 学习笔记 ---新手学习记录(3) 问题总结(java)
- selenium 学习笔记 ---新手学习记录(9) 问题总结(java)
- [原创]java WEB学习笔记35:java WEB 中关于绝对路径 和相对路径问题
- selenium 学习笔记 ---新手学习记录(7) 问题总结(java)
- Java+Mysql做web项目中关于编码问题的总结
- Java Web 学习笔记之六 DataOutputStream方法writeBytes(String s)方法中文乱码问题
- selenium 学习笔记 ---新手学习记录(8) 问题总结(java)
- selenium 学习笔记 ---新手学习记录(4) 问题总结(java)-autoit3脚本使用
- 字符集编码以及java乱码问题学习总结
- WEB开发中的JAVA字符编码经验总结