zoukankan      html  css  js  c++  java
  • 10.Web组件复用

    1.静态包含(一个指令)

    在软件工程中构建可复用组件可极大的提高软件生产效率、增强系统的可维护性
    HTML标记对于一个web应用系统中的页面都是通用的,比如公司标志、版权声明、导航菜单
    JSP中引用的web组件复用的两种方式:静态包含、动态包含。

    在JSP源文件转换成对应Servlet源文件时将当前JSP文件和其包含的所有其他文件合并成一个Servlet文件
    JSP中的include伪指令实现静态包含
    include标准语法:<%@include file=“地址”%>      

    包含文件中要避免使用<html><body>等可能会影响原JSP网页中标签的元素
    <%@include %>指令只有一个属性file
    <%@include%>指令可以放在JSP页面的任意位置,其file所指的路径是相对路径

    静态包含规则:

    1.file属性值不能是一个动态表达式
    错误示例:<% String myUrl=“copy.html” %><%@ include file=“<%=myUrl%>” %>

    2.

    File属性值不能向被包含的文件传递参数

    错误示例:<%@ include file=“other.jsp?abc=qwe”%>

    3.

    由于被包含文件之间可以共享变量,尽量减少文件之间的联系,降低耦合度,增强可复用度

    2.动态包含

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    动态包含是指客户端请求时,将请求转发给当前JSP文件包含的其他对象
    使用JSP的include动作指令和forward动作指令实现动态包含
    include 和forward相当与Servlet中的RequestDispatcher.include()和RequestDispatcher.forward()方法

     include动作指令:

    include允许当前页面将客户端请求暂时转交给所包含的对象,一旦对象执行完毕,返回当前JSP页面
    include动作指令相当于方法的调用
    标准语法:<jsp:include page=“地址” flush=“true”>

    动态包含作用域范围:

    动态包含中的包含文件和被包含文件各自独立编译、执行,彼此之间不能访问各自定义的变量(即page作用域范围内的对象),只能共享request范围、session范围、application范围对象

    include 动作指令规则:

    page属性值可以是相对路径或代表相对路径的表达式;

    page属性指向的文件既可以是动态文件也可以是静态文件

    两种包含的比较:

     

    include伪指令

    include动作指令

    规则

    <%@include     %>

    <jsp:include  />

    编译时间

    较慢(资源必须被解析)

    较快

    执行时间

    较快

    较慢(因为每次请求资源必须被解析)

    灵活性

    较差(页面内容必须固定)

    较好(页面在运行时可动态选择)

    动作发生的时间

    页面转换期间

    请求期间

    被包含的内容

    文件的内容

    页面的输出

    产生Servlet数目

    1

    n

     变静态包含被包含页面可以访问包含页面中的变量

    静态包含所包含的文件能够含有影响整个页面的JSP内容(如:import语句,声明)

    参数的传递:

    静态包含不存在参数传递的问题
    动态包含可以传递参数:
    直接在包含动作中传递
    使用<jsp:param>
    使用request.set/getAttribute()方法

     使用注意事项:

    静态包含:
    被包含页面中的指令不能与包含页面中有冲突(要注意变量多次声明问题)
    动态包含:
    使用XML格式,不要忘记标签封口

    forward动作指令:

    forward动作指令允许将客户请求转发到另一个资源文件,即每当遇到此动作指令就停止执行当前的JSP,转而执行被转发的指定资源
    语法格式:<jsp:forward page=“地址”/>
    page属性必须存在,用于指定要包含的静态或动态文件,可以是字符串或表达式

    forward指令与include动作指令

    forward动作指令在调用转发操作后不会继续处理指令后的任何代码

    include动作指令在调用转发操作后,完成转发操作后将继续处理指令后的代码

    动态指令的参数传递:

    使用<jsp:param name=“” value=“”/>可以传递一个或多个参数给动态页面
    与include动作指令、forward动作指令一起使用
    注意:<jsp:param />标签传递参数时,会替换request对象同名的参数值

    3.使用JavaBean组件;

    概述:

    JavaBean通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称Bean

    JavaBean中所有的属性最好定义为private,每个属性都定义public的setter和getter方法对其进行操作

    JavaBean命名规则:

    JSP使用JavaBean:

    在JSP中使用<jsp:useBean>操作元素来加载JavaBean程序

    使用<jsp:setProperty>操作元素来设置JavaBean的属性值

    使用<jsp:getProperty>操作元素获取JavaBean的属性值

    useBean动作指令:

    属性

    功能描述

    示例

    id

    使用此变量名来分辨不同的Bean

    id=“address”

    scope

    JavaBean存在的范围(作用域范围)

    scope=“session”

    class

    JavaBean对应的类名

    class=“AddressBean”

    type

    引用JavaBean变量的类型

    type=“AddressBean”

    beanName

    装载序列化JavaBean名或创建实例类名,使用java.beans.Beans.instantiate方法

    beanName=“AddressBean”

    setProperty动作指令:

    属性

    功能描述

    name

    JSP页面中的JavaBean标识名称

    property

    JavaBean的属性名称

    value

    被赋予JavaBean属性的新值

    param

    HttpServletRequest的参数(参数名称与JavaBean名称不相同时需要设置)

    getProperty()动作指令:
     

    属性

    功能描述

    name

    JSP页面中的JavaBean标识名称

    property

    JavaBean的属性名称

     
  • 相关阅读:
    86. Partition List
    328. Odd Even Linked List
    19. Remove Nth Node From End of List(移除倒数第N的结点, 快慢指针)
    24. Swap Nodes in Pairs
    2. Add Two Numbers(2个链表相加)
    92. Reverse Linked List II(链表部分反转)
    109. Convert Sorted List to Binary Search Tree
    138. Copy List with Random Pointer
    为Unity的新版ugui的Prefab生成预览图
    ArcEngine生成矩形缓冲区
  • 原文地址:https://www.cnblogs.com/Firesun/p/9705867.html
Copyright © 2011-2022 走看看