跟小博老师一起学Servlet ——Servlet之客户端跳转
来源:互联网 发布:黄瓜什么意思网络用语 编辑:程序博客网 时间:2024/05/17 09:36
上节中我们通过HttpServletRespose向其客户端响应,但有些场景我们要将请求转发到下一资源或其它页面,那就要借助于跳转技术。
概念
所谓跳转给我们最直观的感受请求与响答并不一致,比喻我们访问A的网址而出来的却是B网址的内容。很多Web程序出于业务需要,常常使用到跳转技术。Servlet中可以实现Servlet与Servlet、Servlet与jsp等之间的跳转,而且实现起来并不复杂。
跳转方式
Servlet提供了二种跳转方式,一种为客户端跳转(又称为重定向),另一种为服务端跳转。客户端跳转从字面理解需借助客户端(一般为浏览器)完成,服务端跳转则在Web服务器内部完成,二者有质的区别。
客户端跳转原理
比如我们从A页面上向某个Servlet发起请求,servlet处理完成后返回B页面。
请看客户跳转流程图
可以看到浏览器向Web服务器请求了二次,最终显示的是页面B内容。第一次请求处理完成后,Servlet向浏览器做出响应。在响应的内容中包含了指示浏览器发起第二次请求的指令,浏览器收到响应后再次向指定URL发送请求。此过程有点像对战游戏中的迂回策略,巧妙化简不能直到达目地的问题:)
客户端跳转过程稍显复杂,同学们可以观察浏览器地址栏中最终的URL就好区分是哪种跳转。客户端跳转最终是目标资源URL,也就是页面B资源地址;服务端跳显示的还是servlet对应的地址。
实现代码
HttpServletResponse提供了sendRedirect方法专用于客户端跳转,注意的是提供其跳转的URL最好是全路径,否则对于不是同一站点的资源会跳转失败。
应用场景
客户端跳的目标可以是同一站点下的资源,但更适合跨域跳转(比如从百度跳到搜狐)。对于以禁用了cookie的浏览器,采用客户端跳会丢失会话(session)。应用时要确认运行环境,或通过重写URL解决,以免造成bug。
- 跟小博老师一起学Servlet ——Servlet之客户端跳转
- 跟小博老师一起学Servlet ——Servlet之客户端跳转
- 跟小博老师一起学Servlet ——Servlet之HttpServletResponse
- 跟小博老师一起学Servlet ——Servlet之COOKIE
- 跟小博老师一起学Servlet ——Servlet之会话跟踪
- 跟小博老师一起学Servlet ——Servlet之属性操作
- 跟小博老师一起学Servlet ——Servlet之属性操作2
- 跟小博老师一起学Servlet ——Servlet之过滤器
- 跟小博老师一起学Servlet ——Servlet之过滤器实现和应用
- 跟小博老师一起学Servlet ——Servlet之监听器
- 跟小博老师一起学Servlet ——Servlet之HttpServletResponse
- 跟小博老师一起学Servlet ——初识Servlet
- 跟小博老师一起学Servlet ——Servlet工作原理
- 跟小博老师一起学Servlet ——Servlet案例
- 跟小博老师一起学Servlet ——Servlet生命周期
- 跟小博老师一起学Servlet ——Servlet案例
- 跟小博老师一起学Servlet ——Servlet取得请求参数
- 跟小博老师一起学JSP ——简介与工作原理
- tomcat配置
- linux下xampp集成包安装配置方法
- Android 解析XML和json
- 【排序算法】之快速排序
- 蓝桥杯——趣味逻辑推理一(2017.2.16)
- 跟小博老师一起学Servlet ——Servlet之客户端跳转
- C# as is的用法
- 跨浏览器的事件监听
- Python发送http请求解析返回json小demo
- 中断的概念
- 极简-聊天-UI100
- 有符号数和无符号数负数
- Visual Studio 2015 professional 密钥
- Python传输解析PB消息Client段程序