『壹』 forward和redirect的区别
forward和redirect的区别很大,forward的意思是薯答盯向前的、(按新地址)转寄、促进、前锋的意思,而redirect的意思是改变方向、重新寄送。数和
『贰』 java:forward 和redirect的区别是什么
forward是服务器内部重定向,redirect则是服务器收到请求后发送一个状态头给客户。
『叁』 forward和redirect的区别
forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不肢散斗知道;redirect则是服务器收到请求后发送一个状态码给客 户,客历磨户将再请求一次,这里多了两次网络通信的来往。
redirect是完全的跳转,浏览器将会得到跳转的地址, 并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址;
forward是容器中控制权的转向,在客户端浏览掘碧器地址栏中不会显示出转向后的地址,他是不会改变Request的值;
所以,forward更加高效,在forward可以满足需要时,尽量使用Request Dispatcher.forward()方法,并且,这样也有助于隐藏实际的链接。
『肆』 forward和redirect的区别
1、请求方不同
redirect:客户端发起的请求
forward:服务端发起的请求
2、浏览器地址表现不同
redirect:浏览器地址显示被请求的
urlforward:浏览器地址不显示被请求的url
3、参数传递不同
redirect:重新开始一个request,原页面的request生枝举命周期结束。
forward:forward另一个连接的时候。request变量是在其生命周期内的。另一个页面也可以使用,其实质是把目标地址include。
4、底层运作不同
redirect:发送的请求信息又回送给客户机,让客户机再转发到另一个资源上,需要在服务器和客户机之间增加一次通信。
forward:服务器端直接找到目标,并include过来。
5、定义不同
直接转发方式(Forward):客户端和浏览器只发出一次请求,Servlet、HTML、jsP或其它信息资源,由第二个信息资源响应该请求,在请求对象request中慧搭弊,保存的对象对于每个信息资源是共享的。
间接转发方式(Redirect)实际是两次HTTP请求,服务器端在响应第一次请求前族的时候,让浏览器再向另外一个URL发出请求,从而达到转发的目的。
『伍』 forward和redirect的区别
forward和redirect的区别是:
forward
(1)adv.向前;前进地;至将来;提前地。
(2)adj.向前仿敬方的;迅速的;(社会、政治)进步的;早熟的。
(3)vt.促进,助长;(按新地址)转寄;发送。
(4)n.前锋。
例句:
(1)He came forward with his hand out. 'Mr and Mrs Selby?' he enquired .
他走上前去伸出手来。“是塞尔比先生和夫人吗?”他问道。
(2)The best seats are in the aisle and as far forward as possible .
最好的座位在过道处,越靠前越好。
(3)Forward of the main cabin are the guest cabins .
主舱前面是客舱。
(4)Now the leadership wants to look forward, and to outline a strategy for the rest ofthe century.
现在领导层想要展望未备茄慎来,为本世纪余下的时间勾画出战略纲要。
redirect
(1)vt.使改寄,更改(信件等)姓名地址;改变方向,改变线路;重新寄送;再查问(证人等)。
(2)adj.再直接的。
例句:
(1)Controls were used to redistribute or redirect resources.
采用了管控措施来重新纳闹分配资源或改变其流向。
(2)She redirected them to the men's department.
她指引他们去了男装部。
『陆』 forward和redirect的区别
redirect forward的区别
1.从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.所以redirect等于客户端向服务器端发出两次request,同时也接受两次response。
2.从数据共享来说
forward:转发页面和转发到的哗核页面可以共享request里面的数据.
假如从a页面 到 b页面 在到c页面 如果用
在a页面中:
request.setAttribute("a","aa");<jsp:forward page="b.jsp"></jsp:forward>
在b页面中:<jsp:forward page="c.jsp"></jsp:forward>跳转 在c页面用
request.getAttribute("a")就可以得到a页面的值,或者用request.getParameter("name")
也可以得到。但是要用response.sendRedirect("b.jsp");跳转的话就得不到a 页面的值和内容。
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");%>得不到。
总结:
A.Redirect等于客户端向服务器发出两次request,同时也接受到两次response
Forward却只是一次request一次response
相比之下,Forward性能更高。
B.Forward能够存储request Scope的Attribute而Redirect却不行。
C.Forward的同时URL并不会变。
D.Forward需要在Servlet中需要通过一个Dispatcher来实现。
E.Redirect能够防止某些情况下客户端Refresh造成的一些未知后果(例如连续删除)