JSP页面的五种跳转方法.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JSP页面的五种跳转方法.pdf

1. RequestDispatcher.forward() 是在服务器端起作用,当使用forward()时,Servlet engine 传递HTTP 请求从当前的Servlet or JSP 到另外一个Servlet,JSP 或普通HTML 文件,也即 你的form 提交至a.jsp,在a.jsp 用到了forward()重定向至b.jsp,此时form 提交的所有信息在 b.jsp 都可以获得,参数自动传递. 但forward()无法重定向 至有frame 的jsp 文件,可以重定向至有frame 的html 文件,同时forward()无 法在后面带参数传递,比 如servlet?name=frank,这样不行,可以程序内通过 response.setAttribute(name,name)来传至下一个 页面。 重定向后浏览器地址栏URL 不变。 例:在servlet 中进行重定向 public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { response.setContentType(text/html; charset=gb2312); ServletContext sc = getServletContext(); RequestDispatcher rd = null; rd = sc.getRequestDispatcher(/index.jsp); //定向的页面 rd.forward(request, response); } 通常在servlet 中使用,不在jsp 中使用。 2. response.sendRedirect() 是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如 servlet?name=frank 传至下个页面,同时它可以重定向至不同 的主机 上,sendRedirect()可以重定向有frame.的jsp 文件. 重定向后在浏览器地址栏上会出现重定向页面的URL 例:在servlet 中重定向 public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { response.setContentType(text/html; charset=gb2312); response.sendRedirect(/index.jsp); } 由于response 是jsp 页面中的隐含对象,故在jsp 页面中可以用 response.sendRedirect()直接实现重定位。 注意: (1) 使用response.sendRedirect 时,前面不能有HTML 输出; 这并不是绝对的,不能有HTML 输出其实是指不能有HTML 被送到了浏览 器。事实上现在的server 都有cache 机制,一般在8K (我是说JSP SERVER), 这就意味着,除非你关闭了cache,或者你使用了out.flush()强制刷新,那么 在使用sendRedirect 之前, 有少量的HTML 输出也是允许的。 (2) response.sendRedirect之后,应该紧跟一句return。 我们已经知道response.sendRedirect 是通过浏览器来做转向的,所以 只有在页面处理完成后,才会有实际的动作。既然你已经要做转向了, 那么后 的输出还的意义呢?而且有可能会因为后面的输出导致转向失败。 比较: (1) Dispatcher.forward()是容器中控制权的转向,在客户端浏览器地 址栏中不会显示出转向后的地址; (2) response.sendRedirect()则是完全的跳转,浏览器将会得到跳转的 地址,并重新发送请求链接。这样,从浏览器

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档