Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTTP服务器:Java动态方法调用作为if条件的替代_Java_Http_Reflection - Fatal编程技术网

HTTP服务器:Java动态方法调用作为if条件的替代

HTTP服务器:Java动态方法调用作为if条件的替代,java,http,reflection,Java,Http,Reflection,我正在编写一个HTTP服务器,并将标题按名称存储在一个表中。我想知道处理这些问题的最佳做法是什么。我正在考虑使用动态方法调用(通过反射)和编写方法来处理可以通过名称引用的特定头。尽管从OOP的角度来看,这很难算是最佳实践,但我觉得消除if语句可能会节省大量成本,特别是考虑到一个好的服务器应该扩展以处理大量负载。想法 反射通常比仅使用if生成对象来处理11种可能的HTTP方法(PUT,GET,POST,…)中的每一种都要慢,因此if的伸缩性更好。 如果你不想使用If的梯形图,你可以构建hashma

我正在编写一个HTTP服务器,并将标题按名称存储在一个表中。我想知道处理这些问题的最佳做法是什么。我正在考虑使用动态方法调用(通过反射)和编写方法来处理可以通过名称引用的特定头。尽管从OOP的角度来看,这很难算是最佳实践,但我觉得消除if语句可能会节省大量成本,特别是考虑到一个好的服务器应该扩展以处理大量负载。想法

反射通常比仅使用
if
生成对象来处理11种可能的HTTP方法(
PUT
GET
POST
,…)中的每一种都要慢,因此
if
的伸缩性更好。

如果你不想使用
If
的梯形图,你可以构建hashmap,其中key是某个HTTP方法,value是object,它将解析该方法的HTTP请求。我可以将头映射到方法调用,并传入指向每个请求生成的整个表的指针。这样肯定会更有效率。记录在案,有46个可能的标题(尽管我现在只支持其中的一个子集)。谢谢你的帮助@user34531我将构建一个包含11个键的表,每个HTTP方法(不是头)一个键。然后每个值都是一个方法,它将知道如何根据自己的HTTP方法解析HTTP请求(该方法支持哪些标头)——这样复杂性就会降低。啊,好的,现在我明白了。谢谢你的澄清。