jspf、jsp小记

jsp页面:

common.jspf文件

如果想把一个jspf的文件引入(incurred)到一个jsp页面中,只能使用"@include"指令引入,jspf文件中的内容才能被解析并且执行jspf文件中的指令;

如果使用<jsp:include>引入,jspf文件中的内容不会被编译,它直接把jspf的内容包含进去,即jspf文件中的jsp指令和tag不会被执行

例如:

<jsp:include page="xx.jspf" flush="true"></jsp:include>
用jsp动态包含这个jspf文件后页面显示的内容是没有编译直接把源码包含进来了。
问题分析:
jspf并不是像jsp一样是JSP Servlet的默认的扩展名(Tomcat 5.0.28/Servlet 2.4/JSP
2.0),用jsp动态包含jspf后,jsp引擎不会把他当做jsp文件来编译。

如果使用的tomcat服务器,则需求在tomcat下conf/web.xml中加入一个

<!-- The mappings for the JSP servlet -->
    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
        <url-pattern>*.jspx</url-pattern>     <url-pattern>*.jspf</url-pattern>//添加该url-pattern,让jspf扩展名同样成为JSP Servlet处理的文件  </servlet-mapping>

如果使用resin服务器,则需要在resin中的resin.conf中<servlet-mapping url-pattern=‘*.jspf‘ servlet-name=‘jsp‘/>
这样用jsp动态包含后jsp引擎才会把他当做jsp文件来编译。

但如果用静态包含(@include)则不用做如上配置可以编译,为什么静态包含文件则可以呢,具体原因可以参见jsp的动态包含和静态包含文件的区别: http://blog.csdn.net/itautomn/article/details/1635726

注意点:不建议无端引进jspf类型文件进来,因为编辑jspf类型文件上的java代码没有jsp打点提示,不方便维护,同时引入jspf类型文
件也没有什么好处反而增加了配置的复杂,当然引入jspf组件(记得有个jspf.jar)另议,因为此jspf非彼jspf。

<%@include...> 与<jsp:include....>指令的区别

include指令:

在翻译阶段(将JSP页面转换成servlet的阶段),include会读入指定的页面中的内容,并将这些内容和原来的页面融合在一起
   <%@ include file=”header.html”%>
 引入的页面可以只包含静态内容(例如HTML),也可以是一个普通的JSP页面。主页面和引入的页面融和在一起(引入的页面只是最为普通的文本进行融合,并不对动态内容求值),融合后的完整页面再被整体的转换为一个servlet。
 这意味着主页和被引入的页面共享所有的页面作用域数据。因此,如果主页面中声明了一个变量,而在某个被引入的页面中也声明了一个同名的变量,那么在翻译阶段将会造成一个错误,因为组合后的页面无法进行编译。

 include指令的一个常见用法是引入应用程序的所有页面都需要的公共声明。
 JSP规范建议在使用include指令引入JSP页面时,最好使用不同的文件扩展名,因为它们一般都不是完整而合法的页面,如:可以使用这些替代的文件扩展名:.jspf或 .jsf。
 被引用页面改变后,容器可能不会马上产生反应。

 <jsp:include>

  指令用于在运行时引入另外的资源。

  <jsp:include page=”navigation.jsp”/>
   这个指令是在请求处理阶段而不是在翻译阶段执行的。该行为并不是要引入指定页面的实际内容,它将引入执行该引入页面后所产生的应答,这意味着你可以指定任何能够产生文本应答的web资源。JSP容器将通过一个内部的函数调用来调用指定的资源。因此,这些被引入的资源可以帮助处理原来的请求,所以这些资源可以访问请求作用域内的所有对象,以及所有的请求参数。但是要注意,它不能访问任何页面作用域属性,或是在主页面中声明的脚本变量。
   <c:import>行为和<jsp:include>相同,另外它还可以从外部资源引入数据,比如不同的web应用程序,或者一个FTPfuwq。
    所以应该使用<c:import>来代替<jsp:include>的使用。
    被引用页面改变后,新版本会立即投入使用。

include 和<jsp:include>行为直接的区别   

语法 执行时间 引入内容
<%@ include  File=”relativeURI”%> 翻译阶段 静态文本(HTML、JSP),在JSP页面被转换为servlet之前和他融合在一起
<jsp:include Page=”relativeURI”Flush=”true/false”/> 请求处理阶段 执行页面或servlet所生成的应答文本

