Web组件的三种关系
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组件的三种关系相关推荐
- vue单文件props写法_详解Vue 单文件组件的三种写法
详解Vue 单文件组件的三种写法 JS构造选项写法 export defaul { data, methods, ...} JS class写法 @Component export default c ...
- 深入解析React创建组件的三种方式
eact创建组件的三种方式: 1.函数式无状态组件 2.es5方式React.createClass组件 3.es6方式extends React.Component 三种创建方式的异同 1.函数式无 ...
- SQL外键foreign key 表与表之间的三种关系
表与表之间的三种关系 多对一关系表 注意事项: 一对多表关系,外键字段建在多的一方. 在创建表的时候,一定要先建被关联表. 在录入数据的时候,也必须先录入被关联表. 删除 一定要先删除主键表,才可以删 ...
- Hibernate关联映射-数据对象三种关系
Hibernate框架基于ORM设计思想,它将关系型数据库中的表与我们java中的类进行映射,一个对象就对应着表中的一条记录,而表中的字段对应着类中的属性. 数据库中表与表之间存在着三种关系,也就是系 ...
- Mysql -- 外键的变种 三种关系
一.介绍 因为有foreign key的约束, 使得两张表形成了三种关系 多对一 多对多 一对一 二.如果找出两张表之间的关系 #1.先站在左表的角度去找 是否左表的多条记录可以对应 ...
- (转)Hibernate关联映射——对象的三种关系
http://blog.csdn.net/yerenyuan_pku/article/details/70148618 Hibernate关联映射--对象的三种关系 Hibernate框架基于ORM设 ...
- Unity3D获取游戏对象组件的三种方式
Unity获取游戏对象组件的三种方式 用Find查询 1. GameObejct go = GameObject.Find("对象名").GetComponent<获取对象上 ...
- python 全栈开发,Day62(外键的变种(三种关系),数据的增删改,单表查询,多表查询)...
一.外键的变种(三种关系) 本节重点: 如何找出两张表之间的关系 表的三种关系 一.介绍 因为有foreign key的约束,使得两张表形成了三种了关系: 多对一 多对多 一对一 二.重点理解如果找出 ...
- MySql数据库三种关系详解
如何分辨三种关系,以及三种关系的图列对比. 1.分析三种关系. 是否左表的多条记录可以对应右表的一条记录,是,则证明左表的一个字段 关联(foreign key)右表的一个字段(通常为ID) 是否右表 ...
- vue父子组件的三种传值方式
vue父子组件的三种传值方式 函数类型的props传值 //父组件 <template><Children :getChildName="getChildName" ...
最新文章
- 最近做了一个小小的系统,收获挺大的....我想总结一下
- [题解] 2019牛客暑期多校第三场H题 Magic Line
- 神策数据胡士文:数据智能驱动业务实践
- 模糊查询实例 只要相关匹配即可
- matlab合成音乐原理,matlab 做音乐合成
- UVA 1637 Double Patience
- python竞赛内存_python的内存机制
- 连表时数据量翻倍问题
- PHP运行的环境安装
- 大学物理复习--变化的电磁场
- 星耀视界2019研讨会笔记
- 逆境之中见真章,JASMINER在众多出海企业中脱颖而出
- 平庸前端码农之蜕变 — AST
- 网友评价 iPhone 8:大爱玻璃后壳、True Tone 屏幕
- 财务系统数字转化方法
- 淘宝店群使用云服务器非常好
- 商城系统APP如何开发 都有哪些步骤
- 数据处理:1 用pandas处理大型csv文件 2 使用Pandas分块处理大文件 3 分块读取
- 主板上集成显卡的计算机在进行显示工作,如何在主板集成显卡和独立显卡之间切换?计算机技术...
- 从Firefox升级说学习方法