JSP之Web组件复用

一.静态包含

  • 含义:在JSP源文件转换成对应Servlet源文件时将当前JSP文件和其包含的所有其他文件合并成一个Servlet文件
  • 使用:JSP中的include伪指令实现静态包含
    <%@ include file="header.jsp" %></br>
    属性file是指包含文件的相对路径。
  • 规则:
    file属性值不能是一个动态表达式
    file属性值不能向被包含的文件传递参数
    被包含的文件之间可以共享参数
    两个jsp文件会生成一个.java文件

二.动态包含

  • 含义:动态包含是指客户端请求时,将请求转发给当前JSP文件包含的其他对象
    include动作指令:相当于Servlet中的RequestDispatcher.include()
    forward指令:相当于Servet中的RequestDispather.forward()方法
  • 使用:<jsp:include page="header.jsp?userName=ZS" flush="true"></jsp:include>
  • 规则:
    include允许当前页面将客户端请求暂时转交给所包含的对象,一旦对象执行完毕,返回当前JSP页面
  • 注意:
    1.动态包含中的包含文件和被包含文件各自独立编译、执行,彼此之间不能访问各自定义的变量(即page作用域范围内的对象),只能共享request范围、session范围、application范围对象
    2.page属性值可以是相对路径或代表相对路径的表达式。
    3.page属性指向的文件既可以是动态文件也可以是静态文件。

动态引入的三种方式:
1.

`<jsp:include page="header.jsp?userName=ZS" flush="true"></jsp:include>`

2.`

<jsp:include page="header.jsp">
    <jsp:param value="userName" name="Ls"/>
</jsp:include>`
<%request.setAttribute("userName", "ww"); %>
<%request.getRequestDispatcher("header.jsp").forward(request, response); %>

include伪指令与include动作指令的比较:

include伪指令 include动作指令
规则 <%@include %> <jsp:include />
编译时间 较慢(资源必须被解析) 较快
执行时间 较快 较慢(因为每次请求资源必须被解析)
灵活性 较差(页面内容必须固定) 较好(页面在运行时可动态选择)
动作发生的时间 页面转换期间 请求期间
被包含的内容 文件的内容 页面的输出
产生Servlet数目 1 n

forward动作指令:
forward动作指令允许将客户请求转发到另一个资源文件,即每当遇到此动作指令就停止执行当前的JSP,转而执行被转发的指定资源

  • 使用:
    <jsp:include page="header.jsp?userName=ZS" flush="true"></jsp:include>

forward指令与include指令的区别:

  1. forward动作指令在调用转发操作后不会继续处理指令后的任何代码
  2. include动作指令在调用转发操作后,完成转发操作后将继续处理指令后的代码

三.使用JavaBean组件

JavaBean概述:

JavaBean通过封装属性和方法成为具有某种功能
或者处理某个业务的对象,简称Bean
JavaBean中所有的属性最好定义为private,每个属性都定义public的setter和getter方法对其进行操作。

JavaBean命名规则:

  1. 如果属性不是布尔类型,getter方法前缀必须是get
  2. 如果属性是布尔类型,getter方法前缀必须是get或is
  3. Setter方法的前缀必须是set
  4. 将属性的首字母改成大写,添加合适的前缀作为getter和setter方法的名字
  5. Setter方法签名必须表示为Public,具有void返回类型和一个表示属性类型的参数
  6. Getter方法签名必须标识为public,不带参数,并具有一个该属性类型的返回类型

在JSP中使用JavaBean:
1.在JSP中使用jsp:userBean操作元素来加载JavaBean程序

<jsp:useBean id="user" class="net.onest.bean.User">

</jsp:useBean>

2.使用jsp:setProperty操作元素来设置JavaBean的属性

<jsp:setProperty property="userName" name="user" value="zs" param="name"/>

3.使用jsp:getProperty操作元素获取JavaBean的元素值

<jsp:getProperty property="userName" name="user"/>

猜你喜欢

转载自blog.csdn.net/qq_44867340/article/details/108748625