一直以来做项目都是用@include,很少去用到JSP:include,最近一段时间重新学习了一些JSP相关的知识,包括过滤器等等,认识到了自己的许多不足,在这里记录下。
1、JSP:include,它有一个属性为page,这里的page可以是相对路径,也可以是绝对路径(是相对于当前项目的路径,也即是它会自动帮你在当前项目中去找)。比如我现在的项目是JSPTest,我在page里面写了/page/index.jsp,这里JAVA应用服务器就会到JSPTest项目下去查找page/index.jsp,这是相对于本项目的。
JavaEye上一位朋友说了:(在这里可以看到http://www.iteye.com/problems/34149,感谢那位朋友,也让自己明白了)
只要搞清楚“/”代表的是什么就行了:
(1).在form,js,css,sendRedirect里边,代表的是http://127.0.0.1/;
(2).在web.xml中的url-pattern,forword代表的是 http://127.0.0.1/myweb。myweb是项目名
研究了一下TOMCAT编译生成的代码(这里我用的是TOMCAT,主要是快嘛),发现当我们用JSP:include标签的时候,它会生成代码
org.apache.jasper.runtime.JspRuntimeLibrary.include(request,response, path , out, true);
这里它会作为一个参数传入方法中,这决定了我们并不能在page里面进行相应的代码编写,比如:
<jsp:include page="<%request.getContextPath%>/page/index.jsp"/>
这样的代码是会报错的,我们可以换一种方法:
<% String pagePath = request.getContextpath+"/page/index.jsp";%>
<jsp:include page="<%=pagePath%>"/>
这样就可以正确编译并运行。
2、另外一个包含的标签是<%@include%>这个它需要通过file属性来指定包含的文件,由于它是页面标签(通过%来指定的),这样就决定了我们不可以在里面另外通过〈%%〉来指定另外的变量,只可以直接指定页面名。这里也可以通过相对路径和绝对路径来指定。它和上面的jsp:include一样,当用绝对路径进行指定时,它都是相对于当前项目的。这两个标签最大的区别是它们加入页面的方式。当用@include时,所包含的页面会被直接加入到本页面进行编译,而用jsp:include时并不是这样,而只是单单包含已经编译完的页面代码,这个就可以较快地识别已经改变的内容,而用@include由于是包含了全部内容,所以有时的改变并不能立即反映出来。
J2EE果然博大精深,还是要好好学习的。
分享到:
相关推荐
JSP:include和include指令区别,对应我的博客 blog.csdn.net/svitter
NULL 博文链接:https://dreamzhong.iteye.com/blog/1127436
考虑下面JSP文件代码片断: <jsp:include page=”test2.jsp”> <jsp:param name=”username” value=”accp”/> </jsp:include> 以下( )代码片断放置在test2.jsp中不会导致错误。
用jsp:include控制动态内容的方法.docx
通常当应用程序中所有的页面的某些部分(例如标题、页脚和导航栏)都相同的时候,我们就可以考虑用include。具体在哪些时候用< %@ include file=” ”%>,哪些时候用< jsp:include page=” ” flush=...
本文实例讲述了使用jsp:include控制动态内容的方法。分享给大家供大家参考,具体如下: 清单 1. JSP include 伪指令 <![CDATA[ <%@ page language=java contentType=text/html %> <html> <head&...
问题描述: 网上购物系统,商品包括mp3和mp4两项...中使用jsp:include动作包括了选购商品信息item.jsp文件。 实现步骤: 1.创建 index.jsp文件; 2.创建order.jsp文件; 3.创建item.jsp文件; 4.运行结果并完成实验报告。
在JSP页面和文档中使用写入文本的模板 在JSP页面中,为了把其他资源的输出内容插入到当前JSP页面的输出内容中,JSP技术提供了<jsp:include>动作元素。其语法格式为: <jsp:include page="relativeURL" flush="true|...
下面小编就为大家带来一篇springMVC使用jsp:include嵌入页面的两种方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
采用jsp开发的前端分页,抽取成一个公共的jsp,在需要的界面采用 <jsp:include>引入就行,白色按钮,黑色选中样式 <div style="display: block;height: 200px;"> <jsp:include page="pagination.jsp" flush="true">...
用jsp:include动作实现 <jsp include page=”included.jsp” flush>它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 静态INCLUDE 用include伪码实现,定不会检查所含文件的变化,...
1.<%@include file="head.jsp" %> 2.<jsp:include page="head.jsp" /> 或者: <jsp:include page="jieshou.jsp"> <jsp:param name="canshu" value="magci" /> </jsp:include> 两者的区别: 1.<%@include ...
jsp的Include方式
jsp的include的两种用法 jsp的include的两种用法
<tr><td colspan="2"><jsp:include page="view/AdminTop.jsp" /></td></tr> <td width="180" valign="top"><jsp:include page="view/AdminLeft.jsp"/> ...
4、在JSP如何包含一个静态文件? 静态包含如下:<%@ include file="copyright.html" %> 动态包含如下:<jsp:include page="copyright.html" flush="true"/>
JSP编译指令是给JSP引擎提供编译器指令信息的,它们的作用是设置JSP程序和由该JSP程序编译所生成的Servlet程序的属性。 语法格式: <%@ 指令 指令的属性= "属性值" %> 例如: <%@ directive attribule= "value" %>...
jsp指令标签(page,taglib,include)、动态标签(jsp:include,jsp:forward,jsp:param,jsp:useBean,jsp:setProperty,jsp:getProperty),案例demo
2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX2.4 include指令 JSP+AJAX