重定向
(1)什么是重定向?web服务器发送一个302状态码及一个Location消息头(该消息头的值是一个地址,一般称之为重定向地址)给浏览器,浏览器收到之后,会立即向重定向地址发请求。
简单理解为:服务器通知浏览器向一个新地址发请求。
(2)如何重定向?
response.sendRedirct(String url);//url是重定向地址。
如下是重定向发生时,服务器给浏览器的响应消息头
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Location: http://localhost:8080/web03/list
Content-Type: text/html;charset=utf-8
Content-Length: 0
Date: Fri, 06 Dec 2013 03:02:46 GMT</span>
(3)需要注意的问题
1)重定向之前,不能够调用out.close()。(因为这句话会让服务器生成一个响应数据包给浏览器,而重定向也会生成,同时执行会造成冲突)
2)重定向之前,web服务器会先清空response对象上缓存的数据。
(4)特点
1)重定向地址是任意的。
2)重定向之后,浏览器地址栏的地址会变成重定向地址。
转发和重定向区别
转发:
a)地址不变
b)一次请求
c)当请求一个组件A,A执行完之后,没结束,需要调用另一个组件B才能结束请求。
重定向:
a)地址变
b)2次请求
c)当请求一个组件A,A执行完之后,请求结束,通知系统,自动做下一个请求B。
如下图所示:
如何将中文插入数据库
step1,应用程序能够正确处理编码问题。
a.静态页面(HTML)
<meta http-equiv="content-type" content="text/html;charset=utf-8">
b.servlet要添加
request.setCharacterEncoding("utf-8");
要保证表单是post方式来提交。
step2,要保证数据库设置了正确的字符集。
比如
create database jsd1309db default character set utf8;
step3, jdbc驱动能够正确地进行编码和解码
编码: 将中文插入数据库时。
解码: 查询数据库。
注意,某些mysql的jdbc驱动不能够正确进行编码和解码(默认情况下,会使用iso-8859-1去编码或者解码),对于mysql的jdbc驱动,可以设置如下:
jdbc:mysql://localhost:3306/jsd1309db?useUnicode=true&characterEncoding=utf8。
其作用是告诉jdbc驱动使用utf8进行编码和解码。(Java程序在内存中以Unicode编码形式存在,这里将Unicode变成utf-8编码)
转载请注明出处:
http://blog.csdn.net/daijin888888/article/details/51082876