编码:
编码:字符串变为字节;解码:字节变为字符串
服务器:一般是ISO8859-1编码[response.getWriter().print(“大家好”);服务器将“大家好”这个字符串编码为计算机能读取的字节码,采用的时ISO8859-1编码]
浏览器:一般是gbk解码[浏览器收到服务器的响应后将服务器编码的字节码解码为字符串显示在浏览器上。]
1. 请求编码
客户端发送的数据编码:由浏览器来决定:
1). 如果是在地址栏中直接给出url,那么一般都是默认为GBK,但这个可能不太大。
2). 如果是通过页面上的表单或超链接发出请求,那么由当前页面的编码来决定发送的参数的编码。
无论浏览器发送过来的是什么编码的数据,Tomcat都默认使用ISO-8859-1来编码
1). POST:可以使用request.setCharacterEncoding()方法来设置请求体数据的编码,因为POST请求参数在请求体中,所以是可以设置编码的。在使用request.getParameter()方法获取参数之前,先使用request.setCharacterEncoding()方法来设置编码即可。
2). GET:没有方法可以设置它,因为参数在url中。所以使用request.getParameter()获取到的数据一定是错误的使用了iso-8859-1解码的。可以再使用iso-8859-1把字符串转回到byte[],再重新使用正确的编码来解码即可。
String s = request.getParameter("s");//使用iso-8859-1错误的解码了
byte[] bytes = s.getBytes("iso-8859-1");//退回错误的编码,让字符串通过iso-8859-1返回到字节数据,即还原字节数据
s = new String(bytes, "utf-8");//重新使用正确的utf-8来解码。
响应乱码解决:
response.setCharacterEnconding(“utf-8”):设置服务器响应给浏览器的数据是以utf-8编码的。而不能通知浏览器以什么样的编码来解析响应的数据。
response.setHeader(“Content-Type”,”text/html;charset=utf-8”): content-Type它的作用是通知浏览器响应数据的mimeType类型,并通知浏览器响应数据的编码以及以什么样的编码来解析数据;
response.setContentType(“text/html;charset=utf-8”);【这两句作用相同】
Request:
请求乱码解决:
在浏览器输入数据时,浏览器会对输入的数据进行编码(utf-8)。
Request对象是由服务器创建的,服务器将浏览器传递的参数封装到request对象时会对浏览器编码的数据进行解码(iso8859-1)后然后再封装到request对象中。
请求参数乱码解决:
1)、先将浏览器编码的数据用服务器码表进行重新编码,然后再用服务器与浏览器对应的码表进行解码【因为tomcat8以下的都是默认的iso8859-1码解码的】。
String name = reuqest.getParameter(name);
Name = new String(name.getBytes(“iso8859-1”,”utf-8”));
2)、简洁写法:只对post请求有效
request.setCharacterEncoding(“utf-8”);
关于get/post请求参数格式:
Get请求的参数是在请求行中资源路径后:
/webContext/xxx?time=new Date()&password=11;
Post:请求参数是在请求正文中
userName=tom&password=111;
cookie中不允许有中文,如果要保存中文,需要用URL编码:
保存cookie:
String name = URLEncoder.encode("姓名", "UTF-8");
String value = URLEncoder.encode("张三", "UTF-8");
获取cookie:
String name = URLDecoder.decode(c.getName(), "UTF-8");
String value = URLDecoder.decode(c.getValue(), "UTF-8");
相关推荐
这个名为"javaweb520-JavaWeb-master.zip"的压缩包很可能包含了一个完整的JavaWeb项目实例,让我们来深入探讨JavaWeb开发的相关知识点。 1. **Servlet**:Servlet是JavaWeb开发的基础,它是一个Java类,用于扩展...
这个"javaweb-QQZONE-JavaWeb.zip"文件可能是一个项目压缩包,包含了开发一个基于JavaWeb的QQ空间克隆或者类似社交平台所需的所有资源。下面我们将深入探讨JavaWeb开发中的关键知识点。 1. **Servlet与JSP**: - *...
通过深入研究【信号与系统t-JavaWeb-mast开发笔记】,开发者可以将通信工程的理论知识融入到实际编程中,提升代码质量,优化系统性能,同时也能拓宽技术视野,提高问题解决能力。而Heart-First-JavaWeb-master- (35)...
过滤器可以拦截请求和响应,进行预处理或后处理,如字符编码转换。监听器监听特定的事件,如session的创建、销毁,实现特定功能。 7. **Apache Tomcat**:作为JavaWeb应用的服务器,Tomcat广泛用于部署和运行...
JavaWeb的编码问题-附件资源
【JavaWeb-Demo详解】 JavaWeb技术是Java平台上的一个重要组成部分,主要用于开发和构建Web应用程序。这个名为"javaweb-demo"的项目很可能是用来演示JavaWeb应用的基础架构和核心功能。下面,我们将深入探讨JavaWeb...
这个名为"javaweb-book-system"的项目,为我们提供了一个很好的学习和实践平台。 一、JavaWeb基础 JavaWeb是使用Java技术构建Web应用程序的框架,主要包括Servlet、JSP、JSTL、EL等组件。Servlet是Java服务器端...
本资源包"传智播客崔希凡JavaWeb-day10-java web之requestrespone-全部资料"涵盖了第十天课程的完整学习材料,帮助学生深化对HTTP请求与响应的理解。 1. **HTTP请求**:在Web应用中,用户通过浏览器发起HTTP请求来...
这些组件都是Java Web开发中的基础和核心部分,它们的组合在"javaweb-jar包.zip"中提供了一站式的解决方案,使得开发者可以快速搭建环境并进行开发工作,而无需关心各个库的版本管理和集成问题。通过使用这样的集合...
在JavaWeb开发中,页面编码过滤是一个至关重要的环节,它主要解决的是网页中字符编码不一致导致乱码的问题。在给定的标题“JavaWeb页面过滤器之编码过滤”和描述中,我们可以深入探讨JavaWeb中的编码过滤器,以及...
在JavaWeb开发中,编码问题是一个常见的痛点,尤其是在处理用户输入、页面展示或者数据库存储时。本项目"解决全站编码问题的javaWeb小项目"旨在提供一套完整的解决方案,确保在项目的各个层面都能正确处理字符编码,...
【JavaWeb-ch7-code.rar】这个压缩包文件的标题表明其包含了与JavaWeb相关的源代码,特别是第7章的内容。JavaWeb是Java技术在Web开发中的应用,它涵盖了Servlet、JSP、JavaBean等核心概念,是构建动态网站的重要工具...
- `page`指令:定义JSP页面的全局属性,如字符编码、导入的Java类等。 - `include`指令:静态包含另一个文件,与`jsp:include`动作标签不同。 - `taglib`指令:引入自定义标签库。 10. Servlet与JSP的关系: - ...
myFilterDemoWeb.zip JavaWeb-过滤器Filter学习(二)设置全站编码与设置页面缓存
### JavaWeb-Servlet、MySQL 实现用户增删改查 #### 概述 本文将详细介绍如何使用JavaWeb中的Servlet技术结合MySQL数据库实现用户的增删改查功能。此项目旨在为初学者提供一个基础示例,了解如何在JavaWeb环境中...
在JavaWeb项目的开发过程中,可能会遇到各种问题,比如: - **性能优化**:通过缓存机制、数据库查询优化等方式提高系统响应速度。 - **安全性考虑**:防止SQL注入、XSS攻击等常见的安全威胁。 - **异常处理**:合理...
根据提供的文件信息,我们可以推断出此文档与JavaWeb技术有关。尽管提供的内容较少,但仍然可以基于这些信息以及常见的JavaWeb技术要点来构建相关的知识点。 ### JavaWeb基础概念 JavaWeb是Java技术在Web开发领域...
在JavaWeb环境中,`HttpServletResponse`对象提供了两个主要的方法来处理编码问题: 1. `setCharacterEncoding(String charset)`:这个方法用于设置响应的字符编码。当你在服务器端创建输出内容时,调用这个方法...
JavaWeb开发技术-解决中文输出乱码问题 ...解决中文输出乱码问题是JavaWeb开发中一个非常重要的问题,需要正确地设置编码方式、处理中文字符的输入和输出,并注意统一的编码方式和浏览器的编码方式。