首页 > 代码库 > Jsp 四种跳转方式

Jsp 四种跳转方式

四种跳转方式
request.getRequestDispacher().forward()跳转:
(1)服务器端跳转。
(2)执行后立即跳转。
<jsp:forward>跳转:
(1)实际上是对上面 forward 方法的封装,属于服务器端跳转,跳转之后地址栏不改变。
(2)执行到后立刻跳转。跳转之前的语句会执行,跳转之后的语句将不会执行。如果在 JSP
中使用了 JDBC 的话,必须在跳转之前进行数据库的关闭,否则数据库将无法关闭。

response.sendRedirect()跳转:
(1)又叫重定向,属于客户端跳转,跳转之后地址栏改变,不传递 request 属性。
(2)在所有语句执行完后才完成跳转操作。
超链接跳转:
(1)<a href=http://www.mamicode.com/"chkbox.html">点击这里
(2)属于客户端跳转
注:两大类跳转——服务器端跳转与客户端跳转区别

服务器端跳转是在服务器内部执行的,无论跳转多少次都是一次 request,地址栏看不到
变化。服务器跳转属于立即跳转,不会执行跳转后面的语句。
重定向,其实是两次 request, 第一次,客户端 request A,服务器响应,并 response 回来,
告诉浏览器,你应该去 B。这个时候 IE 可以看到地址变了。重定向可以访问自己 web 应用
以外的资源。在重定向的过程中,传输的信息会被丢失。
举例:
客户端跳转(重定向):你先去了 A 局,A 局的人说:“这个事情不归我们管,去 B局”,然
后,你就从 A 退了出来,自己乘车去了 B局。
服务器端跳转(转发):你先去了 A 局,A 局看了以后,知道这个事情其实应该 B局来管,
但是他没有把你退回来,而是让你坐一会儿,自己到后面办公室联系了 B的人,让他们办
好后,送了过来。
2、何时使用 getAttribute()和 getParameter()?
使用 getParameter()表示接收参数,参数来源有以下三种:
(1)表单提交
(2)地址重写
(3)通过<jsp:include>、<jsp:forward>传递而来的参数
前面有 setAttribute(),则使用 getAttribute()。getParameter()无法接收 setAttribute()传递来的参
数。
3、解决乱码方式
(1)Page 指令中的 charset 和 pageEncoding 是设置的当前页面的使用字符集
(2)request.setCharacterEcoding()是处理客户端请求是统一编码
(3)sql 语句中加入:?useUnicode=true&setcharacterEncoding=utf-8 是把插入数据库的内容
转码

Jsp 四种跳转方式