c中是否有任何与Reflection API相似的东西,并且注解在java中?

问题描述 投票:0回答:1

最近,我已经用c语言实现了HTTP Server。当请求客户端请求服务时,它很好地服务于静态资源。现在,我希望它为Java(tomcat)中的jsp等动态资源提供服务,这意味着某些代码段可以在服务器端执行,并且应该发送响应。我已经在Java中使用反射,注释和其他核心库完成了这种事情,但是我以前从未在c中完成过。

有人可以提前在c.Thanks中指导我这样做。

java c jsp webserver httpserver
1个回答
0
投票

虽然没有与C中的反射API或注释类似的等效功能,仍然可以实现您所需要的功能,但是需要您做一些繁重的工作。

主要是我想得到的是:

  1. 弄清楚资源的类型是

  2. 取决于类型,您想使用一些脚本执行它并发送其输出。

对于第1部分,您可以基于资源的扩展。您可以使用系统MIME类型,也可以像这样创建自己的映射:

struct Mapping {
   char *extension;
   char *command;
};

struct Mapping mapping[] = {
                            {"jsp", "<command to run jsp>"},
                            {"sh", "/bin/bash %1"}
};

对于第2部分,服务器收到请求时,它需要提取资源的扩展名,并检查映射以查看与扩展名匹配的条目,获取command字段并执行命令(在替换参数之后(如果有的话)使用system()调用。

注意,作为一项作业,这是学习很多东西的好方法,但是如果将其投入生产,这将是一个巨大的安全漏洞!

© www.soinside.com 2019 - 2024. All rights reserved.