Web应用程序如此强大的原因之一是他们彼此连接和聚合信息资源,J2EE平台为特定的URL的WEB组件提供三种相互关联的方式:请求转发、URL重定向和包含。

一、转发请求:请求转发允许组件发送请求到某个应用程序中的URL,并通过统一应用程序中的不同URL中的组件来处理该请求,这个种技术通常用于WEB应用控制层Servlet流程控制器,检查web请求中的数据,并将请求转发到合适的目标组件,以便进行处理,如下图:Servlet把请求转发给另一个JSP组件的过程。

1、请求转发是指将请求转发到另一个资源(一般为JSP或Servlet),此过程依然在同一个请求范围内,转发后浏览器地址内容不变。

2、请求转发使用RequestDispatcher接口中的forward()方法来实现,该方法可以把请求转发到另外一个资源,并让该资源对浏览器的请求进行响应。

代码如下:

//请求转发
req.setAttribute("pageModel", pageModel);
req.getRequestDispatcher("/basedata/item_maint.jsp").forward(req, resp);

二、URL重定向:URL(Uniform Resource Locator)在因特网上服务程序上用于指定信息为止的表示方法,如图:

URL重定向主要有

1、Web组件可以讲请求重定向到任意URL,而不仅仅是同一个应用上下文中的URL,最初请求的内容丢失了(如post参数),重新定位到一个新地址,之前的请求失败,进入一个新的请求,并且跳转后浏览器地址栏中的内容将变为新的指定地址。

2、重定向的源组件和目标组件不共用一个HttpServletRequest对象,因此不能共享request中的数据。

3、重定向通过HttpServletRequest对象的sendRedirect()来实现,该方法就是相当于浏览器重新发送一个请求。

代码如下:

//URL重定向servlet
response.sendRedirect(request.getContextPath() + "/servlet/item/SearchItemServlet");

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

包含主要用于模板处理器,这里一个结构化的模板通常是jsp,用于控制器响应的布局,模板中的每个页面区域的内容来自不同的URL,从而组成单个页面。

实现: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" %>  

Web组件的三种关系相关推荐

  1. vue单文件props写法_详解Vue 单文件组件的三种写法

    详解Vue 单文件组件的三种写法 JS构造选项写法 export defaul { data, methods, ...} JS class写法 @Component export default c ...

  2. 深入解析React创建组件的三种方式

    eact创建组件的三种方式: 1.函数式无状态组件 2.es5方式React.createClass组件 3.es6方式extends React.Component 三种创建方式的异同 1.函数式无 ...

  3. SQL外键foreign key 表与表之间的三种关系

    表与表之间的三种关系 多对一关系表 注意事项: 一对多表关系,外键字段建在多的一方. 在创建表的时候,一定要先建被关联表. 在录入数据的时候,也必须先录入被关联表. 删除 一定要先删除主键表,才可以删 ...

  4. Hibernate关联映射-数据对象三种关系

    Hibernate框架基于ORM设计思想,它将关系型数据库中的表与我们java中的类进行映射,一个对象就对应着表中的一条记录,而表中的字段对应着类中的属性. 数据库中表与表之间存在着三种关系,也就是系 ...

  5. Mysql -- 外键的变种 三种关系

    一.介绍 因为有foreign  key的约束,  使得两张表形成了三种关系 多对一      多对多   一对一 二.如果找出两张表之间的关系 #1.先站在左表的角度去找 是否左表的多条记录可以对应 ...

  6. (转)Hibernate关联映射——对象的三种关系

    http://blog.csdn.net/yerenyuan_pku/article/details/70148618 Hibernate关联映射--对象的三种关系 Hibernate框架基于ORM设 ...

  7. Unity3D获取游戏对象组件的三种方式

    Unity获取游戏对象组件的三种方式 用Find查询 1. GameObejct go = GameObject.Find("对象名").GetComponent<获取对象上 ...

  8. python 全栈开发,Day62(外键的变种(三种关系),数据的增删改,单表查询,多表查询)...

    一.外键的变种(三种关系) 本节重点: 如何找出两张表之间的关系 表的三种关系 一.介绍 因为有foreign key的约束,使得两张表形成了三种了关系: 多对一 多对多 一对一 二.重点理解如果找出 ...

  9. MySql数据库三种关系详解

    如何分辨三种关系,以及三种关系的图列对比. 1.分析三种关系. 是否左表的多条记录可以对应右表的一条记录,是,则证明左表的一个字段 关联(foreign key)右表的一个字段(通常为ID) 是否右表 ...

  10. vue父子组件的三种传值方式

    vue父子组件的三种传值方式 函数类型的props传值 //父组件 <template><Children :getChildName="getChildName" ...

最新文章

  1. 最近做了一个小小的系统,收获挺大的....我想总结一下
  2. [题解] 2019牛客暑期多校第三场H题 Magic Line
  3. 神策数据胡士文:数据智能驱动业务实践
  4. 模糊查询实例 只要相关匹配即可
  5. matlab合成音乐原理,matlab 做音乐合成
  6. UVA 1637 Double Patience
  7. python竞赛内存_python的内存机制
  8. 连表时数据量翻倍问题
  9. PHP运行的环境安装
  10. 大学物理复习--变化的电磁场
  11. 星耀视界2019研讨会笔记
  12. 逆境之中见真章,JASMINER在众多出海企业中脱颖而出
  13. 平庸前端码农之蜕变 — AST
  14. 网友评价 iPhone 8:大爱玻璃后壳、True Tone 屏幕
  15. 财务系统数字转化方法
  16. 淘宝店群使用云服务器非常好
  17. 商城系统APP如何开发 都有哪些步骤
  18. 数据处理:1 用pandas处理大型csv文件 2 使用Pandas分块处理大文件 3 分块读取
  19. 主板上集成显卡的计算机在进行显示工作,如何在主板集成显卡和独立显卡之间切换?计算机技术...
  20. 从Firefox升级说学习方法

热门文章

  1. ftp服务器和文件夹共享文件夹,ftp服务器和文件夹共享文件夹
  2. 华为认证的考试费用和重认证
  3. 层次分析法(附实例)
  4. 学生用计算机没电了,cfa计算器没电了怎么办
  5. Excel 固定表头
  6. ansys计算机热仿真,基于ANSYS WORKBENCH的摩擦生热分析
  7. 全网音乐Music Download v2.1.2
  8. [硬件选型] 工业相机之参数和选型
  9. 个人微信公众号做外卖优惠券怎么弄?
  10. BOS物流管理系统第一阶段