包含指令,真正改变的地方只有具体内容处:

方法1: 在每个jsp页面(HTML)都包含工具栏,头部信息,尾部信息,具体内容

方法2: 将工具栏,头部信息,尾部信息都分成各个独立的文件,使用的时候直接导入进来

方法2比1更好,如果采用第一种做法的话,很多代码会出现重复的问题。第二种形式的话,修改的时候很方便,因为是导入进来的。

包含分为静态包含和动态包含。

  • 静态包含

方式: <%@include file="路径"%>,很类似于<%@page=%>命令

info.html

<h2><font color="red">info.htm</font></h2>

info.jsp:

<h2><font color="green"><%="info.jsp"%></font></h2>

info.inc:

<h2><font color="blue">info.inc</font></h2>

include_demo01.jsp:

<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<h1>静态包含操作</h1>
<%@ include file="info.htm"%>
<%@ include file="info.jsp"%>
<%@ include file="info.inc"%>
</body>
</html>

结果如下:

3个文件都被包含进来,就是将内容直接替换,好比程序中的变量一样。

  • 动态包含:

方式:

<jsp:include page=“{要完结的路径|<%=表达式%>}” flush="true/false">

  <jsp:param name="参数名称" value="参数内容"/>

</jsp:include>

只要代码以<>出现的jsp代码,都称为标签指令,所有的标签都要完结:

例子:include_demo02.jsp:

<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<h1>动态包含操作</h1>
<jsp:include page="info.htm"/>
<jsp:include page="info.jsp"/>
<jsp:include page="info.inc"/>
</body>
</html>

如果使用参数的话先定义一个接收参数的文件:

<%@ page contentType="text/html" pageEncoding="GBK"%>
<h1>参数一:<%=request.getParameter("name")%></h1>
<h1>参数二:<%=request.getParameter("info")%></h1>

再定义一个传递参数的文件:

注意,要传递变量通过表达式完成,而不用out.println()

<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<h1>动态包含操作</h1>
<%
String username = "LiXingHua" ;
%>
<jsp:include page="receive_param.jsp">
<jsp:param name="name" value="<%=username%>"/>
<jsp:param name="info" value="www.mldnjava.cn"/>
</jsp:include>
</body>
</html>

现在,有静态包含和动态包含,使用哪种?

看下面的例子:

include.jsp;

<%
int x = 10 ;
%>
<h1>include.jsp -- <%=x%></h1>

下面通过静态包含语句,包含以上文件,并定义一个与之前一样同名的变量:

include_demo04:

<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<%
int x = 100 ; // 变量重复
%>
<h1>include_demo04.jsp -- <%=x%></h1>
<%@include file="include.jsp"%>
</body>
</html>

程序运行结果,出现500错误,因为x变量重复了,原因:静态包含的处理原则:

静态包含属于先包含后处理:

动态包含include_demo05.jsp:

<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>www.mldnjava.cn,MLDN高端Java培训</title></head>
<body>
<%
int x = 100 ; // 变量重复
%>
<h1>include_demo04.jsp -- <%=x%></h1>
<jsp:include page="include.jsp"/>
</body>
</html>

结果如下:

并没有发生任何错误,因为动态包含的时候,如果包含动态页面,原则是先处理后包含的方式,包含的是处理的结果。

所以,动态包含操作更容易使用,因为开发中容易发生重复定义变量的问题,所以建议多使用动态包含。

