JSP三种页面跳转方式的比较

youlintinghai

youlintinghai

2016-02-19 18:07

下面是个超简单的JSP三种页面跳转方式的比较教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

  使用JSP大约有下列三种跳转方式:
  1. response.sendRedirect();
  2. response.setHeader("Location","");
  3. jsp:forward page="" /

  经过试验得到下面的一些规则:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  一. response.sendRedirect()

  此语句前不允许有out.flush(),如果有,会有异常:
  java.lang.IllegalStateException: Can't sendRedirect() after data has committed to the client.
   at com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558)
  ...
  跳转后浏览器地址栏变化
  如果要跳到不同主机下,跳转后,此语句后面的语句会继续执行,如同新开了线程,但是对response的操作已经无意义了;
  如果要跳到相同主机下,此语句后面的语句执行完成后才会跳转;
  二. response.setHeader("Location","")

  此语句前不允许有out.flush(),如果有,页面不会跳转。
  跳转后浏览器地址栏变化
  此语句后面的语句执行完成后才会跳转
  三. jsp:forward page="" /

  此语句前不允许有out.flush(),如果有,会有异常:
  java.lang.IllegalStateException: forward() not allowed after buffer has committed.
   at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:134)
   at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:101)
   at com.caucho.jsp.PageContextImpl.forward(PageContextImpl.java:836)
   ...
  跳转后浏览器地址栏不变,但是只能跳到当前主机下
  此语句后面的语句执行完成后才会跳转
  

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)
展开更多 50%)
分享

猜你喜欢

JSP三种页面跳转方式的比较

Web开发
JSP三种页面跳转方式的比较

五种 JSP页面跳转方法详解

Web开发
五种 JSP页面跳转方法详解

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

三种常用分娩方式比较?

分娩方式 分娩
三种常用分娩方式比较?

JSP中实现页面跳转

Java JAVA基础
JSP中实现页面跳转

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

常见的三种分娩方式

分娩方式
常见的三种分娩方式

SQL Server教程:三种导入导出数据使用方式比较

MySQL mysql数据库
SQL Server教程:三种导入导出数据使用方式比较

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

将程序从托管扩展 C++ 迁移到 C++/CLI(1)

将程序从托管扩展 C++ 迁移到 C++/CLI(1)

JSP中文乱码问题解决方法小结

JSP中文乱码问题解决方法小结
下拉加载更多内容 ↓