jsp 页面静态导入和动态导入
静态导入
<%@include file="head.jsp" %>
动态导入
动态导入只有在执行到它的时候才加载
<%--JSP动作元素,JSP标签元素--%>
<jsp:include page="header.jsp">
<jsp:param value="值" name="变量名"/>
</jsp:include>
两者的区别:
静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去作用,只是插入被导入页面的body内容。
静态导入是先包含,再编译,两个页面融合成一个整体Servlet,最终会生成一个.java文件和.class文件;静态包含时,包含页面上定义的java变量,在被包含页面上可以直接使用,反之也可以。
动态导入是先编译,再包含,在Servlet中使用include方法来引入被导入页面的内容,最终会生成两个.java文件和.class文件;动态包含时,包含页面上定义的java变量,在被包含页面上是不能访问的,要传递参数,需要通过jsp:param来传递。反之则不行。
生成的文件不同,静态的包含是将两个jsp文件二合一,生成一个以包含页面命名的servlet和class文件,动态包含的两个jsp文件各自生成自己的servlet和class文件。
动态导入用的元素是page。静态导入用的是file。
静态导入传递参数:
传参方式一:在浏览器请求localhost:8080/a.jsp?name=jack&age=18时被包含的jsp页面是可以访问name和age该参数的。
传参方式二: 包含的页面可以传递参数给被包含的页面。
动态导入传递参数:
<jsp:include page="header.jsp" >
<jsp:param name="name" value="我是测试参数"/>
</jsp:include>
注:静态导入和动态导入传递参数有中文,一定要在include之前设置request的编码为UTF-8,否则到被包含页面取值会乱码。如果是动态导入在客户端访问包含页面时地址栏后面直接加上参数后传递,这种形式的传参是客户端送来的,但是这两个页面的request对象不是同一个,因为包含的页面可以向被包含的页面传递参数,所以被包含的request对象含的参数个数应该大于等于包含页面的参数个数的。
静态导入
<%@include file="head.jsp" %>
动态导入
动态导入只有在执行到它的时候才加载
<%--JSP动作元素,JSP标签元素--%>
<jsp:include page="header.jsp">
<jsp:param value="值" name="变量名"/>
</jsp:include>
两者的区别:
静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去作用,只是插入被导入页面的body内容。
静态导入是先包含,再编译,两个页面融合成一个整体Servlet,最终会生成一个.java文件和.class文件;静态包含时,包含页面上定义的java变量,在被包含页面上可以直接使用,反之也可以。
动态导入是先编译,再包含,在Servlet中使用include方法来引入被导入页面的内容,最终会生成两个.java文件和.class文件;动态包含时,包含页面上定义的java变量,在被包含页面上是不能访问的,要传递参数,需要通过jsp:param来传递。反之则不行。
生成的文件不同,静态的包含是将两个jsp文件二合一,生成一个以包含页面命名的servlet和class文件,动态包含的两个jsp文件各自生成自己的servlet和class文件。
动态导入用的元素是page。静态导入用的是file。
静态导入传递参数:
传参方式一:在浏览器请求localhost:8080/a.jsp?name=jack&age=18时被包含的jsp页面是可以访问name和age该参数的。
传参方式二: 包含的页面可以传递参数给被包含的页面。
动态导入传递参数:
<jsp:include page="header.jsp" >
<jsp:param name="name" value="我是测试参数"/>
</jsp:include>
注:静态导入和动态导入传递参数有中文,一定要在include之前设置request的编码为UTF-8,否则到被包含页面取值会乱码。如果是动态导入在客户端访问包含页面时地址栏后面直接加上参数后传递,这种形式的传参是客户端送来的,但是这两个页面的request对象不是同一个,因为包含的页面可以向被包含的页面传递参数,所以被包含的request对象含的参数个数应该大于等于包含页面的参数个数的。