一.静态包含
- 含义:在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指令的区别:
- forward动作指令在调用转发操作后不会继续处理指令后的任何代码
- include动作指令在调用转发操作后,完成转发操作后将继续处理指令后的代码
三.使用JavaBean组件
JavaBean概述:
JavaBean通过封装属性和方法成为具有某种功能
或者处理某个业务的对象,简称Bean
JavaBean中所有的属性最好定义为private,每个属性都定义public的setter和getter方法对其进行操作。
JavaBean命名规则:
- 如果属性不是布尔类型,getter方法前缀必须是get
- 如果属性是布尔类型,getter方法前缀必须是get或is
- Setter方法的前缀必须是set
- 将属性的首字母改成大写,添加合适的前缀作为getter和setter方法的名字
- Setter方法签名必须表示为Public,具有void返回类型和一个表示属性类型的参数
- 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"/>