【问题标题】:Is it possible (and how) to change the way G-WAN proceed requests?是否有可能(以及如何)改变 G-WAN 处理请求的方式?
【发布时间】:2016-07-01 13:54:24
【问题描述】:

今天,G-WAN 处理这样的请求(使用 loan.java servlet 的示例):

localhost/?loan.java&name=Eva&amount=100000&term=5&rate=4.2

特定的处理程序(甚至更好的 G-WAN 交换机)能否处理这样的请求:

localhost/loan.java?name=Eva&amount=100000&term=5&rate=4.2

地点:

a) servlet 名称之前没有“?”字符但就在第一个参数之前,并且,

b)&”字符不是放在第一个参数之前而是放在第二个参数之前,然后是第三个,第四个,(等等)参数。

这样的处理程序(甚至更好的 G-WAN 开关)将使 G-WAN 与无数代码(Go、Java、Mono、NodeJS、PHP、Ruby 等)兼容用于创建 Web 应用程序和网站,如今开发人员不得不重写这些应用程序和网站,以便简单地与 G-WAN 一起使用,并受益于其高性能、可扩展性和安全性。

注意:以前的答案从未回答过其他参与者的问题:“如何删除“”字符”并且 init.c 代码没有提供删除 QUERY_CHAR 的方法但是:

a) 只能从字符集中选择: - _ 。 ! ~ * ' ( ) 和,

b) 不要放置“?”以及上面需要的正确位置的“&”字符。

所以,我希望我的问题更清楚。

如果需要钱,要向 G-WAN 开发人员支付多少价格才能获得这样一个带有标准 G-WAN 的处理程序(甚至更好的 G-WAN 交换机)像所有其他 Web 服务器一样释放以继续请求,即使使用正则表达式代码会稍微减慢 G-WAN(如果有)?

提前感谢您提供了一种方法来实现对这个特殊的 Web 应用程序服务器进行如此必要的增强。

【问题讨论】:

  • 我投票决定将此问题作为离题结束,因为这似乎是增强/修改第 3 方产品的请求。
  • @Jim:这是关于如何以编程方式修改默认 G-WAN 行为的请求。在 stackoverflow 中非常相关。

标签: java ruby node.js servlets g-wan


【解决方案1】:

在 G-WAN website 上有这样一个 Connection Handler 的例子。您可以在 G-WAN 处理请求之前/期间/之后根据需要重写请求。

在网站示例中,将第 6 行替换为:

char *p = strstr(read_xbuf->ptr, ".java?"); 
if(p) 
{ 
   char *b = p; while(*b != '/') b--; // find script name
   memmove(b + 1, b, p + sizeof(".java?") - (b + 2)); // make room
   b[1] = '?'; // add leading '?'
}

这将满足您的要求。如果您对该代码有疑问,请在 gwan.ch 给我们留言。

请将符合您需要的答案标记为“已接受”。

【讨论】:

  • 感谢 Gil 的快速回答,我查看了您的示例。不幸的是,我没有能力修改您的样本来满足我的非营利组织(Mirmande 计算机学校)的年轻学生的要求。那么,作为下一个 G-WAN 版本的一部分,G-WAN 人员需要多少资金来提供这样一个对所有其他用户免费的处理程序? TIA 获取财务报价。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-31
  • 1970-01-01
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
相关资源
最近更新 更多