`
ihuashao
  • 浏览: 4720217 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

JSP面试题——forward与sendRedirect的区别

阅读更多

页面之间的跳转可以通过两种方式实现:forward和sendRedirect。

forward:可以在JSP页面中使用,可以在Servlet中实现。

在JSP页面中使用<jsp:forward page="目标文件"/>,例如要跳转到userlist.jsp,可以写:

<jsp:forward page="userlist.jsp"/>

在Servlet中使用RequestDispatcher的forward方法,要跳转到userlist.jsp,可以写:

RequestDispatcher rd = request.getRequestDispatcher("userlist.jsp");

rd.forward(request,response);

sendRedirect方式使用response对象的方法sendRedirect方法完成,代码如下:

response.sendRedirect("userist.jsp");

两者的区别如下:

1、请求次数不同,这是最本质的区别。在forward方式下,在执行当前JSP对象或者Servlet对象的过程中去调用目标文件对应的对象,相当于方法调用,把request和response对象作为参数传递到目标文件对应的对象,当前文件和目标文件的执行是在用户发送的一次请求中完成的。在redirect方式下,用于首先请求了当前文件,当前文件把目标文件的地址返回给了客户端,客户端再次发送请求,请求目标文件,实际上是发送了两次请求。

2、传值方式不同。在forward方式下,当前文件和目标文件属于同一次请求,共享request对象,所以可以使用request对象传值。在redirect方式下,当前文件和目标文件属于不同的请求,每次请求会单独创建request和response对象,这样就不能使用request对象来传值。在MVC模式下,通常在控制器中调用模型得到数据,然后保存到request中,然后forward到目标文件,目标文件从request中获取需要的信息。如果使用sendRedirect方式在控制器和视图之间传递信息,需要使用在目标文件之后加上“?名字=值”的方式传递。

3、客户端在地址栏中看到的地址不一样,对于forward,在地址栏中看到的是第1个文件的名字,对于sendRedirect,在地址栏中看到的是第2个文件的地址。有时候会影响目标文件中的相对路径,例如当前文件是aa文件夹中的a.jsp,目标文件是bb文件夹中的b.jsp,在b.jsp中要访问一个图片,使用相对路径,直接写face.jpg,这个文件与b.jsp放在一起。如果采用forward方式,地址栏中是a.jsp,这样系统会在aa文件夹中找face.jpg,这时候就会出错。

分享到:
评论

相关推荐

    jsp面试题及答案

    jsp面试题及答案 JSP(Java Server Pages)是一种服务器端脚本语言,用于创建动态网页。下面是关于JSP的一些知识点: 1.JSP与HTML的关系 JSP与HTML之间的关系是,JSP在服务器端执行,返回给客户端的是一个HTML...

    JSP面试题--基础

    ### JSP面试题详解 #### 1. HTTP 协议的无状态特性及有状态协议的概念 HTTP(HyperText Transfer Protocol)是一种应用层协议,用于从Web服务器传输超文本到本地浏览器的传输协议。它是一种**无状态协议**,这意味...

    jsp servlet面试题总结

    jsp servlet面试题总结 jsp 中九大内置对象为: 1. request 请求对象,类型 javax.servlet.ServletRequest,作用域 Request 2. response 响应对象,类型 javax.servlet.SrvletResponse,作用域 Page 3. ...

    servlet和JSP面试题大全

    ### servlet和JSP面试题详解 #### 一、JSP中的九大内置对象 JSP提供了九个内置对象,这些对象简化了开发人员的工作,使得在编写JSP页面时可以直接使用而无需声明。以下是九大内置对象及其说明: 1. **request** -...

    JSP+Servlet面试题

    JSP + Servlet 面试题知识点总结 以下是 JSP 和 Servlet 相关的知识点总结: 一、JSP 和 Servlet 基础知识 * JSP 和 Servlet 都是服务器端执行的,通常返回给客户端的是一个 HTML 文本。 * JSP 在服务器上执行,...

    JSP和Servlet面试题

    常考面试题 1.讲下servlet的执行流程。 Servlet的执行流程也就是servlet的生命周期,当服务器启动的时候生命周期开始,然后通过init()《启动顺序根据web.xml里的startup-on-load来确定加载顺序》 方法初始化...

    servlet和JSP面试题答案.pdf

    Servlet 和 JSP 面试题答案 Servlet 和 JSP 是 Java Web 开发中两个非常重要的技术。下面是对 Servlet 和 JSP 面试题答案的总结。 JSP 中的九大内置对象 在 JSP 中,有九大内置对象,分别是: 1. request 请求...

    JSP面试题及答案借鉴.pdf

    JSP面试题及答案借鉴 本文将从给定的文件中提取JSP相关的知识点,并进行详细的解释和分析。 1. 浏览器、JSP、HTML之间的关系 JSP是一种在服务器端执行的技术,它通常返回一个HTML文本到客户端浏览器,因此客户端...

    java,jsp面试题

    根据给定文件的信息,我们可以提炼出一系列与Java和JSP相关的面试知识点,下面将逐一进行详细解释。 ### JSP指令标签解析 1. **`jsp:include`**:该指令用于在请求处理阶段动态地包含另一个页面。它可以分为两种...

    JAVA面试题之Forward与Redirect的区别详解

    "JAVA面试题之Forward与Redirect的区别详解" 本文主要讲解了在JAVA面试中可能遇到的问题,即JAVA中Forward与Redirect两者之间的区别。文中详细介绍了两种请求转发方式的原理和区别,包括请求转发的含义、Forward...

    jsp最全面试题集(你肯定会喜欢)

    JSP提供了一系列的动作元素,如`jsp:include`、`jsp:forward`、`jsp:params`等,用于在页面级别进行控制流操作。 这些知识点涵盖了JSP的基础,包括页面指令、内置对象、控制结构以及与HTTP交互的细节,对于理解和...

    servlet和JSP面试题大全[参考].pdf

    以上知识点是Servlet和JSP面试中常见的问题,理解并掌握这些概念对于Web开发非常重要。在实际面试中,面试官可能还会问及异常处理、过滤器、监听器、MVC模式以及如何优化Servlet和JSP等方面的问题。对于开发者而言,...

    Jsp(web)面试题

    ### JSP(Web)面试题知识点解析 #### 1. Cookie 和 Session 的数据存放位置 - **Cookie**: 存储在客户端浏览器中。通常用来存储小量的数据,如用户的偏好设置或身份验证令牌等。 - **Session**: 存储在服务器端。...

    java web 笔试面试题集锦

    ### Java Web 笔试面试题集锦解析 #### 1. JSP 的内置对象及其作用 JSP (Java Server Pages) 提供了九个内置对象,这些对象在编写 JSP 页面时可以直接使用,无需导入或声明。它们为开发者提供了丰富的功能,简化了...

    文章分类:Java编程,java面试题4

    以上就是关于Java面试题中涉及到的Forward与Redirect的区别、JSP指令标签、内置对象以及Servlet的基本概念和其与JSP之间的关系的详细介绍。这些知识点对于理解Java Web开发的基础至关重要,同时也是面试中经常考察的...

    平安Java开发面试题.pdf

    - 出现了JSP标签 `&lt;jsp:forward&gt;` 和HttpServletResponse的sendRedirect方法,考察了Web开发中的页面跳转处理。 - 提到了正则表达式的应用,用于匹配特定的字符串模式。 - 涉及了Java中String和StringBuffer的...

    java变态面试题.pdf

    * forward 与 sendRedirect 的区别:forward 是服务器端的跳转,而 sendRedirect 是客户端的跳转。 四、框架知识点 * Spring 框架:管理实体 Bean,AOP 是什么?通常用来干些什么? * Struts1 和 Struts2 的区别:...

    面试题 JAVA 面试题 JAVA

    - 动作:`&lt;jsp:useBean&gt;`创建和引用Bean,`&lt;jsp:setProperty&gt;`设置Bean属性,`&lt;jsp:forward&gt;`转发请求,`&lt;jsp:include&gt;`动态包含页面。 8. **JSP内置对象及其功能**: - `request`:与`HttpServletRequest`相同,...

    转账系统设计——Servlet技术JavaBean技术Jsp技术.doc

    在JSP页面中,通过`&lt;jsp:forward&gt;`或`response.sendRedirect()`可以实现页面间的跳转。同时,可以使用`request`或`session`对象来传递数据,如用户信息或转账状态,使得页面间通信更为便捷。 6. **安全性考虑**: ...

    面试题~~面试官喜欢问的~~

    ### Java面试题解析 #### 1. HashMap与Hashtable的区别 - **共同点**: `HashMap` 和 `Hashtable` 都是实现 `Map` 接口的数据结构,用来存储键值对映射关系。 - **不同点**: 1. **历史背景**: `Hashtable` 是在 ...

Global site tag (gtag.js) - Google Analytics