欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JSP页面的动态包含和静态包含示例及介绍

程序员文章站 2022-06-11 14:20:16
一、静态包含 本文介绍jsp静态包含语句,即使用jsp的include指令来完成的包含操作。 jsp中,有两种包含其它文件的方式,一种是静态包含,一种是动态包含。本文介...

一、静态包含

本文介绍jsp静态包含语句,即使用jsp的include指令来完成的包含操作。
jsp中,有两种包含其它文件的方式,一种是静态包含,一种是动态包含。本文介绍其中的静态包含。

所谓静态包含,跟asp中的包含是一样的效果,即将所有包含的文件,先静态的包含进来,组成一个大的jsp文件,然后再经过编译器统一编译,生成html代码。

jsp静态包含的语句为:

复制代码 代码如下:

<%@ include file="file.jsp" %>

这里的file.jsp就是要包含的文件,这里可以使用目录进行包含,可以是相对目录,可以是绝对路径。

jsp静态包含时,需要注意编码的问题。

在jsp文件中,我们必须指定页面的contenttype为gbk、gb2312、utf-8等才能在文档里面输入中文。如下:

复制代码 代码如下:

<%@ page language="java" contenttype="text/html; charset=gbk" pageencoding="gbk" %>

但这里务必注意,当这个文件被静态包含时,它的编码如果跟包含它的文件的编码有一点点不一致,都会报错。所以,如果要静态包含,一定要把这两个文件的编码这一句(即contenttype)确保完全一致。

二、动态包含

在asp中没有动态包含这一说法,所有的包含都是静态包含。而jsp中,动态包含和静态包含有很大的区别。
本文来说一说jsp中的动态包含。

jsp中的动态包含不同于静态包含,它是在将各个jsp页面分别编译执行后,将大家执行的html结果,组合到一起向客户端浏览器输出的一种方式。

什么意思呢?

比如a.jsp,包含了b.jsp和c.jsp。a.jsp是无法共享b.jsp和c.jsp中设置的变量和函数的,也无法共享其逻辑结构。各自是分别编译并执行的。比如a执行后输出"a",b.jsp执行后输出"b",c.jsp执行后输出"c",那么最终将输出"abc"。

jsp动态包含的语法:

jsp动态包含不是使用的一个指令,而是使用的一个标签,如下:

复制代码 代码如下:
<jsp:include page="file.jsp" />

或者:
复制代码 代码如下:

<jsp:include page="file.jsp">
<jsp:param name="p1" vlaue="v1" />
</jsp:include>

上面两种语句并没有本质的区别,只是前者是一个简单的包含,而后者可以给被包含页面传递参数而已。参数传递到被包含页面时,可以使用request.getparameter("参数名")的方式来获取。

大家知道在asp中,如果使用include包含语句,那么被包含的文件上是不能带参数的。所以,在asp中的包含是跟jsp中的静态包含一样的。