您的位置:首页 > 编程语言 > Java开发

关于java,servlet中的服务器端跳转和客户端跳转

2015-05-04 10:39 225 查看
最近因为写jsp和servlet有点多,所以不可避免的遇到了服务端与客户端跳转的问题,但是由于原理不清楚,所以老是记不住。今天特意查了资料,一定要弄清楚。

一,什么是客户端跳转

客户端跳转也叫重定向,是使用HttpServletResponse对象中的sendRedirect()方法,这是一个响应对象的方法,调用了这个方法,就表明整个请求已经结束了,服务器开始向客户端返回执行的结果。

需要注意的是,此跳转只能传递session及application范围的属性,而无法传递request范围的属性。

下面画一张图来更好的理解客户端跳转:

由下图可以看到实际上客户端会发送两个请求,并且页面的路径会改变



二,什么是服务端跳转

服务端跳转也叫请求转发,是RequestDispatcher接口的forward()方法来实现的。而RequestDispatcher是通过调用HttpServletRequest对象的getRequestDispatcher()方法得到的。

注意,服务器端跳转页面的路径不会发生改变,所以可以接受session及request范围的属性。

图解:



三,总结

1,客户端跳转“/ ”代表服务器路径webapps ,即服务器根路径,服务器端跳转“/ ”代表站点根路径,即应用程序根路径;

2,尽量使用response.sendRedirect(“fail.jsp”) 而不去使用forward ,因为当服务器崩溃了,那么sendRedirect 则就会起很大的好处了。

3,在处理信息的servlet中,不能用服务器端跳转,那样刷新就会一直处理信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  方法