回顾第一篇博客,最近学了jsp:java server page , java服务器页面技术. 在服务器运行jsp,把html返回给浏览器页面,优势jsp可以写java代码。
然而,http协议是一种无状态的协议,浏览器断开与服务器的请求后再请求时不会有浏览器客户端的信息。通过jsp的重定向和转发可以解决http的无状态问题。
首先对前天晚上自己回答不出这个问题作检讨。正题:
重定向:
response.sendRedirect("地址");
a. 页面地址显示最终页面
b. 不可向后传递参数
c. 跳到外部站点
服务器转发:
request.getRequestDispatcher("地址").forward(request, response);
a. 页面地址显示请求页面
b. 可以向后传递参数
c. 不可以跳到外部站点
造成区别的原因以及对这两者进行区别是,重定向发出两次请求, 转发只发一次请求。
打个简单的比方:我去XX部门办事,到了跟接待的说我要找XXX。如果接待的说我要找的人在XXX地点,自己去找,这就是重定向,我可以自己跳到任何位置,包括其他部门即外部站点。如果接待的人很好,说你要说什么我给你带话到那个人,这就是服务器转发,可以把我传达的信息一直保留,即参数可以继续往后传递。
有了这个简单的例子,妈妈再也不用担心我又把这两者搞混了。另外有个题外话,在学习方法上,应该把这些对象的单词和中文意思对应上,response和request,你还傻傻分不清楚吗?