【问题标题】:Retrieving request parameters from the URL with no parameter names从没有参数名称的 URL 中检索请求参数
【发布时间】:2012-06-29 01:54:53
【问题描述】:

我有一个如下所示的 URL: [http://localhost:8080/resource/headline3-7]

在这个网址中

资源 - Servlet

headline3-7 - 请求参数

在 Servlet 我使用以下代码:

@WebServlet(name = "ArticleServlet", value = "/resource/*")
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws     ServletException, IOException {
     System.out.println("hiii"+ request.getQueryString());
}  

我想弄清楚如何在这个例子中获取请求参数?

我可以看到控件正在转移到 Servlet

弹出的另一件事是我正在为 Application 使用 Spring 框架,并且我有一个 URLrewrite.xml,我正在尝试添加以下有助于获取 ID 的规则,但似乎不是工作:

 <rule>
    <from>^/resource/([A-Z]+)$</from>
    <to>/resource/id=$1</to>

</rule>

回答: 实际上我使用了 URL 模式和使用的正则表达式如下:

 <rule>
    <from>^/resource-center/([a-z A-Z-0-9'-_]+)$</from>
    <to>/resource?id=$1</to>
 </rule>

这个表达式对我有用,我使用的 servlet 使用 req.getparmeter function()

【问题讨论】:

  • 其实我使用的URL模式和使用的正则表达式如下:^/resource-center/([a-z A-Z-0-9'-_]+)$ from> /resource?id=$1 – KAPIL PATIL 34 秒前编辑

标签: spring jsp servlets url-rewriting request


【解决方案1】:

request.getQueryString() 对你不起作用,因为严格来说你没有任何查询字符串 - 你将不得不做一些你自己的解析,比如:

String param = null;
String[] paths = request.getPathInfo().split("/");
if (paths.length > 0) {
    param = paths[paths.length-1];
}
System.out.println(param);

【讨论】:

  • 嗯,这就是我解析 String 的想法,很想知道是否还有一个 API 可以检索这种形式的 URL 参数。谢谢
  • 你应该使用@PathVariable注解。
猜你喜欢
  • 2021-05-25
  • 1970-01-01
  • 2016-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-01
  • 2014-10-26
相关资源
最近更新 更多