【问题标题】:URL parsing in JavaJava中的URL解析
【发布时间】:2014-02-04 06:58:31
【问题描述】:

我有这样的网址:

http://test.com/testapp/test.do?test_id=1&test_name=SS

有什么办法只能得到这部分

/test.do?test_id=1&test_name=SS

【问题讨论】:

  • “有什么办法只能得到这部分” - 是的。
  • 是的。你在用什么。 Servlet 还是 Spring MVC?
  • "testapp" 是您的应用程序上下文,"test.do" 是您正在执行的操作,其余的 - 请求参数。由于我们不知道您使用的是什么框架(看起来像 struts 但是......)所以没有明确的答案。提供更多信息。

标签: java url url-parsing


【解决方案1】:

使用java.net.URL解析一个url字符串:

URL url = new URL("http://test.com/testapp/test.do?test_id=1&test_name=SS");
System.out.println(url.getPath()+"?"+url.getQuery());

【讨论】:

  • 但它返回 /testapp/test.do?test_id=1&test_name=SS
【解决方案2】:

在你的 ActionClass 中

String actionName = (String)ActionContext.getContext().get(ActionContext.ACTION_NAME);

会给你“测试”。

HttpServletRequest request = ServletActionContext.getRequest();

是您的 servlet 请求,您可以从中获取所有参数。 不管怎样,看看 ActionContext.getContext()。你可以从那里得到很多东西。 希望这会有所帮助。

【讨论】:

  • ActionContext 不是泛型类。请避免使用这种答案类型。
  • @atrujillofalcon,我不同意。但即便如此,在批评之后,你能提出一些可以完成工作的东西吗?相信我,我知道我在说什么 - 我有同样的问题,顺便说一句,在我的实际工作中非常罕见,这是实现它的最佳方式。
【解决方案3】:

不是真正的 URL 解析,但这会做你的工作:

String[] parts = "http://test.com/testapp/test.dotest_id=1&test_name=SS".split("/");

return "/"+parts[parts.length-1]

【讨论】:

    猜你喜欢
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多