【转】JSP/Servlet中的编码
首先,说说JSP/Servlet中的几个编码的作用。
在JSP/Servlet中主要有以下几个地方可以设置编 码,pageEncoding="UTF-8"、contentType="text/html;charset=UTF-8"、request.setCharacterEncoding("UTF-8")和 response.setCharacterEncoding("UTF-8"),其中前两个只能用于JSP中,而后两个可以用于JSP和Servlet 中。
1、pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码。
众所周知,JSP在服务 器上是要先被编译成Servlet的。pageEncoding="UTF-8"的作用就是告诉JSP编译器在将JSP文件编译成Servlet时使用的 编码。通常,在JSP内部定义的字符串(直接在JSP中定义,而不是从浏览器提交的数据)出现乱码时,很多都是由于该参数设置错误引起的。例如,你的 JSP文件是以GBK为编码保存的,而在JSP中却指定pageEncoding="UTF-8",就会引起JSP内部定义的字符串为乱码。
另外,该参数还有一个功能,就是在JSP中不指定contentType参数,也不使用response.setCharacterEncoding方法时,指定对服务器响应进行重新编码的编码。
2、contentType="text/html;charset=UTF-8"的作用是指定对服务器响应进行重新编码的编码。
在不使用response.setCharacterEncoding方法时,用该参数指定对服务器响应进行重新编码的编码。
3、request.setCharacterEncoding("UTF-8")的作用是设置对客户端请求进行重新编码的编码。
该方法用来指定对浏览器发送来的数据进行重新编码(或者称为解码)时,使用的编码。
4、response.setCharacterEncoding("UTF-8")的作用是指定对服务器响应进行重新编码的编码。
服务器在将数据发送到浏览器前,对数据进行重新编码时,使用的就是该编码。
其次,要说一说浏览器是怎么样对接收和发送的数据进行编码的
response.setCharacterEncoding("UTF- 8")的作用是指定对服务器响应进行重新编码的编码。同时,浏览器也是根据这个参数来对其接收到的数据进行重新编码(或者称为解码)。所以在无论你在 JSP中设置response.setCharacterEncoding("UTF-8")或者 response.setCharacterEncoding("GBK"),
相关文档:
package com.pan.encod;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class EncodFilter impl ......
在声明Jsp变量时,变量的数据类型可以是Java语言允许的任何数据类型
1.在标记符<%! %>之间声明的变量是全局变量,这些变量是被所有用户共享的,任何一个用户对此变量的操作都会影响到其他用户对它
的使用;因为全局变量的内存空间是直到服务器关闭后才释放的
2.在标记符<%%>之间声明的变 ......
request对象是javax.servlet.HttpServletRequest类的一个子类对象,当客户端请求一个Jsp页面是,Jsp容器会将客户端的请求信息包装在这个对象中;该对象中的常用方法如下:
getParameter(String name):以字符串的形式返回客户端传来的某一个请求参数的值,参数名由name指定
getParameterNames() ......
Cookie对象是由Web服务器产生后保存在浏览器中的信息,它可以用来保存一些小量的信息在浏览器中;该对象不属于Jsp的内置对象,它需要构造才能使用
1. 构造:
Cookie cookie对象名=new Cookie(cookie变量名,cookie中所存储的对象)
2. cookie的写入与读取
&nbs ......
jsp内置对象
定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量
JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):
内置对象
代表内容
范围
request
触发服务调用的请求
request
response
对请求的应答
page
session
为请求的客户创建的sessio ......