【问题标题】:[NETTY]: map urlpath to method[NETTY]:将 urlpath 映射到方法
【发布时间】:2012-05-03 21:49:23
【问题描述】:

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

有什么解决办法吗?

但感谢您不要太懒,为了这个问题,请阅读码头。对不起我的英语

【问题讨论】:

    标签: java url mapping netty


    【解决方案1】:

    我发现查看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());
    
    }
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-07-09
      • 1970-01-01
      • 2011-07-23
      • 2012-11-04
      • 2019-10-12
      • 1970-01-01
      • 2014-01-05
      • 2012-07-19
      • 2019-12-31
      相关资源
      最近更新 更多