转发和重定向,servlet向jsp传值
这个问题也困扰了我很久,现在稍微总结一下吧。
首先说说重定向,在上一片jsp向servlet传值的时候我们已经用过重定向了,就是response对象调用sendRedirect(url)方法,比如我从index.jsp向TestServlet发送了一个请求,我们在TestServlet中写了response.sendRedirect(url),index.jsp就会重新向url重新发送一个请求。是重新发送一个请求啊。也就是说在这一次调用中,我门的index.jsp发出了2次请求。第二次请求有点像<a href="url">第二次请求</a>的感觉。我就是这么理解的。
而且重定向只能传String类型的参数(这个很关键)。
那么什么是重定向呢?
先看一下下面这个图片
转发就是上图中A和B使用同一个请求,只是A将请求转发给了B。
下面我门来看一下代码
首先我们在index.jsp中写如下代码:
然后修改我们的servlet,
再看index1.jsp的代码
这样一个简单的转发就完成了!!
下面我们看一下使用转发传递对象
转发只能在我们自己的项目中来回传递参数,而不能向外面的地址转发,例如把信息转发到百度或者其他的网站,但是重定向就可以。这个是很重要的区别啊!!
修改我们的servlet
再修改index1.jsp
最后我们看一下结果
这样我们就能在前台做很多我们想要做的信息了。