今天,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与用于创建Web应用程序和网站的成千上万的代码(Go,Java,Mono,NodeJS,PHP,Ruby等)兼容。开发人员必须重写才能与G-WAN一起使用,并受益于其高性能,可扩展性和安全性。

注意:先前的答案从未回答过另一个竞争者的问题:“如何删除” “character”和init.c代码没有提供删除QUERY_CHAR的方法,但是:

a)仅从字符集中选择:-_。 ! 〜*'()和,

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

因此,我希望我的问题更加清楚。

而且,如果需要资金,要让G-WAN开发人员获得与标准G-WAN版本一样的处理程序(甚至更好的G-WAN交换机)以像其他所有Web服务器一样处理请求,要付出多少代价?即使使用正则表达式代码也会使G-WAN变慢一点(如果有)?

预先感谢您为这种异常Web应用程序服务器实现这种所需增强的方法。

最佳答案

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 '?'
}

这将执行您想要的reqrite。如果您对该代码有疑问,请在gwan.ch上给我们一行。

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

关于java - 是否可以(以及如何)更改G-WAN处理请求的方式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36022913/

10-09 05:36