`
jetway
  • 浏览: 483969 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

使用JSP大约有下列三种跳转方式:

    博客分类:
  • java
阅读更多

JSP三种跳转方式比较
2006-05-11 23:31:36
 

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

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

一. 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=""></jsp:forward>

此语句前不允许有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)
 ...
跳转后浏览器地址栏不变,但是只能跳到当前主机下
此语句后面的语句执行完成后才会跳转

分享到:
评论

相关推荐

    Java Web程序设计任务驱动教程课后习题参考答案 - 蓝敏、周伟敏、杨茜

    * JSP 程序里有三种注释:HTML 注释、Java 注释、JSP 隐藏注释 服务器交互 * 使用 response 对象进行重定向的方法:sendRedirect * session 对象中用于设定指定名字的属性值,并且把它存储在 session 对象中的方法...

    投票程序 jsp实现

    在这个系统中,JSP作为服务器端脚本语言,负责处理用户请求并生成动态网页内容。以下是该投票程序的核心知识点和详细说明: 1. **JSP基础**: - JSP是Java技术的一部分,它允许开发人员在HTML页面中嵌入Java代码,...

    A标签触发onclick事件而不跳转的多种解决方法

    在web页面开发时,我们经常会遇到下列情况: 1.一个标签仅仅是要触发onclick行为; 2.表现上要有鼠标的pointer指针显示,或者其他类似a标签的视觉效果。 比如执行删除操作时,为了避免误操作,我们要弹出对话框让用户...

    JSP期末考试复习资料

    - **解析:** `&lt;jsp:forward&gt;` 动作用于将当前请求转发到另一个JSP页面或Servlet处理,这是一种服务器端的页面跳转方式。 **9. JSP的Java脚本程序片标记是如何来表示?** - **答案:** `&lt;% %&gt;` - **解析:** 在JSP中,...

    javaweb题库.docx

    解释:转发和重定向都是实现页面跳转的方式,但它们有所不同。转发是在服务器内部控制权的转移,地址栏中的 URL 不会改变,而重定向是在客户端发生的作用,通过请求新的地址实现页面转向。 8. 在一个 JavaBean 有一...

    2021-2022计算机二级等级考试试题及答案No.12083.docx

    - **题目**: 设有表示公司和员工及雇佣的三张表,员工可在多家公司兼职,其中公司 C(公司号,公司名,地址,注册资本,法人代表,员工数),员工 S(员工号,姓名,性别,年龄,学历),雇佣 E(公司号,员工号,...

    struts中ActionForm的validate方法使用小得

    Struts框架是Java Web开发中常用的MVC框架之一,它为开发者提供了一种结构化、易于维护的应用程序构建方式。在Struts中,ActionForm类是处理用户输入数据的核心组件,它封装了请求参数并负责业务逻辑验证。本文将...

    java面试题

    Java面试题涵盖了许多核心Java知识点,包括类加载机制、数据结构与集合、代码执行逻辑、DOM操作、设计模式以及Web开发中的JSP页面跳转等。以下是对这些知识点的详细解释: 1. **类加载机制**: - Java中有四种类型...

    JavaWeb开发人员面试题及答案

    - `DOM (Document Object Model)`: 一种基于内存的解析方式,适用于小文件,因为会将整个XML文档加载到内存中。 - `SAX (Simple API for XML)`: 一种基于事件的解析方式,适用于大文件,因为它不需要将整个文档...

    JAVA笔试题

    - **题目**: 如果某一JSP页面的表单中有几个复选框,name为“habit”,则该jsp提交后,如何获取用户选中复选框的值? - A. request.getAttribute("habit"); - B. request.getParameter("habit"); - C. request....

    轻量级java web MVC框架

    只需在执行完方法后,返回字符串:如return "login/main"就会跳转到指定视图,还可以在视图中用EL表单式访问modelview数据,例子如: SimpleModelView mv = new SimpleModelView("login/mainmv"); Map, String&gt; m = ...

Global site tag (gtag.js) - Google Analytics