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

        最近因为写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中,不能用服务器端跳转,那样刷新就会一直处理信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值