JSP页面编码问题

来源:百度知道 编辑:UC知道 时间:2024/05/11 16:30:10
<%@ page 里的pageEncoding和contentType及response.getCharacterEncoding()
response.getContentType()
request.getCharacterEncoding()
request.getContentType()都有什么联系和区别 最好能详细说下他们的传递机制及相互关系
欢迎大篇幅的复制(与此相关的)
我是想在MyEclipse里实现A页面提交给B页面中文信息 如果能有做好的发过给我更好
我说的传递是指他内部的传递

你问了这么多,概念其实就几个。
page指令:定义JSP页面的各种属性。
encoding:数据编码方式。
CharacterEncoding:字符集编码,一般在contentType头字段中有设置。
content-Type:HTTP协议实体头里面的字段,用于指出实体内容的MIME类型。
request: JSP隐式对象,HttpServletRequest类型的实例对象。
response:JSP隐式对象,HttpServletResponse类型的实例对象。
相应的get,set方法:获取/设置相应字段的值,一般返回一个String类型值。

他们之间的关系 :page指令的contentType属性用于设置响应正文的MIME类型和说明JSP文件中文本内容的字符集编码。
JSP引擎根据page指令的contentType属性翻译JSP源文件为servlet源文件,同时生成相应的调用ServletResponse.setContentType方法的语句。
contentType属性说明的JSP页面字符集编码只有在没有通过其他方式指定过字符集编码时才起作用。JSP规范建议不使用这个属性说明字符集编码,而是使用pageEncoding属性。

pageEncoding属性也是用于指定JSP源文件的字符集编码。如果设置了这个属性,contentType属性就不再具有说明JSP源文件字符集编码的作用了。另外,如果没有设置contentType属性,这个属性也可以让JSP引擎生成response.setContentType语句。

说了这么多可能有点乱,总结下,建议使用pageEncoding属性或在部署描述符(tomcat中的web.xml)中说明JSP源文件的字符集编码,最好用部署描述符,比较方便。用contenType属性设置响应正文的MIME类型。

至于乱码问题,主要是由翻译和传递过程中的字符集编码不一致引起的。比如JSP翻译成Servlet源文件的过程(这就是为什么要用page指令的那两个属性的主要原因)和从请求消息中获取请求参数的过程,最好是对这些过程有比较清晰的了解。
<