gpt4 book ai didi

java - 什么是 "programmatic server-side includes"?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:06:37 26 4
gpt4 key购买 nike

来自 the Java EE tutorial :

If the resource is static, the include method enables programmatic server-side includes.

If the resource is a web component, the effect of the method is to send the request to the included web component, execute the web component, and then include the result of the execution in the response from the containing servlet.

我不太清楚“程序化服务器端包含”是什么意思,以及它们与网络组件情况有何不同。

我的意思是,无论我包含什么资源,我都会向它传递一个请求/响应对象元组,并得到一些我可能会或可能不会与客户端沟通的副作用,对吧?

有人可以详细说明一下吗?

最佳答案

您省略了引文前的标题和文字。这些为您询问的评论提供了重要的背景信息:

Including Other Resources in the Response

It is often useful to include another web resource, such as banner content or copyright information, in the response returned from a web component. To include another resource, invoke the include method of a RequestDispatcher object:

include(request, response);

因此,当评论继续

If the resource is static, the include method enables programmatic server-side includes.

它们描述前面代码片段的效果,而不是引入一些新概念。此上下文中的“程序化服务器端包含”调用与静态资源关联的RequestDispatcher()include() 方法。它具有包含与调度程序关联的资源的效果,在正在准备的响应中内联。因此,这是“服务器端”,因为它全部由服务器完成,对客户端透明,而不是客户端必须单独请求包含的资源。*

静态和 Web 组件情况之间的区别在于与调用 include() 方法的 RequestDispatcher 关联的资源 -- 要包括什么资源——而不是关于其代码包含方法调用的组件。静态资源就是可以通过不与 Web 组件关联的 URL 来标识的资源。通常这意味着它对应于一个文件。文件内容可以是任何内容,但它的常见用途是包含一个 HTML 片段,例如许多网页共享的页眉或页脚。

I mean, regardless of the resource I include, I pass a request/response object tuple to it and get some side-effects that I may or may not communicate to the client, right?

将其视为将请求和响应对象传递给 RequestDispatcher 更为准确。如果调度程序与静态资源关联,不,请求和响应对象不会呈现给该资源(本身),因为它没有接收或操纵它们的机制。相反,运行代码的 servlet 引擎会在它认为合适的时候操纵响应对象。

如果目标资源是 Web 组件,是的,它将能够从提供的请求中读取数据,操作请求及其上下文,并操作提供的响应,所有这些都由它自行决定。通常,它无法区分这种情况与直接访问它的情况。但不,调用 include() 的组件最多只能有限地控制通过该机制与客户端通信的内容。


*有关术语“服务器端包含”部分的历史和灵感的更多信息,请参阅 Wikipedia .

关于java - 什么是 "programmatic server-side includes"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54111933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com