`
ihuangweiwei
  • 浏览: 266273 次
  • 性别: 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代码,相信很多人恍然大悟,原来这就是包含啊,这么简单。

 

 

 

 

分享到:
评论

相关推荐

    struts-MVC.doc

    1. 请求转发和URL重定向是Web组件之间两种常见的关联关系: - **请求转发**:在同一应用程序内部,Servlet可以通过`RequestDispatcher.forward()`方法将请求传递给其他Web组件,例如JSP页面。这种方式允许共享...

    java web 实现 QQ 第三方登录 Demo 源码分享

    2. **Java Web开发**:Java Web是指使用Java技术进行Web应用程序开发,通常包括Servlet、JSP(Java Server Pages)、Filter、Listener等组件。在这个场景中,我们主要会用到Servlet来处理HTTP请求和响应。 3. **QQ...

    Servlet+Jsp--基于Java语言的Web宿舍管理系统.zip

    6. **请求转发和重定向**:理解两种在Servlet中导航页面的方式。 7. **异常处理**:学习如何优雅地处理程序中的异常。 8. **国际化和本地化**:了解如何为不同地区和语言提供支持。 此外,项目可能还涉及权限控制、...

    中南大学软件学院架构超强复习大全.docx

    - Web组件关联包括请求转发、请求重定向和包含,它们是实现Web应用程序不同组件间信息共享和功能聚合的关键。 - Web数据域包括页面范围、请求范围、会话范围和应用范围,用于存储和传递数据。 6. **MVC模式...

    WEBSSO-单点登录

    单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,允许用户在一次登录后,无需再次输入凭证即可访问多个相互关联的应用系统。它简化了用户在多个应用之间的身份验证过程,提高了用户体验,同时也降低了...

    架构探险 从零开始写javaweb框架 源代码

    Spring框架的IoC(控制反转)容器就是依赖注入的一种实现,它可以简化组件之间的关联和管理。 7. **模板引擎**: 为了简化视图层的开发,通常会使用模板引擎,如FreeMarker或Thymeleaf。这些引擎允许开发者使用特定...

    Web安全测试的步骤[参考].pdf

    OWASP(Open Web Application Security Project)列出的十大常见Web应用安全风险,包括注入攻击、失效的身份认证、跨站脚本(XSS)、不安全的直接对象引用、安全配置错误、敏感数据暴露、XSS防护不足、不安全的反...

    struts2+spring2+hibernate3 web应用 示例代码

    Spring的XML配置文件(如applicationContext.xml)会定义这些组件之间的关系和依赖。 Hibernate3是一个对象关系映射(ORM)框架,它简化了数据库操作。在"bookAdmin"中,Hibernate3可能通过实体类(如Book实体类)...

    URLRewrite URL重写组件

    该组件基于IIS的URL重写模块,与web.config配置文件紧密关联,提供了强大的规则定义能力。 ### 一、URL重写的基本概念 URL重写是将用户请求的实际URL转换为另一种形式,这个过程对用户透明,但服务器会根据新的URL...

    MVC 三层模式 有数据库

    **MVC(Model-View-Controller)模型是一种广泛应用于Web应用程序设计的架构模式,它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于实现业务逻辑、数据处理与用户...

    servlet-ppt java web相关servlet课件

    Servlet是Java Web开发中的核心组件,它用于处理HTTP请求并生成响应。本课件主要涵盖了以下几个方面的内容: 1. **Servlet基础**: - Servlet是一个Java类,它扩展了Java平台,使得Java可以用来处理Web应用程序中...

    flashfileupload组件的应用(struts1)

    Struts1是一个经典的Java Web开发框架,它提供了一种组织应用程序结构和控制流程的方式。在Struts1中,FlashFileUpload组件是一个用于处理文件上传功能的实用工具,它简化了用户通过网页上传文件到服务器的过程。这...

    java_web文档

    Java Web文档涵盖了Web应用开发中的核心概念和技术,主要包括Servlet、JSP、过滤器(Filter)、自定义标签(Custom Tags)以及会话跟踪等。以下是这些知识点的详细解释: 1. **Filter**:在Java Web中,Filter是...

    web框架考试复习重点

    ### Web框架考试复习重点知识点详解 #### 一、Struts2工作原理 Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它使用拦截器来处理用户请求,实现了业务逻辑与Web层的解耦。 **...

    Web基础笔试题

    联系不仅存在于两个实体类型之间,也可以是同一实体类型的内部联系,例如自关联。 8. **关系R和S的笛卡尔积** - **选项B** 正确。笛卡尔积的结果表的元数是原两个表的元数之和(r+s),而元组数则是两个表的元组...

    web.xml sample

    `web.xml`是Java Web应用程序的核心配置文件,用于定义应用的结构、行为和组件。它遵循Servlet和JavaServer Pages(JSP)规范,是Servlet容器(如Tomcat)解析和执行的重要部分。在这个例子中,我们将详细分析给出的...

    Web认证使用LDAP无线局域网控制器WLCs配置示例.docx

    Web认证是一种三层安全机制,用于在客户端接入无线网络前验证其身份。在启用Web认证后,客户端必须提供有效的用户名和密码才能访问网络资源。 在进行配置前,你需要具备以下先决条件: 1. 对思科轻型接入点(LAPs)...

Global site tag (gtag.js) - Google Analytics