G-WAN URI servlet的剖析

时间:2012-11-15 11:23:11

标签: servlets uri restful-url g-wan

可以通过gwan/csp/strangesubfolder/inc.c

访问

http://domainName.com/strangesubfolder/?inc

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

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

2 个答案:

答案 0 :(得分:0)

是的,这是标准功能。

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

更新

现在我理解你的困惑。

从版本3.3.27开始,这已经改变,因此用户可以轻松制作宁静的URL

G-WAN timeline

阅读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

答案 1 :(得分:0)

是的,理查德正确地(及时地,感谢理查德!)解释说,这是预期的行为。

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

相应的网址为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表单是出于以下需求:< / p>

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

我们花了一段时间才找到适当的功能组合以及最小的冗长,但经验证明这很有效。

以下是具有子文件夹和查询参数的RESTFUL查询示例:

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

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

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