01---jsp基本语法03(包含指令)

整jsp中包含两种包含指令
1、包含指令的意义:
 一般正常的页面组成包含四个部分:上中下和左;
 真正在改变的地方只是具体内容处,因为根据不同的用户浏览的不同,
 那么肯定这个面会存在差异,现在基友两种做法实现以上的功能:
 方法一:在每一个jsp页面中都包含工具栏,头部信息,尾部信息,具体内容:
 方法二:将工具栏、头部信息,尾部信息都分成各个独立的文件,以后用的时候之间导入即可:
 很明显第二种方法比第一种方法好,减少了代码的重复,以后修改方便;
 包含分为动态包含和静态包含:
 静态包含:
  <%@ include file="要包含的文件路径"%>
  ·info.html文件的内容:
   <h2><font color="red">info.html</font></h2>
  ·info.jsp文件的内容
   <h2><font color="green"><%="info.jsp" %></font></h2>
  ·info_include.jsp文件的内容:
   <%@ page contentType="text/html" pageEncoding="gbk"%>
   <html>
   <head><title>这是测试</title></head>
   <body>
    <h1>静态包含操作</h1>
    <%@ include file="info.html"%>
    <%@ include file="info.jsp"%>
   </body>
   </html>
 静态包含就是将内容进行了直接的替换,就好比程序中定义了变量一样直接使用即可;

 动态包含:
  动态包含使用的是<jsp:include>指令完成的;与静态包含不同的是可以自动区分
   被包含的页面是静态还是动态;
  ·不传参数:
   <jsp:include page="{要包含的文件路径|<%=表达式%>}" flush="true|flase"/>
  ·传参数:
   <jsp:include page="{要包含的文件路径|<%=表达式%>}" flush="true|flase">
    <jsp:param name="参数名称" value="参数值">
    ……
   </jsp:include>
  只要是<>的代码都是标签代码,标签代码必须完结;
   <%@ page contentType="text/html" pageEncoding="gbk"%>
   <html>
   <head><title>这是测试</title></head>
   <body>
    <h1>动态包含操作</h1>
    <jsp:include page="info.html"/>
    <jsp:include page="info.jsp"/>
   </body>
   </html>
  标签指令必须完结:
   <%@ page contentType="text/html" pageEncoding="gbk"%>
   <h1> 参数一:<%=request.getParameter("name")%></h1>
   <h1> 参数二:<%=request.getParameter("info")%></h1>
  此时,接收的是从标签中传递过来的参数,可以根据自己的需要传递任意多个参数;
   receive_param.jsp:
    <%@ page contentType="text/html" pageEncoding="gbk"%>
    <h1> 参数一:<%=request.getParameter("name")%></h1>
    <h1> 参数二:<%=request.getParameter("info")%></h1>
   include_demo03.jsp:
    <%@ page contentType="text/html" pageEncoding="gbk"%>
    <html>
    <head><title>这是测试</title></head>
    <body>
     <h1>动态包含操作</h1>
     <jsp:include page="receive_param.jsp">
      <jsp:param name="name" value="lid"/>
      <jsp:param name="info" value="yuj"/>
     </jsp:include>
    </body>
    </html>
   但是此时一个新的问题出现了,如果现在希望传递的参数内容是个变量
   该如何?
    <%@ page contentType="text/html" pageEncoding="gbk"%>
    <html>
    <head><title>这是测试</title></head>
    <body>
     <h1>动态包含操作</h1>
     <%
      String username="lid";
     %>
     <jsp:include page="receive_param.jsp">
      <jsp:param name="name" value="<%=username%>"/>
      <jsp:param name="info" value="yuj"/>
     </jsp:include>
    </body>
    </html>

   要传递变量,就是通过表单式完成;
2、该使用哪种语句:、
 如果想要确定使用何种方式更容易,可以通过一段代码完成:
  include.jsp:
   <%
    int x=10;
   %>
    <h1>include.jsp---><%=x%></h1>
  以上为一个被包含的页面,这个页面中首先定义了一个x的变量,之后进行输出,
  
  下面通过静态包含语句,包含以上的页面,并在页面中也定义一个变量x:
   <%@ page contentType="text/html" pageEncoding="gbk"%>
   <html>
   <head><title>这是测试</title></head>
   <body>
    <h1>动态包含操作</h1>
    <%
     int x=0;
    %>
    <h1>这是info_include03中的x---》<%=x%></h1>
    <%@ include file="include.jsp"%>
   </body>
   </html>
  此时,程序运行时出现了500的HTTP状态码,那么很明显的就是表示程序的错误,
   提示信息问x变量重复了;
  之所以产生这个问题,主要的原因是静态包含的处理原则:
   静态包含的处理原则就是相当于直接替换,就是被包含的页的代码相当于直接
    放在了包含页中------先包含,后处理;

  动态包含:
   <%@ page contentType="text/html" pageEncoding="gbk"%>
   <html>
   <head><title>这是测试</title></head>
   <body>
    <h1>动态包含操作</h1>
    <%
     int x=0;
    %>
    <h1>这是info_include03中的x---》<%=x%></h1>
    <jsp:include page="include.jsp"/>
   </body>
   </html>
  以上运行没有错误,原因是动态包含是先处理后包含,包含的是处理后的结果;
  很明显,第二种(动态)包含的操作更加容易使用,因为在开发中难免会出现重复变量的原因;
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bzuld

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值