response.sendRedirect()使用注意事项

原创 2004年09月21日 14:47:00
用response.sendRedirect做转向其实是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面,所以用sendRedirect时,浏览器的地址栏上可以看到地址的变化。
用<jsp:forward page=""/>则不同,它是直接在server做的,浏览器并不知道,也不和浏览器打交道,这从浏览器的地址并不变化可以看出。
所以使用response.sendRedirect时就需要注意以下两点:
1,在使用response.sendRedirect时,前面不能有HTML输出。
这并不是绝对的,不能有HTML输出其实是指不能有HTML被送到了浏览器。事实上现在的server都有cache机制,一般在8K(我是说JSP SERVER),这就意味着,除非你关闭了cache,或者你使用了out.flush()强制刷新,那么在使用sendRedirect之前,有少量的HTML输出也是允许的。
如果报错说,“一些信息已经被submitted”(原文忘了),那么,你就要注意看了,前面是不是有过多的HTML输出了。

2,在response.sendRedirect之后,应该紧跟一句return;
我们已经知道response.sendRedirect是通过浏览器来做转向的,所以只有在页面处理完成后,才会有实际的动作。既然你已经要做转向了,那么后的输出还有什么意义呢?而且有可能会因为后面的输出导致转向失败。

重定向(forward与sendRedirect)区别

quote from: http://kevinmro.blogchina.com/重定向(forward与sendRedirect)区别 最近有网友和我谈起他上次面试被别人问forward与send...
  • zhouysh
  • zhouysh
  • 2005年05月25日 11:17
  • 7499

JAVA 的服务器重定向:使用forward()方法和使用sendRedirect()方法的区别

1、使用forward()方法 RequestDispatcher rd = request.getRequestDispatcher("wel.jsp"); rd.forward(request...
  • JCY1009015337
  • JCY1009015337
  • 2016年12月18日 15:50
  • 1399

servlet中页面跳转response.sendRedirect() 详解

问题提出:sendRedirect两次提交,forword一次提交。既然sendRedirect会返回浏览器,为什么在跳转之前输出out.prinln()不起作用 分析:服务器在向客户端输出时,即o...
  • zhuoyuetec
  • zhuoyuetec
  • 2012年08月09日 13:54
  • 10837

response.sendRedirect所引发的问题及解决

在servlet跳转到 jsp 中,有时使用response.sendRedirect(request.getContextPath()+"/login.jsp"); 跳转到登录页面,却发现没有任何样...
  • qq_33665647
  • qq_33665647
  • 2016年12月08日 22:05
  • 1209

forward()和sendRedirect()的区别

forward()就是转发。sendRedirect就是重定向。两者最大的区别其实是,前者传输不会改变地址,不能在传输参数,只能在代码中设置参数;而后者是跳转到指定的url地址,会改变地址栏上的信息,...
  • baidu_16859039
  • baidu_16859039
  • 2015年10月17日 21:35
  • 876

forward与sendRedirect区别

最近有网友和我谈起他上次面试被别人问forward与sendRedirect没理解太清楚,搞得比较尴尬。现将自己对这个问题的体会写在下面。期望能对一些人有帮助。1.RequestDispatcher....
  • jljf_hh
  • jljf_hh
  • 2007年04月23日 16:44
  • 8332

Servlet中的重定向sendredirect方法

package com.study; import java.io.IOException; import java.io.PrintWriter; import javax.servl...
  • pangqiandou
  • pangqiandou
  • 2016年11月14日 19:30
  • 2126

forward与sendRedirect区别

SendRedirect Forward 不同的request 不同的对象,但是可以渠道上一个页面的内容 send后面的语句会继续执行,除非return Forward后面的语句不会继续发...
  • xuxurui007
  • xuxurui007
  • 2012年07月17日 16:38
  • 21130

让你明白response.sendRedirect()与request.getRequestDispatcher().forward()区别

JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是...
  • qinzhenhua100
  • qinzhenhua100
  • 2016年11月19日 10:06
  • 3085

jsp中重定向、请求分派中的绝对路径与相对路径!

服务器端的相对路径 、绝对路径 相对*.do,绝对/*.do; DD(web.xml)文件中的url-pattern只能绝对路径,即/*.do,根地址为应用目录。 中的路径一般写相对,即为DD文...
  • m1872216
  • m1872216
  • 2012年08月27日 20:33
  • 10757
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:response.sendRedirect()使用注意事项
举报原因:
原因补充:

(最多只允许输入30个字)