首页 > 技术文章 > jspf和jsp

fu512 2017-04-08 16:48 原文

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。

 

推荐阅读