我正在使用netty并尝试为某些API实现一个简单的HTTP服务器。虽然我有传入请求,但我可以获取url = / foo / bar / other /的路径。如何将路径映射到以下内容?
class = foo
method = bar
param = other
我可以使用正则表达式吗?或者有更好的解决方案吗?
是的,我知道如何拆分url路径并获取查询字符串参数。我从http标头,ip等获取所有参数...这不是问题。问题是,如何将这些路径映射到类和方法。这样我就可以带来必要的课程和方法。
简单实现一些(只是伪代码):
public class Mapper {
private String htttpMethod;
private String controllerName;
private String methodName;
}
ArrayList<Mapper> m = new ArrayList<Mapper>();
m.add(new Mapper("GET","HomeController","index"));
所以/ Home / index / 1 /必须上升HomeController.index(1);
对于我想要找到的每个模式,我需要一个新的正则表达式?检查所有,if / else阻止太多......
关于那个的任何解决方案?
但是,谢谢你不要太懒,为了这个问题,请阅读码头。并为我的英语而烦恼
答案 0 :(得分:0)
我找到了Netty Snoop example帮助。
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
HttpRequest request = this.request = (HttpRequest) e.getMessage();
// Get your path
String uri = request.getUri();
String[] segments = uri.split("/");
String className = segments[0];
String methodName = segments[1];
// Get your query string parameters
QueryStringDecoder queryStringDecoder = new QueryStringDecoder(request.getUri());
}
希望这有帮助。