Servlets G-WAN URI servlet剖析

Servlets G-WAN URI servlet剖析,servlets,uri,restful-url,g-wan,Servlets,Uri,Restful Url,G Wan,可以通过http://domainName.com/strangesubfolder/?inc 我觉得这个servlet映射很奇怪,但它适合我的需要。我在gwan用户手册中找不到映射描述 如果我错了,请纠正我,并确认这是否是预期行为。是,这是标准功能 “?”告诉G-WAN它是一个servlet。如果没有“?”,它将在WWW文件夹中查找该文件 更新: 现在我明白你的困惑了 自从版本3.3.27以来,这一点已经改变,因此用户可以轻松地创建restful URL 阅读2012年3月27日的更新 现在

可以通过
http://domainName.com/strangesubfolder/?inc

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


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

是,这是标准功能

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

更新:

现在我明白你的困惑了

自从版本3.3.27以来,这一点已经改变,因此用户可以轻松地创建restful URL

阅读2012年3月27日的更新

现在需要将“?”放在实际servlet名称之前。通过这样做,G-WAN可以有效地将“/”重写为“&”,这样您就可以在不编写任何代码的情况下使用restful 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
是的,正如Richard正确地(并立即感谢Richard!)解释的那样,这是预期的行为

目录
/gwan/../csp/script.c
用于存储必须运行的servlet,而
/gwan/../www/script.c
用于存储用作HTTP资源的文件

相应的URL是
GET/?script.c
GET/script.c

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

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

  • 区分
    servlet
    名称和
    文件夹
    名称(请求可能缺少定义的“默认”编程语言的servlet扩展,如果没有定义,则为C)
  • 在HTTP请求中允许任意数量的
    子目录
  • 在HTTP查询中允许任意数量的
    查询参数
  • 区分HTTP请求中的
    文件夹
    查询参数
  • 在上述所有情况下都可以使用
    RESTFUL
    请求
我们花了一段时间才找到最简单的功能组合,但经验表明效果很好

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

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

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


请注意,下载档案中提供的50多个脚本示例说明了此方案,页面上也提供了此方案。

我感到奇怪的不是“?”,而是“奇怪的子文件夹”。据我所知,应通过http://domainName.com/**?subfolder/inc**访问inc.c。但现在,它是…**/strangesubfolder/?inc**原来,strangesubfolder在csp下。但是现在,请看url,csp位于奇子文件夹下。正如我所知,“…/?奇子文件夹/inc”有不同的含义,即运行名为奇子文件夹.C的C脚本,输入参数inc(=&inc)作为GET方法。如果这是一个标准功能,我可以将多个级别的子文件夹置于/csp下,然后通过http://donaminName.com/sub1/sub2/../subN/?cscript/para1=1/para2=2/../paramN=NI更新我的答案访问这些页面。是,使用“....”子文件夹/inc”将使“inc”成为url参数。