服务端跳转和客户端跳转的区别

客户端跳转时用HttPservletResopse对象的sendRedirect函数实现,服务器端跳转是使用RequestDispather对象的forward方法实现的。这两者之间的区别主要体现在三个方面:

1. 使用服务器端跳转时,客户浏览器的地址栏并不会显示目标地址的URL,而是用客户端跳转时,地址栏当中会显示目标资源的URL;

2. 服务器端跳转是由客户端发送一个请求,请求一个服务器资源——如JSP和Servlet——,这个资源又将请求转到另一个服务器资源,然后再给客户端发送一个响应,也就是说服务器端跳转是客户端发送一次请求,服务器端给出一次响应;而客户端跳转的流程则不同。客户端同样是发送一个请求给服务器端资源,这个服务器资源会首先给客户端一个响应,客户端再根据这个响应当中所包含的地址,再次向服务器端发送一个请求,也就是说客户端跳转是两次请求,两次响应;

3. 在进行客户端跳转和服务器端跳转时,都需要指定目标资源的URL,如果这个路径以“”开始。在客户端跳转当中“”代表的是应用服务器根目录,而在服务器端跳转当中代表的是应用程序根目录。

page = 页面级别

request = 请求级别(与服务器端跳转配合使用)

session = 会话级别(客户端跳转(服务器端跳转也可,但是客户端跳转更加突出了session的作用范围))

application = 应用级别

客户端跳转:服务器端将请求结果返回给客户端,客户端向服务器发出另一次请求。在客户端跳转过程中是两次不同的请求。在地址栏中显示的是最后一次请求地址。

客户端跳转可以进行站外跳转。

1、链接跳转:<a href=””></a>

2、表单提交

3、Response.sendRedirect(“3.jsp”);

4、<mata http-equiv=”refresh”, content=”3;2.jsp”/>

5、response.setHeader(“refresh”,” 3;2.jsp”);

6、客户端跳转“/”代表服务器跟路径webapps

服务器端跳转(容器内跳转):能够自动的在服务器内部进行跳转,这种跳转对用户来说是透明的。两次跳转时同一个request,在地址栏中显示的事第一次页面地址。

只能进行站点内跳转。

1、<jsp:forward page=””/>

2、pageContext.forward();

3、 request.getRequestDispatcher("1.jsp").forward(request,response);

3、服务器端跳转“/”代表站点根路径

原文地址:https://www.cnblogs.com/huifeidezhuzai/p/9534579.html

时间: 2024-10-02 20:26:43

服务端跳转和客户端跳转的区别的相关文章

FireFly 服务端 Unity3D黑暗世界 客户端 问题

启动服务端成功截图: 连接成功截图: 测试服务端是否启动成功: 在Web输入:http://localhost:11009/  按回车 (查看cmd启动的服务端 是否多出如下显示) 服务端启动成功.PC unity3d客户端 连接也成功.但在手机端连接不成功 一直显示连接服务器有误 请检查网络 --------- beginning of /dev/log/system--------- beginning of /dev/log/mainD/Unity (32743): GL_EXT_debu

CentOS Rsync服务端与Windows cwRsync客户端实现数据同步

CentOS Rsync服务端与Windows cwRsync客户端实现数据同步 2012年05月06日 ? Rsync ? 暂无评论 ? 被围观 3,622次+ 说明: 1.Rsync服务端 系统:CentOS 5.5 IP地址:192.168.21.160 数据存放目录:/data/osyunwei 2.cwRsync客户端 系统:Windows Server 2003 IP地址:192.168.21.130 同步的目录:D:\osyunwei 实现目的: cwRsync客户端每天凌晨3:0

socket服务端处理多个客户端的请求学习理解

socket服务端处理多个客户端的请求:while(true){Socket s=ss.accept();new WorkThread(s).start();}class WorkThread edtends Thread{private Socket s;public WorkThread(Socket s){this.s=s;}public void run(){s.getInput();s.getOutput();}}

WebService服务端获取访问的客户端IP

WebService服务端获取 访问的客户端IP: @WebService(serviceName = "XXXService", targetNamespace ="http://ws.sms.zjapl.com") public class XXXWebServiceImpl implements XXXWebService { @Resource(name ="org.apache.cxf.jaxws.context.WebServiceContex

Android Socket 聊天工具(一个服务端实现多个客户端间通信)

如果某位朋友也打算做这个Socket聊天工具,本人有个小小的建议,你可以不必太着急些代码,先想清楚自己最终要做到怎样效果,然后把自己的思路都写下来,有一个基本的实现方法.在写代码时就按照自己的思路一步一步地写下去,这样可以很好地避免写代码时由于思路不清左删右改. 以下是本人程序的设计思路 客户端设计思路: 一 用户登录界面 1 用一个EditText作为用户名输入口,用一个按键确定. 2 注册一个广播接收器,专门接收由后来的聊天界面发过来的消息广播(包括发信人,收信人,消息体). 3 创建一个客

301 服务器端跳转与客户端跳转

首先我们需要理解什么是服务器端跳转,什么是客户端的跳转. 简单理解所谓服务器端跳转就是指地址栏内容不变(客户端浏览器的地址栏不会显示目标地址的URL),//注:客户端请求到达以后,服务器发现当前资源给不出回应,要在服务器内部请求另一个资源的跳转.所以,1.跳转与否客户端不知道(URL不变),2.属于一次request 而客户端跳转是指地址栏内容发生改变(客户端向服务器发请求偶,然后服务器再给客户端一个响应,然后客户端再根据服务器端给的响应中的URL再向服务器发送请求,所以是两次请求,因此地址栏改

Web开发中的服务器跳转与客户端跳转

两者比较如下: 跳转类型  客户端请求次数 服务端响应次数 URL变化 站外跳转 作用域 服务器跳转 1 1 无 否 pageContext.request.session.application 客户端跳转 2 2 有 能 session.application 请求次数与响应次数 服务端跳转:客户端发起一次请求,服务端接收请求后,将结果跳转到另一个页面,作为此次请求结果返回给客户端客户端跳转:客户端发起一次请求,服务端返回此次请求的结果,结果内容是一个URL地址,客户端拿到此URL,再次发送

thrift 服务端linux C ++ 与客户端 windows python 环境配置(thrift 自带tutorial为例)

关于Thrift文档化的确是做的不好.摸索了很久才终于把跨linux与windows跨C++与python语言的配置成功完成.以下是步骤: 1)                 Linux下环境配置 l  完成thrift所依赖的其他软件包的安装:Boost.libtool.libevent.bison.flex 解压boost_1_55_0,进入boost_1_55_0目录下 chmod 777 bootstrap.sh chmod 777 ./tools/build/v2/engine/bu

用java做thrift服务端,php做thrift客户端简单例子

注意: 1).需要的包以及路径问题要注意修改为自己本地的 2)详细情况见  http://pan.baidu.com/s/1qW8xI0k 这里以Hello.thrift为例 namespace java hellodemo namespace php hellodemo service Hello{ string helloString(1:string para) i32 helloInt(1:i32 para) bool helloBoolean(1:bool para) void hel