个人理解:<%@ include
file%>是把引入的文件和当前的文件共同合斌成一个servlet文件进行解析。<JSP:include
page>是把当前文件和引入文件生成两个不同的servlet文件,在当前文件中在进行动态的调用引入的servlet文件。

时间: 2024-08-05 11:46:30

jspf、jsp小记的相关文章

jsp 小记

1. select 默认选中: <select name="skills" multiple="true"> <option value="Potions">Potions</option> <option value="Herbology" selected="selected">Herbology</option> <option val

JSP专题

JSP起源 ·在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变. ·如果使用Servlet程序来输出只有局部内容需要动态改变的网页,其中所有的静态内容也需要程序员代码产生,整个Servlet程序的代码将非常浮肿,编写和维护都将非常困难. ·对大量静态内容的美工设计和相关HTML语句的编写,并不是程序员所要做的工作,程序员对此也不一定在行.网页美工设计和制作人员不懂Java编程,更是无法来完成这样的工作. ·为了弥补Servlet的缺陷,SUN公司在Servlet的基础

&lt;%@include%&gt;和&lt;jsp:include&gt;的区别

<%@include%>:页面请求之前预编译,所有代码包含进来之后,一起进行处理,把所有代码合在一起,编译成一个servlet <jsp:include>:所有代码分别处理,在页面被请求的时候才编译,被编译成多个servlet,页面语法相对独立,处理完成之后再将代码的显示结果(处理结果)组合进来. 我自己写的代码: <%@ page language="java" contentType="text/html; charset=UTF-8&quo

jsp语法与jsp基本知识点

[jsp基本知识点] JSP全称是Java Server Pages,它和servlet技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP/Servlet规范. JSP实际上就是Servlet JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而jsp技术允许在页面中嵌套java代码,为用户提供动态数据. [JSP模板元素] JSP页面中的HTML内容称之为JSP模板元素 JSP模板元素定义了网页的基本骨架,即定

Jsp技术总结

这节我们总结一下Jsp的相关技术. 1. 什么是JSP JSP即Java Server Pages,它和servlet技术一样,都是sun公司定义的一种用于开发动态web资源的技术.该技术的最大特点在于:写JSP就像写html,但它相比html而言,html只能为用户提供静态数据,而JSP技术允许在页面中嵌套java代码,为用户提供动态数据. 2. JSP原理 1) web服务器是如何调用并执行一个JSP页面的? 服务器首先将JSP翻译为一个Servlet,翻译过后的Servlet可以在\tom

HttpServletResponse

一.HttpServletResponse应用 1,使用OutputStream流向客户端浏览器输出中文数据: String data = "中国"; OutputStream outputStream = response.getOutputStream();//获取OutputStream输出流 response.setHeader("content-type", "text/html;charset=UTF-8");//通过设置响应头控制浏

传智博客(JavaWeb方面的所有知识)听课记录(经典)

一.       JavaWeb基础 第一天: 1.Eclipse详解: (1).Bad versionnumber in .class file:编译器版本和运行(JRE)版本不符合.高的JRE版本兼容低版本的编译器版本. (2).当程序有错误的时候,使用Debug as 运行程序.双击语句设置断点.程序运行到此处停止.点击跳入方法的内部代码.点击跳过,执行下一条代码,点击跳出,跳出方法.观察变量的值,选中变量右击 选择watch. 跳入下一个断点.查看断点,调试完后一定要清除断点.结束运行断

转载:web工程中URL地址的推荐写法

在JavaWeb开发中,只要是写URL地址,那么建议最好以"/"开头,也就是使用绝对路径的方式,那么这个"/"到底代表什么呢?可以用如下的方式来记忆"/":如果"/"是给服务器用的,则代表当前的web工程,如果"/"是给浏览器用的,则代表webapps目录. 1."/"代表当前web工程的常见应用场景 ①.ServletContext.getRealPath(String path)获取

9web xml元素

Web.xml常用元素 <web-app> <display-name></display-name> 定义了WEB应用的名字 <description></description> 声明WEB应用的描述信息 <context-param></context-param> context-param元素声明应用范围内的初始化参数. <filter></filter> 过滤器元素将一个名字与一个实现