Servlet高级应用——Include命令

一、方式1
对于 页面的公共部分 ,我们可以使用相同的 jsp 文件,并使用 include 指令导入,如此实现代码的优化。
告诉容器,在将 . jsp 文件转换成 .java 文件时,在指令所在的位置插入相应的文件的“内容“。插入的页面并未运行,而是机械的将内容

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

注:此时引入的是静态的jsp文件,它将引入的jsp中的源代码原封不动地附加到当前文件中,所以在jsp程序中使用这个指令的时候file里面的值(即要导入的文件)不能带多余的标签或是与当前jsp文件重复的东西。例如里面不要包含<html><body>这样的标签,因为是把源代码原封不动的附加过来,所以会与当前的jsp中的这样的标签重复导致出错

二、方式2

<jsp:include page=”/user/test”flush=”true”/>

此时引入执行页面或生成的应答文本.jsp:include标签导入一个重用文件的时候,这个文件是经过编译.

 flush 表示在读入包含内容之前是否清空任何现有的缓冲区。

注: 通俗点说就是附加这个要导入文件经过编译后的效果,所以可以含有与当前jsp程序中重复的内容,因为在附加过来之前就会被解析掉。

区别

include

jsp:include

执行时间

翻译阶段

在请求处理阶段执行

引入的内容

引入静态文本,先包含,后编译

引入执行页面或servlet所生成的应答文本. 被包含的文件先编译,后包含进来,然后显示

三、实际应用中的引用时的路径问题

相对路径

不以"/"开头的路径。

方式1  硬编码形式-

  <a href="../a2.jsp">点击访问a2.jsp</a> <!-- ../ 的用法为:向上跳一级 -->

  注:相对路径较易出错,在实际开发中建议使用绝对路径。

方式2  防止硬编码

使用String request.getContextPath()方法来即时获取应用

<%String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

<head>

    <base href="<%=basePath%>">

</head>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值