在java开发中,我们往往会需要从一个页面跳转到另外一个页面,除了直接挂链接外,主要还有转发和重定向,这两个跳转在jsp中经常使用,那他们有什么区别呢?以下做简单介绍。
工具/原料
java
方法/步骤
2
在Servlet对象service方法中,对request进行处理,然后开始转发,此时调用request.getRequestDispatcher(url).forward(request,response)方法,转发到路径定义的servlet
3
servlet2对数据进行处理,返回客户端响应
4
重定向,除了用在同一应用中跳转,也可以用在不同应用间访问。同理,在客户端发起请求后,此时servlet1接收请求,调用response.sendRedirect(url),此时是用的response对象的方法,因此会首先返回客户端,此时返回的是代表要重新访问的状态码302。
5
客户端接收到302状态码,按照传递的url重新再发起请求。
6
此时请求到servlet2资源,servlet2处理返回给客户端。
7
总结:1.转发是一个请求,而重定向则是两次请求;2.转发时地址栏不发生变化,而重定向会发生变化;3.转发一般只发生在相同的应用中,而重定向到另外一个应用中进行访问。
注意事项
重定向传参,可以直接用get请求方式,直接在url后拼接参数
上一篇:java中继承使用注意问题