一.静态包含
含义:在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属性指向的文件既可以是动态文件也可以是静态文件。
动态引入的三种方式:
`<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动作指令的比较:
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"/>