JSP基本语法--包含指令<%@include file="路径"%> <jsp:include page>的更多相关文章

  1. jsp 中 include指令 用法, <%@ include file="..."%> 和 <jsp:include page="..." flush="true" />的区别?

    原文链接https://blog.csdn.net/u012187452/article/details/51779052 1. 什么是jsp 文件? 个人理解.  jsp 是一个容器,可以将我们编写 ...

  2. JSP基本语法总结【1】(jsp工作原理,脚本元素,指令元素,动作元素)

    时隔半年,回头对jsp复习整理一下,温故而知新. jsp工作原理: jsp服务器管理jsp页面分两个阶段:转换阶段(translation phase)和执行阶段(execution phase). ...

  3. <%@ include file="">和<jsp:include file="">区别

    <%@include file="a.jsp"%>是在编译时加入,所谓静态,就是在编译的时候将jsp的代码加入进来再编译,之后运行. <jsp:include p ...

  4. include file与jsp:include 的区别

    <%include   file="a.jsp"%>静态包含,先加入再编译,就是在编译的时候将a.jsp的代码加入进来在编译,只会生成一个servlet文件,而且不同a ...

  5. jsp的静态包含与动态包含:<%@ include file="" %>和<jsp:include page=""></jsp:include>区别与分析

    <%@ include file="" %>是将文件原封不动的copy进现有的文件中,像是拼接好后,再编译成为servlet运行. <jsp:include pa ...

  6. Jsp的语法和指令

    Jsp的三种注释 前端语言注释:<!-- --> 会被转译,也会被发送,但是不会被浏览器执行 java语言注释: 会被转译,但是不会被servlet执行 Jsp注释:<%--  -- ...

  7. <%@ include file=""%>与<jsp:include page=""/>两种方式的作用

    一.前言 身为一名coder有太多太多的知识点要去学,太多太多的东西要去记.往往一些小细节也就难免疏忽,但悲催的是多数困恼你的bug就是因为这些微不足道的知识点.我们又不是机器人,怎么可能什么都记得了 ...

  8. 2019/7/18 --1.<%@ include file=""%>与<jsp:include page=""/>两种方式的作用

    一.前言 身为一名coder有太多太多的知识点要去学,太多太多的东西要去记.往往一些小细节也就难免疏忽,但悲催的是多数困恼你的bug就是因为这些微不足道的知识点.我们又不是机器人,怎么可能什么都记得了 ...

  9. <%@ include file=""%>与<jsp:include page=""/>两种方式的作用以及传值

      一:使用    1.include指令: 1 <%@include file="文件的绝对路径或者相对路径"%> file属性是必填的(绝对或相对路径),但它不支持 ...

随机推荐

  1. SLF4J 使用简记

    SLF4J 使用简记 使用 SLF4J有一段时间了,在此作上些许记录,以作提示. 本文使用的实际实现的日志框架是 Log4j,所以使用 log4j.properties 文件 SLF4J 需要引入的j ...

  2. Servlet综述

    Servlet 是在服务器上运行的小程序.这个词是在 Java applet 的环境中创造的.虽然后者已很少被使用,但 servlet 却发展的很好.是一般面试都会常考的知识. 由来 servlet ...

  3. [妙味JS基础]第十二课:数组随机、数组去重

    知识点总结 json var json={'name':'abc'} 属性加分号为安全的写法 json: 只能用for in 数组:for和for in 都可以使用 json没有length和下标 数 ...

  4. Google科学家前腾讯副总裁吴军将出席第二届万物互联创新大会

    当越来越多的科技产品注入互联网的基因,"万物互联"的模式悄然兴起.第二届万物互联创新大会(B12大会)将于2016-11-13日在杭州市余杭区隆重召开.Google科学家前腾讯副总 ...

  5. ckplayer 项目实战

    <div class="control-group" id="videoDiv" style="display: none;"> ...

  6. 苹果dock效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. hdu_5904_LCIS(DP)

    题目链接:hdu_5904_LCIS 题意: 给你两串数,让你找这两串数的最长公共子序列,并且这个最长公共子序列是连续的数值 题解: 我们首先先分别处理出a,b的每个数的最长连续的长度 然后随便找一串 ...

  8. Cmake常用指令

    1. cmake_minimum_required(VERSION 2.8)           检查cmake的版本,至少为2.8 2. project(helloworld)           ...

  9. WCF、Web API、WCF REST、Web Service的区别

    Difference between WCF and Web API and WCF REST and Web Service   The .Net framework has a number of ...

  10. openwrt 汉化

    make menuconfig 添加luci LuCI--->Collections----- <*> luci 添加luci的中文语言包 LuCI--->Translatio ...