页面跳转?sendRedirect()与forward()辨析

 

 在JSP中,要实现页面的跳转,主要有两种方式实现:forward和sendRedirect。

  一、forward

  forward实现页面跳转是通过转移请求实现的。客户端向服务器的页面1发出一个请求,页面1编译运行过程中发现处理不了,把这个请求转移(forward)给页面2来处理,这个请求对象封装了一开始客户端发送请求时封装的信息、参数等。页面2对通过这个请求对象提取数据并进行一系列的操作处理后,把结果通过response发回原客户端浏览器显示。整个过程中只发生了一次请求、一次响应。由于宏观上是客户端向页面1发出的请求并通过response收到了响应,所以地址栏上显示的是页面1的地址。而在微观上,即服务器内部页面1调用了多少页面,客户端是不知的。如下图:

  

  二、sendRedirect()

  response.sendRedirect("跳转页面?参数&参数...");

  重定向实际上相当于指引浏览器向另一个页面进行请求。客户端向页面1发出请求,页面1回应客户端说:“你去找页面2吧!”,通过response对象把页面2的地址以及参数发回给客户端。然后客户端又通过1发来的地址向页面2发出请求并把参数传过去,页面2接收请求并处理后再通过response把结果返回客户端显示。整个过程实际上发生了两次请求、两次响应。两次的请求响应分别独立,互不相同的。由于客户端是进行了两次请求的,所以地址栏上先是页面1的地址然后重定向后显示的是页面2的地址。

  如下图:

  

  

时间: 2024-12-23 08:56:46

页面跳转?sendRedirect()与forward()辨析的相关文章

JS弹出框、对话框、提示框,JS关闭窗口、关闭页面和JS控制页面跳转

一.JS弹出框.对话框.提示框 //====================== JS最常用三种弹出对话框 ======================== //1弹出对话框并输出一段提示信息 function ale() { //弹出一个对话框 alert("提示信息!"); } //2弹出一个询问框,有确定和取消按钮 function firm() { //利用对话框返回的值 (true 或者 false) if (confirm("你确定提交吗?")) { a

jsp页面跳转和请求的各种方法

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html > <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8

JSP与Servlet几种页面跳转的区别

Servlet: 当然,在servlet中,一般跳转都发生在doGet, doPost等方法里面. 1) redirect 方式 response.sendRedirect("/a.jsp"); 页面的路径是相对路径.sendRedirect可以将页面跳转到任何页面,不一定局限于本web应用中,如: response.sendRedirect("http://www.ycul.com"); 跳转后浏览器地址栏变化. 这种方式要传值出去的话,只能在url中带param

页面跳转与重定向(之二)

前言 这一篇是接着上一篇的继续 页面跳转与重定向(之一) 在上一篇中, 介绍了在html,js 和JSP中如何跳转和重定向. 基本是在页面层级进行页面的跳转, 进入一个页面后跳入另一个页面. 这一篇将从项目和服务端来看看有可能在实际的项目中使用到的状况. 旧的地址跳转到新的地址 在系统开发过程中, 新旧系统并存是一种常见的处理方法,新旧系统有着各自独立的域名地址. . 当新系统开发完成的时候,就需要把旧地址的域名导到新地址中了. 方法之一 就是进行DNS 修改映射了. 如果系统没有域名, 只有I

java servlet 几种页面跳转的方法及传值

java web 页面之间传值有一下这几种方式1.form 表单传递参数2.url地址栏传递参数3.session4.cookie5.application 6.通过隐藏域传值 7.通过JavaBean进行传值 8. request.setAttribute("strRequest", strRequest); 9.response.setAttribute("name",name)来传至下一个页面 10.response.sendRedirect():在用户的浏览

web项目中实现页面跳转的两种方式

<a href="javascript:"></a>跳转在网页本身,URL不改变 <a href="#"></a> 跳转在网页本身,URL 改变 java web项目中实现页面跳转的主要方式有两种:第一种,<% response.sendRedirect("index.jsp");%>第二种<jsp:forward page="index.jsp"/>我做

Servlet、JSP中页面跳转的方式

一.Servlet:当然,在servlet中,一般跳转都发生在doGet, doPost等方法里面.1)  redirect 方式response.sendRedirect("success.jsp");页面的路径是相对路径.sendRedirect可以将页面跳转到任何页面,不一定局限于本web应用中,如:response.sendRedirect("http://www.ycul.com");跳转后浏览器地址栏变化.这种方式要传值出去的话,只能在url中带para

关于jsp页面跳转及参数传递的问题

最近在做网站的登录功能,目前有这几个文件:index.jsp(登录页面),userLogin.jsp(登录验证页面,登录成功跳到user.jsp,登录失败跳回index.jsp)与数据库相连,user.jsp(用户个人主页).想要达到以下目的: 1.输入正确的用户名和密码,成功登录. 2.输入错误的用户名或密码,登录失败,跳回index.jsp提示登录失败,请重新登录. 关于页面的跳转问题,在登录成功时,要向user.jsp传递用户名,登录失败时,要跳回原来的index.jsp页面,并要告知in

Java Web页面跳转

Java Web的页面跳转分服务器跳转和客户端跳转: 服务器端跳转  的特点是:跳转之后浏览器的地址栏不会发生任何变化,在使用rquest属性范围时,能将request属性保存到跳转页.执行到跳转语句则会立即跳转. 例如:<jsp:forward page="login.htm"></jsp> 或者:<jsp:forward page="login.htm"> <jsp:param name="id" v