一直以来做项目都是用@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果然博大精深,还是要好好学习的。
分享到:
相关推荐
在Java Web开发中,`jsp:include`和`<jsp:include>`标签是两种常见的页面包含机制,它们用于将一个或多个动态或者静态资源合并到一个JSP页面中。这两种方式虽然看似相似,但有着本质的区别,理解它们的用法和区别...
在JavaServer Pages (JSP) 技术中,`<jsp:include>` 和 `<%@ include %>` 是两个用于页面组合的指令,它们虽然都用于将一个或多个文件的内容插入到主页面中,但它们的工作机制和使用场景有所不同。理解这两者的区别...
在实际开发中,合理地利用`<jsp:include>`和`<%@include file="..."%>`可以帮助优化代码结构和提高代码的可维护性。静态内容(如页眉、页脚、样式表和脚本)通常适合使用`<%@include file="..."%>`,因为它们不需要...
在Java Web开发中,`<jsp:include>`动作是一个非常重要的元素,用于动态地将一个页面包含到另一个页面中。这个动作使得开发者可以实现页面的重用和模块化设计,提高代码的可维护性。本实验的目标是让学生掌握`<jsp:...
考虑下面JSP文件代码片断: <jsp:include page=”test2.jsp”> <jsp:param name=”username” value=”accp”/> </jsp:include> 以下( )代码片断放置在test2.jsp中不会导致错误。
JSP 中的 Include 有两种用法,分别是 `<%@ include file=” ”%>` 和 `<jsp:include page=” ” flush=”true”/>`。这两种用法都可以用于引入其他 JSP 文件,但是它们之间存在着一些关键的区别。 首先,让我们...
总结来说,Spring MVC中的`jsp:include`提供了静态和动态两种方式来嵌入子页面。静态嵌入适合不需动态变化的内容,而动态嵌入则适用于需要根据用户行为或系统状态变化的场景。理解这两种方法的区别和应用场景对于...
通常当应用程序中所有的页面的某些部分(例如标题、页脚和导航栏)都相同的时候,我们就可以考虑用include。具体在哪些时候用< %@ include file=” ”%>,哪些时候用< jsp:include page=” ” flush=...
本文实例讲述了使用jsp:include控制动态内容的方法。分享给大家供大家参考,具体如下: 清单 1. JSP include 伪指令 <![CDATA[ <%@ page language=java contentType=text/html %> <html> <head&...
在JavaServer Pages (JSP) 技术中,存在两种包含关系:`<jsp:include>` 动作和 `jsp:include` 指令。它们都是用来将一个页面的内容插入到另一个页面中的,但它们的工作方式和适用场景有所不同。 **1. `<jsp:include...
在JSP中,`Include` 方式是实现页面组合的重要技术,它允许我们把多个页面的内容合并到一个主页面中,从而实现代码复用和页面布局的灵活管理。本文将深入探讨JSP的`Include` 方式的概念、类型以及使用方法。 1. **...
通过这个案例,学习者可以深入理解`jsp:include`动作的用法和优势,以及如何在实际项目中利用它来实现页面内容的动态组合和复用。同时,通过对比`jsp:include`动作和`include`指令,能够更全面地掌握JSP中包含其他...
本教程将深入讲解`<jsp:include>`标签的使用和示例。 1. **标签结构与基本用法** `<jsp:include>`标签通常包含两个主要属性:`page`和`flush`。 - `page`:这是必需的属性,用于指定要包含的资源路径,可以是相对...
JSP 中 Include 指令静态导入和动态导入的区别详解 JSP 中的 Include 指令可以实现静态导入和动态导入两种方式。静态导入和动态导入是 JSP 中 Include 指令的两种不同的实现方式,它们之间有着明显的区别。 静态...
在JSP中有两种不同的`include`用法:`<%@ include file="..." %>` 和 `<jsp:include page="..." flush="true"/>`。这两种方式虽然都可以达到将一个页面包含进另一个页面的效果,但它们在执行时间和引入内容方面存在...
在 JSP 中,include 文件可以使用两种方式来包含,即 `@include` 方式和 `jsp:include` 方式。其中,`@include` 方式可以使得包含页面和被包含页面在编译时被编译成一个文件,从而使得变量可以相互通用。但是,这种...
JSP动作包括: jsp:include:在页面被请求的时候引入一个文件。 jsp:useBean:寻找或者实例化一个JavaBean。 jsp:setProperty:设置JavaBean的属性。 jsp:getProperty:输出某个JavaBean的属性。 jsp:forward:把...
采用jsp开发的前端分页,抽取成一个公共的jsp,在需要的界面采用 <jsp:include>引入就行,白色按钮,黑色选中样式 <div style="display: block;height: 200px;"> <jsp:include page="pagination.jsp" flush="true">...
标准动作元素是JSP提供的一些基本动作元素,例如<jsp:include>、<jsp:param>、<jsp:forward>、<jsp:useBean>、<jsp:getProperty>、<jsp:setProperty>和<jsp:plugin>等。自定义动作元素是开发者根据需求自定义的动作...