哪位高手可以帮小弟解释下JSP页面中,
request.getDispather().forward(),和response.sendRedirect()两个页面转向机制的原理和不同点??
刚做了一个BBS的Web项目,这两个方法搞得不点不太明白,谢谢指教!
request.getDispather().forward(),和response.sendRedirect()两个页面转向机制的原理和不同点??
刚做了一个BBS的Web项目,这两个方法搞得不点不太明白,谢谢指教!
解决方案 »
- EJB3.0 jar包无法部署到jboss中,求助!
- java.sql.SQLException: 关闭的连接
- 给推荐个好的项目管理软件呗!!!
- 问个Struts基础问题!
- 工作流中分配用户工作量问题
- eclipse的假死问题
- 为什么用“Query query=s.createQuery("select student.name from Student student")”,就会出现“java.lang.ClassCastException”类型
- log4j中將日志寫入到oracle數據庫中,提示sql錯誤:字符串不合法,請求幫助?
- 我的weblogic81是不是有问题啊?
- 栽ejb-jar.xml中部署的Ejb QL怎么和Home接口中声明的查询连接起来,必须以ejbSelect开头吗?
- Struts2+JFreeChart生成热点图的问题
- hibernate 一对一 查询问题
response.sendRedirect()是客户端的跳转,地址栏发生变化。
补充一点,request.getRequestDispather().forward()
可以用requset.getParameter或者requset.getAtrribute获得上一页面传递的参数。response.sendRedirect()则不行。
补充一点: request.getRequestDispather().forward() 是服务器端跳转,服务器把请求直接跳转,客户端不会再去发送请求;而response.sendRedirect()客户端再次发送请求,也就是相当于再浏览器地址栏里输入了另外一个地址,然后按了下回车一样。
request.getRequestDispather().forward(),是服务器端的跳转,地址栏无变化。 (转发)
response.sendRedirect()是客户端的跳转,地址栏发生变化。(重定向)
而response.sendRedirect();可以定位到web网页 如www.baidu.com,而前者不能
response.sendRedirect()是客户端的跳转,地址栏发生变化。
说的挺正确的
forward()呢是重新请求URL
sendredirect()呢是按逻辑进行请求 的 呵呵
会有作用域的问题!!!
response.sendRedirect()是客户端的跳转也叫两次跳转,相当于你在这请求发生后服务器会给客户端一个响应,客户端再次发送请求给服务器,然后服务器返回你所请求的资源,地址栏发生变化,而且此时你放在request里面的东西要丢失。
在转到的页面里还能还能接受到数据
比如request.getParameter();
从字面上理解 请求转发 就是在getDispather这个页面里也可以不做处理
也可以提交到getDispather转到的页面去做处理重定向 response.sendRedirect()
只是做了一个地址的切换