jsp基础语法【04】_包含指令

                                                -----根据mldn李兴华老师编书手稿整理

什么是包含:

    在页面开发的时候,一些代码难免会有重复使用的情况,比如说A页面有一段代码a,B页面和C页面都能用到a这段代码,那么B和C页面就把A页面包含进来,自然的a这段代码也被包含进BC页面了,这样就实现了B、C页面能用到a代码了,避免了重复的书写a代码。

包含的意义:

   使用包含操作,可以将一些重复的代码包含进来继续使用。

 

   一般分为如上四个区域。

   真正在改变的地方只是具体内容,因为根据不同的用户浏览的不同,那么肯定这上面会存在差别  现在就有两种做法实现以上一种功能

  方法一:在没有一个jsp页面中(html),都包含工具栏、头部信息、尾部信息、具体内容

方法二:  将工具栏、头部信息分成各个独立的文件,以后用的时候直接导进来

很明显现在第二种方法会比第一种更好,因为如果采用第一中做法,则很多的代码会出现重复的问题,而如果采用了第二种形式以后修改的时候回很方便

在jsp中如果想实现包含的操作,有两种做法:  静态包含和动态包含

静态包含

先来看一个包含的程序

第一个页面  info.html

  
  
  
  
  1. <h2><font color="red">info.html</font></h2> 

第二个页面  info.jsp

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

第三个页面 baohan.jsp

  
  
  
  
  1. <%@ page contentType="text/html" pageEncoding="GB2312"%> 
  2. <html> 
  3. <head> 
  4. <title>赵玉强的javaweb实战开发</title> 
  5. </head> 
  6. <body> 
  7.       <h1>静态包含操作</h1> 
  8.       <%@ include file="info.html"%> 
  9.       <%@ include file="info.jsp"%> 
  10. </body> 
  11. </html> 

    运行一下baohan.jsp页面就可以看到info.html和info.jsp页面的内容,说明info.html和info.jsp页面的内容成功包含进了baohan.jsp页面中来了。

   但是问题出来了,我们运行后,点击鼠标右键-查看源代码,可以发现静态包含就是 将内容进行了直接的替换,就好比程序中定义的变量一样,会直接将内容导入进来。

动态包含

动态包含的基本语法:

  1. 使用<jsp:include>指令可以完成动态包含的操作,与之前的静态包含不同,动态包含语句,可以自动区分被包含的页面时静态还是动态。
  2. 动态包含语法:
  •  不传递参数:

        <jsp:include page=""/>

  • 传递参数:

          <jsp:include page="">

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

           </jsp:include>

看一个接受参数的包含程序

receiver_param.jsp

  
  
  
  
  1.  <%@ page contentType="text/html" pageEncoding="GB2312"%> 
  2.  <h1>参数一:<%=request.getParameter("name")%></h1>  //输出name
  3.  <h1>参数二:<%=request.getParameter("info")%></h1>  //输出info

includeDamo.jsp

  
  
  
  
  1.  <%@ page contentType="text/html" pageEncoding="GB2312"%> 
  2.  <html> 
  3.  <head> 
  4.  <title>包含参数传递的包含页面</title> 
  5.  </head> 
  6.  <body> 
  7.            <h1>动态包含操作</h1> 
  8.           <jsp:include page="receiver_param.jsp">  //将页面包含进来
  9.                 <jsp:param name="name" value="zhaoyuqiang"/>  //对name赋值
  10.                <jsp:param name="info" value="www.baidu.com"/>  //给info赋值
  11.           </jsp:include>  //完结
  12.  </body> 
  13.  </html> 

那么新的问题就出现了,上述includeDamo.jsp中的 value值"zhaoyuqiang"是个变量又该如何?

我们只需要把includeDamo.jsp改成如下: 

  
  
  
  
  1.  <%@ page contentType="text/html" pageEncoding="GB2312"%> 
  2.  <html> 
  3.  <head> 
  4.  <title>包含实例操作</title> 
  5.  </head> 
  6.  <body> 
  7.           <
  8.              String username="zhaoyuqiang"
  9.          %> 
  10.            <h1>动态包含操作</h1> 
  11.           <jsp:include page="receiver_param.jsp"> 
  12.                 <jsp:param name="name" value="<%=username%>"/>  //将value的取值用<%=%>表达式的形式表示
  13.                <jsp:param name="info" value="www.baidu.com"/> 
  14.           </jsp:include> 
  15.  </body> 
  16.  </html> 

注意事项:

 1. 静态包含和动态包含都属于包含,但是动态包含的操作更容易,因     为在开发中难免会出现重复     定义变量的问题,所以建议读者一     定要多使用动态包含

2 .注意两种包含的区别,静态包含是<%include file=""%>,而动态包含     是<jsp:include page=""/>  

3.   一定不要忘记完结。静态包含是没有完结的,而动态包含有完结。      注意动态包含两种包含的     完结。<jsp:include page=""/>

          和

         <jsp:include page="">

         </jsp:include>  

你可能感兴趣的:(web开发,jsp基础语法)