• JSP页面中包含文件


    在JSP中,主要有3种功能可以将外部内容包含到JSP文档中jsp:include动作。

    jsp:include动作允许我们在请求期间将其他页面的输出包含进来。它的主要优点是:在被包含的页面发生更改时,无需对主页面做出修改。它的主要缺点是:它所包含的是次级页面的输出,而非次级页面的实际代码(include指令),所以,在被包含的页面中不能使用仟何有可能总体上影响主页面的JSP构造。一般说来,它的优点要远远胜过它的缺点,这几乎注定它会比其他包含机制应用得更为普遍。

    include指令。include指令可以在主页面转换成servlet之前,将JSP代码插入其中。它的主要优点是功能强大,所包含的代码可以含有总体上影响主页面的JSP构造,比如字段的定义和内容类型的设定。它的主要缺点是难以维护:只要被包含的页面发生更改,就得更新主页面。

    jsp:plugin动作。尽管本书主要论述服务器端的Java,但同时也会照顾到客户端java(嵌入web中的applet),因为客户端java在实际应用中也能发挥一定的作用,尤其在公司内部的内联网上。jsp:plugin元素可以将使用java插件(Java Plug-in)的applet插入到ASP页面中。它的主要优点是:能够避免在HTML中编写冗长繁琐且易于出错的OBJECT和EMBER标签。它的主要缺点是;它适用于applet,而applet的应用不太常见。

    jsp: include: 语法:<%jsp:include page="/path"%> jsp:include是xml语法中的元素名称。

    jsp: include动作在主页面被请求时,将次级页面的输出包含进来。尽管被包含页面的输出中不能含有JSP,但这些页面可以是其他资源(这些资源有可能使用servlet或JSP创建输
    出)所产生的结果。也就是说,服务器按照正常的方式对指向被包含资源的URL进行解释,因而,这个UrL可以是servlet或JsP页面。服务器以通常的方式运行被包含的页面,将
    产生的输出放入主页面中。这种行为和RequestDispatcber类的include方法完全相同,在servlet希望完成这种类型的文件包含时,就是使用这个方法。

    如果要防止包含页面被客户单独访问,可以将它们放在WEB-INF目录或其子目录中.

    要注意到:被包含的页面不是完整的Web页面口包含进来的文件可以是HTML文件、纯文本文件、JSP页面、或servlet,如果文件为jSP页面和servlet,则包含进来的只是页面
    的输出,不是实际的代码)。但是,任何情况下,客户看到的都是合成后的结果。因此,如果主页面和包含进来的内容中都含有诸如DOCTYPE,BODY等标签,那么,在客户看到的结果中这些标签将会出现两次,这会使得最终的HTML不合法。在用到sexvlet和JSP时,请务必查看生成的HTML源代码,并将URL提交给html验证器,这是一个好习惯。在使用jsp:include时,这个建议甚至更为重要,因为初学者经常错误地将主页面和包含页面都设计成完整的HTML文档。(jsp也是一样的)。

    如:

    <body>
    here is our current news:
    <ol>
    <li><jsp:include page="/WEB-INF/Item1.html"/>
    <li><jsp:include page="/WEB-INF/Item2.html"/>
    <li><jsp:include page="/WEB-INF/Item3.html"/>
    <li><jsp:include page="/WEB-INF/Item4.jsp"/>
    </ol>
    </body>

    include 指令:

    语法:<%@ include file%>

    include指令在主JSP文档转换成servlet时(一般在首次被访问时),将文件包含到文档中;

    include指令石作是一种预处理,服务器将被包含文件的内容逐字节插入到主页面当中。 然后将产生的页面作为单个jsp处理。因此,Jsp:include和 include 指令根本不同之处在于它们被调的时间:jsp:include在请求期间被激活,而include指令在转换期问被激活。

    如:

    <body>
    Imformation about our products<br>
    blabal bla bla;<br>
    =====================================<br>
    <%@ include file="/WEB-INF/section.jsp" %>
    </body>

    jsp:forward:

    <body>
    <% String destination;
    if(Math.random()>0.5){
    destination="/WEB-INF/section.jsp";
    }
    else{
    destination="/WEB-INF/Item1.html";
    }
    %>
    <jsp:forward page="<%=destination %>"/>
    </body>

    如果使用jsp:forward,则主页面不能含有任何输出,这就提出一个问题:那么使用JSP又有什么好处呢?答案是:没有任何好处!实际上,使用JSP对于处理这类情况反而不利,因为现实的情形会更复杂,而复杂的代码在servlet中要比在JSP页面中更容易开发和测试。我们推荐完全避免使用jsp :forward.如果您希望执行类似于本示例的任务,请使用servlet,由servlet调用RequestBispatcher的forward方法.



  • 相关阅读:
    关于asp.net页面自定义404错误码返回302的最新解决方法
    基于sharpdevelop核心和ArcEngine打造插件式桌面GIS应用(概述)
    WPF自定义控件踩坑记录,用户自定义控件 绑定后台定义的 命令 依赖项属性 注意事项 静态
    WPF C# 以非独占式读取本地图片
    C#DataGridView控件60招(一)
    用TEXT文件做数据源
    boost智能指针
    linux下安装boost库
    ASP/ASP.NET程序设计电子书专题下载
    Highcharts 点击多选框取消,添加数据上绑定最大,最小值和图例上绑定提示框数据
  • 原文地址:https://www.cnblogs.com/daxiong225/p/4777707.html
Copyright © 2020-2023  润新知