PageEncoding与charset的区别

来源:互联网 发布:图纸设计软件 编辑:程序博客网 时间:2024/04/28 22:47
 

1.PageEncoding与charset的区别:

(1)pageEncoding是jsp文件本身的编码contentType的charset是指服务器发送给客户端时的内容编码 JSP要经过两次的编码,第一阶段会用pageEncoding,第二阶段会用utf-8至utf-8,第三阶段就是由Tomcat出来的网页, 用的是contentType。

A、 pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码

B、contentType="text/html;charset=UTF-8"的作用是指定对服务器响应进行重新编码的编码。

    在不使用response.setCharacterEncoding方法时,用该参数指定对服务器响应进行重新编码的编     码。

C、request.setCharacterEncoding("UTF-8")的作用是设置对客户端请求进行重新编码的编码。

      该方法用来指定对浏览器发送来的数据进行重新编码(或者称为解码)时,使用的编码。

D、response.setCharacterEncoding("UTF-8")的作用是指定对服务器响应进行重新编码的编码。

     服务器在将数据发送到浏览器前,对数据进行重新编码时,使用的就是该编码。

对于发送数据,服务器按照response.setCharacterEncoding—contentType—pageEncoding的优先顺序,对要发送的数据进行编码。

对于接收数据,要分三种情况。一种是浏览器直接用URL提交的数据,另外两种是用表单的GET和POST方式提交的数据。  response.setCharacterEncoding("UTF- 8")的作用是指定对服务器响应进行重新编码的编码

(2)contentType的charset是指服务器发送给客户端时的内容编码 ,ContentType 属性指定响应的 HTTP 内容类型。如果未指定 ContentType,默认为 text/HTML。 字符编码方式的默认值是“ISO-8859-1”.ContentType属性指定了MIME类型和JSP页面回应时的字符编码方式。MIME类型的默认值是text/html; 字符编码方式的默认值是ISO-8859-1. MIME类型和字符编码方式由分号隔开pageEncoding的内容只是用于jsp输出时的编码,不会作为header发出去的.

2. RequestDispatcher.forward()方法和Response.sendRedirect()区别:

前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用RequestDispatcher.forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用Response.sendRequest()方法。