[NETTY]:将urlpath映射到方法

时间:2012-05-03 21:49:23

标签: java url mapping netty

我正在使用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阻止太多......

关于那个的任何解决方案?

但是,谢谢你不要太懒,为了这个问题,请阅读码头。并为我的英语而烦恼

1 个答案:

答案 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());

}

希望这有帮助。