各位高手,请问“response.sendRedirect”和"request.getRequestDispatcher.forword(request,response)"的区别是什么啊?怎么区分啊?
解决方案 »
- spring struts hibernate整合问题 Caused by: org.springframework.beans.InvalidPropertyException: Invalid property 'studentManager' of
- 高手请进!在一个jsp中,用window.open("new.jsp","new","")新打开一个窗口,如何获取父窗体的句柄(对象)呢?
- HelloWorld的webservice为什么报java.lang.ClassNotFoundException
- session
- 关于lucene断点续索引和增量索引的问题
- 一个非常奇怪的问题,Hibernate自动生成的语句少了用户名???
- 100台割草机割一块地需要200天,200台割草机割同一块地需要n天, 已知n < 100, 如果要设计一个系统,当输入n时,显示该草坪种的是什么草。
- 高分问题!TOMCAT可以实现HTTP的长连接吗?或者是TCP的长连接?
- 求教JCreator
- cmp 算是OR mapping 的实现吗?
- tomcat 上面最多能部署几个网站
- Hibernate性能问题
http://topic.csdn.net/u/20070525/13/c3cd6e2c-3c07-4f97-97c9-04f7051882b3.html
对于forward,他相当于你去问张三借钱,张三没有钱,然后张三问李四去借,张三借到了然后再给我.浏览器只知道我去问的张三借,张三具体怎么借的,浏览器是不知道的.所以浏览器只显示张三的地址
sendRedirect的意思是,我去问张三借钱,张三没有,他告诉你李四有,而且告诉你李四的地址,然后你去问李四去借.浏览器然后转到李四的地址.
能理解了么
跟姐姐学jsp,这里有很形象的描述
这个教程其他内容也挺适合新人看的
另外就是浏览器地址的区别
request.getRequestDispatcher.forword ——这叫转发重定向以后webserver简单的向请求客户端(就是浏览器)发回一个响应,这个响应更简单,就是告诉客户端浏览器:“别理我了、你找url去吧”。相当于客户端浏览器在地址栏重新输入一个url并回车。转发属于webserver内部机制,转发者和转发目的地是including包含的关系就是说转发以后request、response、session...都一样没有任何变化,相当于jsp页面上的标签:<jsp:include page="..."/>
转发是各个MVC框架常用的方式,转发的发生完全在webserver内部,客户端浏览器完全不知道。写了好多、累死了...
request.getRequestDispatcher.forword(request,response):直接在服务器上进行跳转