JSP动作对象

本文记录Java学习过程中遇到的JSP动作对象~

JSP动作元素用来控制JSP的行为,执行一些常见的JSP页面动作。通过动作元素可以实现使用多行Java代码能够实现的效果,如包含页面文件、实现请求转发等。

<jsp:include>动作对象

在JSP页面中,为了把其他资源的输出内容插入到当前JSP页面的输出内容中,JSP技术提供了<jsp:include>动作元素,<jsp:include>动作元素的具体语法格式如下所示:

<jsp:include page="relativeURL" flush="true|false" />

在上述语法格式中,page属性用于指定被引入资源的相对路径,flush属性用于指定是否将当前页面的输出内容刷新到客户端,默认情况下,flush属性的值为false。

<jsp:include>包含的原理是将被包含的页面编译处理后将结果包含在页面中。当浏览器第一次请求一个使用<jsp:include>包含其他页面中,之后编译包含页面,最后将两个页面组合的结果回应给浏览器。

需要注意的是,虽然include指令和<jsp:include>标签都能够包含一个文件,但它们之间有很大的区别,具体如下:

<jsp:include>标签中要引入的资源和当前JSP页面是两个彼此独立的执行实体,即被动态引入的资源必须能够被Web容器独立执行。而include指令只能引入遵循JSP格式的文件,被引入文件与当前JSP文件需要共同合并才能翻译成一个Servlet源文件;
<jsp:include>标签中引入的资源是在运行才包含的,而且只包含运行结果;而include指令引入的资源是在编译时期包含的,包含的是源代码;
<jsp:include>标签运行原理与RequestDispatcher.include()方法类似,即被包含的页面不能改变响应状态码或者设置响应头,而include指令没有这方面的限制。

动态包含与静态包含的区别可以用下图来总结:

<jsp:forward>动作对象

<jsp:forward>可以进行请求转发,其基本语法格式为:

<jsp:forward page="targetURL" />

标签: none