0

gwan/csp/strangesubfolder/inc.c可以通过访问http://domainName.com/strangesubfolder/?inc

我觉得这个servlet映射很奇怪,但这符合我的需要。我在 gwan 用户手册中找不到映射描述。

如果我错了,请纠正我并确认这是否是预期的行为。

4

2 回答 2

0

是的,这是一个标准功能。

这 '?' 告诉 G-WAN 它是一个 servlet。如果没有'?它将在 WWW 文件夹中查找文件。

更新:

现在我明白你的困惑了。

自版本发布 3.3.27 以来,这已更改,因此用户可以轻松制作宁静的 URL

G-WAN 时间线

阅读 2012 年 3 月 27 日的更新。

现在您需要放置“?” 在实际的 servlet 名称之前。通过这样做,G-WAN 可以有效地将 '/' 重写为 '&',因此您无需编写任何代码就可以使用此类静态 URL。

//Old way
http://domain/?user/profile&user1
http://domain/?blog/archive&2012&march

//New way (more restful no '&')
http://domain/user/?profile/user1
http://domain/blog/?archive/2012/march
于 2012-11-15T15:22:04.207 回答
0

是的,正如理查德正确(并且及时,感谢理查德!)解释的那样,这是预期的行为。

该目录/gwan/.../csp/script.c用于存储必须运行的 servlet,同时/gwan/.../www/script.c用于存储旨在用作 HTTP 资源的文件。

对应的 URL 是GET /?script.cGET /script.c

/csp或文件夹中使用的任何子目录/www都会相应地反映在 HTTP 请求中:GET /folder/?script.c用于动态内容和GET /folder/script.c静态内容。

'?'查询字符(可以被其他字符替换)从旧GET /csp?/folder/script.c形式移动到新GET /folder/?script.c形式的选择是出于以下需要:

  • 区分servlet名称和folder名称(请求可能缺少定义的“默认”编程语言的 servlet 扩展,如果没有定义,则为 C)
  • 允许任意数量的sub-directoriesHTTP 请求
  • 允许任意数量的query argumentsHTTP 查询
  • 区分foldersquery arguments在 HTTP 请求中
  • 在上述所有情况下都可以RESTFUL提出请求。

我们花了一些时间才找到合适的功能组合,并且尽量减少冗长,但经验表明这很有效。

下面是一个同时具有子文件夹和查询参数的 RESTFUL 查询示例:

GET /folder/?script/arg1/value1/arg2/value2/arg3/value3

默认情况下,这是一个 C 脚本,除非另一种语言(可用于编写脚本的 15 种语言中)已被定义为“默认”语言。

Note that the 50+ script examples provided in the download archive illustrate this scheme which is also presented on the developers page.

于 2012-11-16T09:48:16.610 回答