`
ihuangweiwei
  • 浏览: 265245 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Web组件之间存在三种关联关系(转发,重定向,包含)

阅读更多

Web组件之间存在三种关联关系:

请求转发

定义:请求转发允许把请求转发给同一个应用程序 中的其他WEB组件。

实现:Servlet类使用javax.servlet.RequestDispathcer.forward()方法来转发它所收到的HTTP请求。转发目标组件将处理该请求并生成响应结果,或者将请求继续转发到另一个组件。最初请求的ServletRequest和ServletResponse对象被传递给转发目标组件,这是的目标组件可以访问整个请求上下文。

 

总结:转发的源组件和目标组件在request范围内共享数据,及他们拥有同一个request对象啊。请求转发只能转发给同一个WEB应用中的组件。

RequestDispatcher rd = request.getRequestDispatcher("hello.jsp");
rd.forward(request,response);
<jsp:forward page="hello.jsp">

 

URL重定向 :

重定向类似于请求转发,但也有一些重要区别:

1.Web组件可以将请求重定向到任一URL,而不仅仅是同一个应用中的URL。
2.重定向的源组件和目标组件之间不共享同一个HttpServletRequest对象,及不能共享request范围内的数据

3.转发的话URL地址栏值不会改变,重定向的话URL地址栏值会改变。

response.sendRedirect("http://www.baidu.com");

 

建议:在同一个应用程序中还是使用转发,这样便于统计组统计网站的PV值时,转发的话程序不会产生的PV,重定向一次就会多产生一点PV值。 

 

包含:
定义:包含关系允许一个WEB组件聚集来自同一个应用中其他WEB组件的输出数据,并使用被聚集的数据来创建相应结果。

实现:javax.servlet.RequestDispathcer.include()方法包含其他的WEB组件。


概念比较抽象,但实例一讲就觉得很简单,我们一直在用的,但我们没有留意这就是包含。

RequestDispatcher rd ;
rd = req.getRequestDispatcher("/header.jsp");
rd.include(req,res);
rd = req.getRequestDispatcher("/main.jsp");
rd.include(req,res);
rd = req.getRequestDispatcher("/footer.jsp");
rd.include(req,res);
<%@ include file="header.jsp" %>
<%@ include file="main.jsp" %>
<%@ include file="footer.jsp" %>

 

看了jsp代码,相信很多人恍然大悟,原来这就是包含啊,这么简单。

 

 

 

 

分享到:
评论

相关推荐

    【计算机软件毕业设计】二手车交易平台的分析、设计与实现文献综述1.doc

    Struts,Spring,Hibernate这三大框架在Web应用中不是孤立执行而是相互关联,相 互支持的。这就使集成了SSH框架的系统在职责上的四层:表示层、业务逻辑层、数据持 久层和域模块层密切联系,最大化地实现SSH集成框架的...

    asp.net知识库

    深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP.Net应用程序的多进程模型 NET委托...

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版) 1/2

    《JavaServer Faces 2.0完全参考手册》对所有jsf功能都进行了解释,包括请求处理生命周期、托管bean、页面导航、组件开发、ajax、验证器、国际化和安全。贯穿全书的专家组意见提供了关于jsf设计的内部信息。 推荐...

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版).part1

    《JavaServer Faces 2.0完全参考手册》对所有jsf功能都进行了解释,包括请求处理生命周期、托管bean、页面导航、组件开发、ajax、验证器、国际化和安全。贯穿全书的专家组意见提供了关于jsf设计的内部信息。 推荐...

    Java语言基础下载

    转发和重定向标记 668 HTML标记 669 显示错误信息的标记 673 其他HTML标记 673 模板标记 673 内容总结 676 独立实践 676 第三十四章:Hibernate基础 677 学习目标 677 Hibernate简介 678 建立简单的Hibernate应用 ...

    vSphere 故障排除

    《vSphere 故障排除》介绍了 vCenter Server 实施及相关组件的故障排除问题和过程。 A Active Directory 24 Auto Deploy 超时错误 18 重定向问题 19 coredump 20 错误的映像 18 DHCP 地址 22 故障排除 18 TFTP ...

    Parth:启发式漏洞参数扫描仪

    url=通常包含URL作为值,因此经常成为文件包含,开放重定向和SSRF攻击的受害者。 Parth可以浏览您的打history历史,URL列表或自己发现的URL,以查找此类参数名称以及通常与之相关的风险。 Parth旨在通过帮助确定测试...

    citrix 中文管理操作手册

    在内容与已发布应用程序之间建立信任关系 42 禁用所选已发布应用程序的命令行验证 42 禁用服务器上所有已发布应用程序的命令行验证 42 配置已发布内容的位置 43 配置内容重定向 43 将内容从客户端重定向到服务器 43 ...

    django-docs-2.2-zh-hans.zip

    学习众多的组件及工具,来帮助你开发和测试 Django 应用: 设置: 概览 | 完整的设置列表 应用程序: 概览 异常: 概览 django-admin.py 和 manage.py: 概览 | 添加自定义命令 测试: 介绍 | 书写并运行测试 | 包含...

    。net图书管理系统设计方案

    一般我们要做到的是第三范式,即数据表中没有冗余字段以及同一个表中的字段没有函数依赖关系,冗余字段即在一个表中已经保存过的信息,在另一个表中就不应该存在,如果需要的话,可以通过表间的关联来得到,...

    C++大学教程,一本适合初学者的入门教材(part2)

    18.2 UNIX和DOS系统中的输入/输出重定向 18.3 变长参数表 18.4 使用命令行参数 18.5 对编译多个源文件程序的说明 18. 6 用edt和atexit终止程序的执行 18.7 volatile类型限定符 18.8 整数和浮点数常量的后缀 ...

    C++大学教程,一本适合初学者的入门教材(part1)

    18.2 UNIX和DOS系统中的输入/输出重定向 18.3 变长参数表 18.4 使用命令行参数 18.5 对编译多个源文件程序的说明 18. 6 用edt和atexit终止程序的执行 18.7 volatile类型限定符 18.8 整数和浮点数常量的后缀 ...

    新版Android开发教程.rar

    • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • 集成的浏览器 基于开源的 WebKit 引擎 • 优化的图形库 包括定制的 2D 图形库, 3D 图形库基于 OpenGL ES 1.0 ...

    深入解析Windows操作系统中文.part2.rar

    客户和服务器版本之间的差异 47 检查版本 49 2.4 关键的系统组件 51 环境子系统和子系统DLL 53 硬件抽象层(HAL) 67 设备驱动程序 69 系统进程 75 2.5 本章总结 84 第3章 系统机制 85 3.1 陷阱分发 85 中断分发 87 ...

    Java学习笔记-个人整理的

    {8.3}创建线程的两种方法}{123}{section.8.3} {8.4}Runnable}{123}{section.8.4} {8.5}Sleep阻塞与打断唤醒}{124}{section.8.5} {8.5.1}sleep与wait的差异}{124}{subsection.8.5.1} {8.6}IO阻塞}{126}{section....

Global site tag (gtag.js) - Google Analytics