`

页面跳转与请求转发

阅读更多

1、response.sendRedirect(url)

是指请求重定向,原来页面的参数在这里是得不到的,即用request.getParameter("param")返回的是null

2、forward请求转发,指将原页面的request,response对象传入新的页面,因此这新旧页面拥有相同的 request,response对象。这样request.getParameter("param")就可以得到相应的值

3、区分ServletContext.getRequestDispatcher与 ServletRequest.getRequestDispatcher

ServletContext.getRequestDispatcher 路径必须是相对上下文的绝对路径
ServletRequest.getRequestDispatcher 可以是相对也可以是绝对

4、注意的一点是:使用forward转发后在浏览器上看到的地址栏显示的是转发前的还不是转发后的。如由test.jsp向good.jsp转发了,那么地址栏显示的是test.jsp.这是因为forward是在服务器端进行的,浏览器根本不知道,而重定向是在客户端进行的,所以使用response.sentRedirect("red.jsp")会直接定向到red.jsp。由此想到index.jsp如果请求的是servlet那么在servlet中进行forawrd转发到另一个red.jsp页面,但当查看结果时,在地址栏显示的将只是servlet的名称而不是red.jsp,如果你想知道最终看到的页面的名称那只有查代码了。

reference it:

  1. 服务器端进行转向的4种方法:
  2. 1.ServletContext的getRequestDispatcher()
  3. 2.ServletContext的getNamedDispatcher()
  4. 3.ServletRequest的getRequestDispatcher()
  5. 4.ServletResponse的sendRedirect()进行转向。
  6. 1.2.3=>forward()4.sendRedirect()
  7. 使用forward方法,因为这些这样比较高效。只有在forward方法不能使用时(比如要转向到一个非本web应用),再使用ServletResponse的sendRedirect()方法。
  8. <jsp:fordward>与sendRedirect方法的比较
  9. 虽然<jsp:fordward>与sendRedirect方法,都可以将浏览器浏览的网页,重导至另一个网页,但是两者在原理上是不太相同。
  10. a.<jsp:fordward>:动作是利用伺服端,将资料输出至缓冲区的机制,在前一个网页尚未输出到客户端前,取消资料的输出,然后输出另一个网页的资料,达到重导浏览器的效果。
  11. 优点:两网页间可以分享request对象内的变量。
  12. b.sendRedirect:动作是透过HTTP协议的Header,对浏览器下达重导指令,因此,不牵涉到服务器端缓冲区的问题。
  13. 不过由于sendRedirect方法作用于客户端,所以重导前后网页无法分享存在于request对象内的变量。
  14. Solution:response.sendRedirect(“sendRedirect.htm?name=sparkwu&E-Mail=spark.wu@cobra-tech.com”)

参考链接:http://www.family168.com/tutorial/jsp/html/jsp-ch-03.html

分享到:
评论

相关推荐

    0617请求转发和请求跳转,处理模型数据.zip

    首先,我们要明白请求转发和请求跳转之间的基本区别: 1. 请求转发: 请求转发是在服务器端内部完成的操作。当一个请求到达控制器方法后,如果需要将处理逻辑转移到其他控制器或同一个控制器的另一个方法,就会使用...

    请求转发与重定向

    ### 请求转发与重定向 #### 一、概念介绍 在Web开发中,**请求转发**与**重定向**是两种非常重要的控制流程技术,它们都用于实现页面跳转的功能,但其工作原理和应用场景有所不同。 #### 二、请求转发 ##### 1. ...

    nginx页面跳转新方式

    在Web开发与运维领域,页面跳转是一项常见的需求。传统的页面跳转方法通常采用`rewrite`规则,但随着技术的发展,出现了一种新的跳转方式——通过`refresh`进行跳转。这种方式相比传统方法更为彻底且更安全快捷,被...

    servlet请求转发、重定向、包含

    Servlet请求转发、重定向和包含是Servlet中处理客户端请求的重要技术,它们都涉及到如何有效地管理用户请求和页面跳转,但各自有不同的特性和应用场景。 1. **请求转发(Request Forward)** - 请求转发是在服务器...

    请求转发与重定向详解代码

    请求转发与重定向有以下显著区别: 1. **客户端行为**:请求转发对客户端透明,客户端并不知道请求被转发了;而重定向则是客户端收到服务器的响应后,自己发起新的请求。 2. **URL显示**:转发后,浏览器地址栏的...

    (代码)SpringMVC第6讲:请求转发和重定向

    在Spring MVC框架中,请求转发和重定向是两种常见的页面跳转方式,它们在处理用户请求和构建应用程序的流程控制中扮演着重要角色。本文将深入探讨这两种技术,并结合实际的代码示例来阐述其工作原理和使用场景。 ...

    直接请求转发(Forward)和间接请求转发(Redirect)两种区别.docx

    主要分为直接请求转发(Forward)和间接请求转发(Redirect)。这两种转发方式在处理请求时有着显著的区别。 直接请求转发(Forward): 直接请求转发是服务器内部的资源调度,用户在浏览器中只会看到最初的请求...

    servlet实现的页面跳转

    页面跳转主要有两种方式:请求转发(Request Forwarding)和重定向(Redirecting)。 1. 请求转发(Request Forwarding): 请求转发发生在服务器端,使用`RequestDispatcher`的`forward()`方法。在这种情况下,...

    struts1.3页面跳转问题

    首先,页面跳转在Struts1.3中有两种主要方式:请求转发(Request Forwarding)和重定向(Redirecting)。请求转发是服务器内部操作,实际URL不会改变;而重定向则是让浏览器发起新的HTTP请求,URL会显示为新的地址。...

    java-学生信息管理系统源码jsp&sevlet.zip

    页面跳转与请求转发** 在用户操作后,系统可能需要根据结果进行页面跳转或请求转发。JSP中的`&lt;jsp:forward&gt;`标签和Servlet的`RequestDispatcher.forward()`方法可用于请求转发,而`Response.sendRedirect()`方法则...

    java servlet请求转发重定向

    ### Java Servlet 请求转发与重定向详解 #### 一、引言 在Java Web开发中,请求转发和重定向是两种非常重要的技术手段,用于控制页面之间的跳转逻辑。这两种技术虽然都能实现页面间的跳转,但其工作原理、应用场景...

    基于JavaWeb的学生信息管理系统

    页面跳转与请求转发** 在JavaWeb中,请求转发和重定向是两种常见的页面跳转方式。在这个系统中,例如,当用户成功登录后,可能会使用请求转发将用户引导至主界面;而在添加或修改学生信息后,可能使用重定向返回主...

    JSP页面跳转方法总结

    这是一种服务器端内部转发的方法,不会导致浏览器重新发起请求,而是由服务器端内部完成页面跳转。这种方式不会改变浏览器地址栏中的URL,也不会跳转到其他服务器上。 示例: ```jsp ``` ##### 4. 使用`...

    使用JavaWeb写的一个新闻系统

    页面跳转与请求转发** 在新闻系统中,用户点击新闻链接时,可能涉及请求转发或重定向。请求转发发生在服务器端,保持一次请求;重定向则是两次独立的HTTP请求,浏览器会重新发送请求。 **8. 安全性考虑** 新闻系统...

    JSP论坛源码(初级)

    7. **页面跳转与请求转发** - 使用`jsp:forward`、`response.sendRedirect()`等方式进行页面间的跳转和请求转发。 8. **错误处理与异常捕获** - 通常会包含错误页面设置,以及使用try-catch-finally结构来处理...

    S2 JSP超市库存查询系统

    8. 页面跳转与请求转发:在用户操作后,系统可能会使用请求转发或重定向来改变URL,实现页面间的跳转。 9. 国际化与本地化:为了满足不同地区用户的需求,系统可能支持多语言,使用资源包(properties文件)实现...

    案例-jsp+DAO实现留言管理程序

    6. 页面跳转与请求转发:在处理用户请求时,JSP和Servlet可能会使用`response.sendRedirect()`和`request.getRequestDispatcher().forward(request, response)`来实现页面间的跳转和请求转发。 7. 错误处理与异常...

    javaEE 网上在线销售系统(个人项目)

    9. **页面跳转与请求转发**:在JSP和Servlet之间,可能使用了请求转发和重定向技术,以实现不同页面间的跳转。请求转发在服务器内部完成,而重定向会让浏览器发起新的请求。 10. **文件上传与下载**:如果项目涉及...

    JSP实现-购物车(SQLserver版)

    页面跳转与请求转发 - **requestdispatcher接口**:用于请求转发,同一个请求可以被转发到不同的JSP页面处理。 - **response.sendRedirect()**:用于重定向,用户浏览器会发起新的请求,常用于登录验证后跳转至首页...

    使用JSP+servlet实现的车辆租借系统.zip

    7. 页面跳转与请求转发 在JSP中,可以使用response.sendRedirect()进行重定向,或者使用request.getRequestDispatcher()进行请求转发。在车辆租借系统中,根据业务逻辑,合理选择跳转方式,如用户登录成功后重定向...

Global site tag (gtag.js) - Google Analytics