分两种情况介绍
注:首先,各位得对一次 请求/响应 的流程有基本认识,即:浏览器发出请求--》服务器接收并处理请求--》将html形式的页面返回(响应)给浏览器,一次 请求/响应 完毕!
静态页面(html):
保存文件时的编码选项(默认为ANSI,中文操作系统ANSI即为GBK)必须得与html页面中的content-Type(即在meta标签中配置的http-equiv="content-Type")中的配置的码一致,访问此页面时才不会出现乱码。(若不显示定义meta标签,则默认是meta标签中给出的是系统ANSI编码,中文操作系统是GBK)
<meta http-equiv="content-Type" content="text/html;charset=字符编码">
原因:web服务器接收到静态请求后(如对html页面的请求),web服务器仅仅是从目录结构中搜索到它,并将它以流的形式返回,而它的编码类型在保存文件时已经确定了,而上面的meta标签就是告诉浏览器以何种字符编码去解码,所以保存文件时的编码选项必须得与html页面中的content- Type中的配置的字符编码一致。
动态页面(jsp):
保存文件时的编码选项必须与jsp页面中的pageEncoding属性中配置的编码一致(或者在没有pageEncoding属性时与contenType属性中配置的编码一致,两者的优先级是:pageEncoding>contentType),才不会出现乱码。
<%@page contentType="text/html;charset=字符编码" pageEncoding="字符编码"%>
原因:web容器会根据pageEncoding中的编码将jsp页面转换成servlet文件(若没有pageEncoding属性,则使用 contentType中的编码将jsp文件转换成servlet),其原理也就是以流的形式读jsp文件,所以保存jsp文件时的编码选项必须与 pageEncoding属性中配置的字符编码一致(或者在没有pageEncoding属性时与contenType属性中配置的编码一致)。而在 servlet中生成html文件时使用的是contentType中配置的编码将html页面以流的形式输出(若没有设置contentType中的charset则使用的是pageEncoding,此时,与之前不同,它们的优先级是contentType>pageEncoding),浏览器也会以contentType中的编码(或pageEncoding)来解码(之所以这么说是因为浏览器根据响应头来解码,而他们恰恰改变的是响应头)。所以contentType中的编码可以与jsp文件保存时的编码选项不同(因为在有pageEncoding属性的情况下,他们之间没有直接联系,但若没有pageEncoding属性则另当别论,原因上面已经说过)!
分享到:
相关推荐
在开发Web应用时,正确设置JSP页面的编码格式至关重要,因为这直接影响到网页内容的显示,特别是处理中文字符时。MyEclipse作为一款强大的Java EE集成开发环境,提供了便捷的方式来配置JSP页面的编码。以下将详细...
在IT开发环境中,字符编码的正确设置至关重要,尤其是在使用集成开发环境(IDE)如MyEclipse时。MyEclipse字符编码的设置对于处理各种类型的文本文件,尤其是涉及到中文字符的文件,有着决定性的影响。本篇文章将...
标题 "JSP在Servlet中的几个编码的作用及原理" 指向的是Java Server Pages (JSP) 和 Servlet 技术中关于字符编码的关键概念。在Web开发中,尤其是在处理多语言用户输入时,正确的编码处理至关重要,以避免乱码问题。...
在使用MyEclipse进行开发时,正确的字符编码配置和外部编辑器的设定至关重要,同时,与服务器如Tomcat的集成也是提升开发效率的关键。本文将详细介绍如何在MyEclipse环境中进行这些配置。 首先,我们来看如何配置...
4. 设定 Java 文件编码:在"首选项"对话框中,选择"Java"->"Installed JREs",然后移除原来的 MyEclipse 自带的 Jdk6.0,从新配置 Jdk1.6.0_06。 更改 Eclipse 的默认字符集为 UTF-8 是为了使插件开发应用能有更好...
【JSP编码过滤】是Web开发中一个至关重要的主题,主要涉及到如何正确处理用户输入的字符编码,以防止乱码问题并确保数据安全。在JavaServer Pages (JSP) 中,编码过滤通常是为了确保请求参数、响应内容以及静态资源...
1. JSP文件的字符编码:JSP文件的编码会影响其中的文本内容。 2. 请求参数来源页面的字符编码:源页面的编码会影响链接中的中文字符如何编码。 3. 浏览器设置:例如,IE的“总以UTF-8方式发送URL地址”选项。 4. ...
在这个文件中,你可以设定JSP的默认编码、错误页面、过滤器等。例如,添加一个字符编码过滤器可以确保所有请求和响应都使用UTF-8编码: ```xml <filter-name>characterEncodingFilter</filter-name> ...
- **数据库编码**:如果使用了数据库,检查数据库连接字符串中的字符集编码是否与JSP页面和Apache服务器设置相匹配。 #### 四、高级调试技巧 在处理复杂的编码问题时,可以考虑以下进阶策略: - **使用UTF-8编码*...
13. 设置响应编码:避免乱码通常使用`response.setCharacterEncoding()`方法(B选项)来设定响应的字符编码。 14. JDBC库导入:在JSP中使用JDBC访问数据库,需要导入SQL相关的类库,正确的导入语句是`*" %>` 这些...
7. **存储验证码值**:为了验证用户输入,需要将生成的验证码字符串安全地存储在一个会话(session)或Cookie中,供后续页面提交时比对。 在JSP中,你可以创建一个名为`captcha.jsp`的文件,其中包含上述逻辑。由于...
IDE(如Eclipse、IntelliJ IDEA)一般都有设置文件编码的选项,确保其与项目编码一致,避免在编辑和保存文件时引入乱码。 5. **数据库编码** 数据库表字段的编码也需要与应用程序的编码匹配。例如,如果应用使用...
charset=UTF-8" %>`来设置页面编码,或者在Java代码中使用`request.setCharacterEncoding("UTF-8")`来设定请求的字符编码。 - **Struts**:在Struts框架中,解决乱码通常需要使用过滤器。可以创建一个自定义过滤器...
在`window->preferences->general->Content Types`中,你可以选择不同类型的文件并设定它们的默认编码,例如UTF-8,以确保文件在打开和保存时保持正确的字符显示。 其次,编辑器的字体和大小直接影响到编程体验。...
1. JSP Page指令:`<% page %>`指令用于定义JSP页面的全局属性,例如导入包、设定字符编码等。可以在一个页面中使用多个,每个指令作用于整个页面,且同一属性只应出现一次。为了可读性,最好置于文件开头,但这不是...
在web.xml中配置过滤器,并指定字符编码,例如: ```xml <filter-name>CharacterEncodingFilter</filter-name> <filter-class>javax.servlet.jsp.jstl.fmt.CharsetSupportFilter</filter-class> <param-name>...
13. **设置字符编码**:为了避免乱码,通常使用`response.setCharacterEncoding("charset")`来设定响应的字符编码。 14. **JDBC导入**:在JSP中,通过`*" %>`导入JDBC相关的类库,以进行数据库操作。 15. **JDBC...
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节...保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥...
2. **配置Web项目**:确保项目配置正确,包括字符编码、Servlet容器等。 3. **创建JSP页面**:在项目中创建一个新的JSP页面,按照上面的示例代码引入FCKeditor并创建实例。 4. **运行测试**:在MyEclipse中启动内置...
此外,Web相关的文件如JSP也需要设置为UTF-8编码。对于Maven的pom.xml文件,同样需要设置编码为UTF-8。 创建Spring MVC Web项目,通过STS的“文件”>“新建”>“Spring Project”,选择Spring MVC模板,输入项目...