`
bluetaoren
  • 浏览: 74595 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

面试归来兮之问答forward \ redirect

    博客分类:
  • java
 
阅读更多

一. jsp中jsp:forward 与 redirect区别

1.从地址栏显示来说

forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容

再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.

redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.所

以redirect等于客户端向服务器端发出两次request,同时也接受两次response。

2.从数据共享来说

forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.

redirect不仅可以重定向到当前应用程序的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,

甚至是使用绝对URL重定向到其他站点的资源.

forward,方法只能在同一个Web应用程序内的资源之间转发请求.

forward 是服务器内部的一种操作.
redirect 是服务器通知客户端,让客户端重新发起请求.

所以,你可以说 redirect 是一种间接的请求, 但是你不能说"一个请求是属于forward还是redirect "


3.从运用地方来说

forward:一般用于用户登陆的时候,根据角色转发到相应的模块.

redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.

4.从效率来说
forward:高.
redirect:低.

5.jsp 语法

<jsp:forward page={"relativeurl" | "<%= expression %>"} />

或者这样写:

<jsp:forward page={"relativeurl" | "<%= expression %>"} >


<jsp:param name="parametername" value="{parametervalue | <%= expression %>}" />+


</jsp:forward>

6.例子

<jsp:forward page="/servlet/login" />

<jsp:forward page="/servlet/login">

<jsp:param name="username" value="jsmith" />

</jsp:forward>

描述

<jsp:forward>标签从一个jsp文件向另一个文件传递一个包含用户请求的request对象.<jsp:forward>标签以下的代码,将不能执行.


你能够向目标文件传送参数和值,在这个例子中我们传递的参数名为username,值为scott,如果你使用了<jsp:param>标签的话,目标文件必须是一个动态的文件,能够处理参数.


如果你使用了非缓冲输出的话,那么使用<jsp:forward>时就要小心。
如果在你使用<jsp:forward>之前,jsp文件已经有了数据,那么文件执行就会出错.

属性

page="{relativeurl | <%= expression %>}"
这里是一个表达式或是一个字符串用于说明你将要定向的文件或url.这个文件可以是jsp,程序段,或者其它能够处理request对象的文件(如asp,cgi,php).

<jsp:param name="parametername" value="{parametervalue | <%= expression %>}" />+
向一个动态文件发送一个或多个参数,这个文件一定是动态文件.

如果你想传递多个参数,你可以在一个jsp文件中使用多个<jsp:param>。name指定参数名,value指定参数值.



<jsp:forward>例子

<%@ page contentType="text/html;charset=gb2312" %>

<html>

<head>

<title>test</title>

</head>

<body>

<jsp:forward page="forwardTo.jsp">

<jsp:param name="userName" value="riso"/>

</jsp:forward>

</body>

</html>

forwardTo.jsp

<%@ page contentType="text/html;charset=gb2312" %>

<!--forwardTo.jsp-->

<%

String useName=request.getParameter("userName");

String outStr= "谢谢光临!";

outStr+=useName;

out.println(outStr);

%>

redirect的例子:

譬如:client 通过XXX\index.jsp?name=gauss&pwd=123访问index.jsp,而index.jsp中有< jsp:forward page="login.jsp"/>,则在login.jsp中可以通过request.getParameter()得到name和pwd,而<%response.sendRedirect("login.jsp");%>得不到。

 

分享到:
评论

相关推荐

    Java面试题19.forward和redirect的区别.mp4

    Java面试题19.forward和redirect的区别.mp4

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

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

    forward与redirect区别

    在开发Web应用时,我们经常会遇到“forward”和“redirect”的概念,它们是两种不同的页面跳转方式。理解和掌握它们的区别对于优化用户交互和处理请求流至关重要。 **forward(转发)**: - 转发是由服务器端完成的...

    jsp forward与redirect实探

    当我们需要在不同的页面之间导航时,`forward`和`redirect`是两种常见的处理请求转发和重定向的方法。本文将深入探讨这两种机制及其区别。 首先,`forward`是通过服务器端内部跳转实现的。它使用`RequestDispatcher...

    forward与redirect!转发和重定向 解析

    ### Forward与Redirect解析 在Web开发中,Forward(转发)与Redirect(重定向)是两种常见的页面跳转方式。它们虽然都可以实现从一个页面跳转到另一个页面的功能,但在实现机制、应用场景以及对用户浏览器地址栏的...

    forward转发与redirect重定向的区别.zip

    在Web开发中,"转发"(Forward)和"重定向"(Redirect)是两种常见的请求处理方式,它们在实现客户端和服务器之间的交互时起到至关重要的作用。了解它们的区别对于优化用户体验和提高应用性能至关重要。 首先,让...

    大厂面试题知识点讲解汇总

    、bat面试题之线程的实现方式 怎么启动线程怎么区分线程、bat面试题之forward和redirect的区别、bat面试题之内置对象和四大作用域和页面传值、bat面试题之设计模式和常用的设计模式、bat面试题之实现一个拷贝文件的...

    转发和重定向的区别 forward和redirect的区别

    2. 重定向(Redirect): - 使用`Response.sendRedirect()`方法实现。 - 重定向会导致浏览器发起一个新的HTTP请求,所以URL会显示为新的目标地址,客户端浏览器能够感知到这个变化。 - 重定向路径必须是绝对路径...

    struts_actionforward.rar_ActionForward_redirect

    ActionForward的使用 1、理解全局和局部ActionForward的概念 2、redirect的使用 3、struts-config.xml文件不允许动态修改 4、理解动态ActionForward,动态的ActionForward是可以运行期修改的

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    │ Java面试题19.forward和redirect的区别.mp4 │ Java面试题20.jsp和Servlet的相同点和不同点?.mp4 │ Java面试题21.内置对象和四大作用域和页面传值.mp4 │ Java面试题22.Session和Cookie的区别.mp4 │ Java面试...

    Forward 2.71 安装程序

    Forward 2.71 是一款专业且功能丰富的网络数据包分析工具,主要用于网络监控、故障排查和性能优化。本文将详细介绍如何安装 Forward 2.71,并探讨其主要功能和使用场景。 首先,我们来了解 Forward 2.71 的安装步骤...

    java面试大全视频版

    Java面试题19.Servlet中forward和redirect的区别 Java面试题20.jsp和Servlet的相同点和不同点 Java面试题21.内置对象和四大作用域和页面传值 Java面试题22.Session和Cookie的区别和使用场景 Java面试题23.mvc模式和...

    Forward中文版2.7.rar

    forward是一款很有用的软件,在工程方面、测井方面,勘探方面经常用到 Forward for Windows平台提供多种应用挂接方式,如何应用(包括DOS应用) 经方法管理器加入平台后,自动具备各种平台特性(如方法拖拉、接收井...

    feed forward equalization 专利

    Embedded wire feed forward equalization Embedded wire feed forward equalization Embedded wire feed forward equalization Embedded wire feed forward equalization Feed-forward optical equalization using ...

    iptables之forward

    试验环境如上图 ... 四台主机防火墙规则都清空,默认规则都为ACCEPT,仅充当防火墙的主机FORWARD链默认规则为DROP。...~]# iptables -P FORWARD DROP #FORWARD默认规则置为DROP ~]# setenforce 0 #关闭selinux

    19.Servlet中forward和redirect的区别.avi

    19.Servlet中forward和redirect的区别.avi

    Forward工程技术手册.pdf

    国产地层油气藏测井评价系统forward工程技术手册,提供forward平台各模块的功能细节描述,应与forward用户实用手册配合使用。

    springMVC3学习 九 redirect和forward跳转 源码

    springMVC3学习 九 redirect和forward跳转 源码 文章地址http: blog csdn net itmyhome1990 article details 26286669

Global site tag (gtag.js) - Google Analytics