读书人

跳转有关问题

发布时间: 2012-06-14 16:00:31 作者: rapoo

跳转问题
jsp中response.sendRedirect(""); 和<jsp:forword page=""/>两种跳转有什么区别?

[解决办法]
1 response.sendRedirect(""); 这个是重定向,客户端浏览器的地址会发生改变。客户端跟服务器交互(请求-响应)的次数不止一次。
2 <jsp:forword page=""/>这个应该是转发吧,转发客户端浏览器的地址栏不会发生变化,客户端跟服务器交互(请求-响应)的次数只有一次。

[解决办法]
SendredirectForward
是不同的request虽然是不同的对象,但是,可以取到上一个页面的内容
send后的语句会继续执行,除非returnforward后的语句不会继续发送给客户端
速度慢速度快
需要到客户端的往返,可以转到任何页面,服务器内部转换,
地址栏有变化地址栏没有变化
可以传参数,直接写在url后面可以传参数
/代表的是http://127.0.0.1/
<%response.sendRedirect("/test/ServletToJSP");%>
<form action="/test/ServletToJSP">
<a href="/test/ServletToJSP">test</a>/代表的是http://127.0.0.1/test
this.getServletContext().getRequestDispatcher ("/servlet_jsp/ServletUseJsp.jsp").forward(req, resp);
并且只能以/开头
常用常用
[解决办法]
Sendredirect
是不同的request
send后的语句会继续执行,除非return
速度慢
需要到客户端的往返,可以转到任何页面,
地址栏有变化
可以传参数,直接写在url后面
/代表的是http://127.0.0.1/
<%response.sendRedirect("/test/ServletToJSP");%>
<form action="/test/ServletToJSP">
<a href="/test/ServletToJSP">test</a>
常用




Forward
虽然是不同的对象,但是,可以取到上一个页面的内容
forward后的语句不会继续发送给客户端
速度快
服务器内部转换,
地址栏没有变化
可以传参数
/代表的是http://127.0.0.1/test
this.getServletContext().getRequestDispatcher ("/servlet_jsp/ServletUseJsp.jsp").forward(req, resp);
并且只能以/开头
常用
[解决办法]
反正就是一个转发一个重定向你自己看着办
[解决办法]
response.sendRedirect会丢失request中的数据会丢失。
forword 不会。

读书人网 >Java Web开发

热点推荐