servlet:请求转发与重定向

方式:

请求转发:

方式:request.getRequestDispacther("/test.jsp").forword(request,response); 

过程分析:客户端发出一个请求reqeust到服务器,服务器找到相应的Servlet处理数据,然后调用

request.getRequestDispacther("/test.jsp").forword(request,response); 

从字面上也可以理解:带着request,response向test.jsp前进。(完全自己意淫的,不要当真...)

请求和响应都被送到另一个Servlet或者jsp(特殊的Servlet)中。这样整个过程中,只有一个请求、一个响应,所有 Servlet和JSP都共享它俩(好可怜..偷笑),所以所有的Servlet和Jsp都可以从request中获取请求参数。


重定向:

方式:response.sendRedirect("test.jsp");

过程分析:客户端发出一个请求reqeust到服务器,服务器找到相应的Servlet处理数据,到这里都是一样一样的。然后调用

response.sendRedirect("test.jsp");

从字面上也可以理解:返回客户端一个叫test.jsp的页面。(不要当真...)

注意,这个方法是response的方法哦,这个时候它就已经给客户端响应了,这一次的请求、响应过程已经结束了!

但是呢,临了的时候它还告诉客户端,你要去test.jsp哈(死了都不老实,难怪活不过两集敲打

于是乎客户端又向服务器发出一次去test.jsp的请求,根据http(s)穿上裤子就翻脸的尿性,下一次请求和上一次请求是毛关系都没有的,所以本次请求到test.jsp页面,是不会再获取上一次request中的参数的。


从安全性上来说 ,显然 请求转发更安全,因为你不知道真正处理数据是哪个 Servlet。

而重定向更遵循”所见即所得“,也就是你所请求的资源,就是url显示的,这样不仅不安全,也限制了服务器端的灵活性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值