Servlets 如何在servlet中获取路径变量值

Servlets 如何在servlet中获取路径变量值,servlets,Servlets,我想在servlet中获取path变量。假设url是www.demo.com/123/demo。我想从路径中获取123值,而不进行任何字符串操作 注意:以下servlet没有任何web.xml配置。我的代码是: @WebServlet(urlPatterns = { "/demo" }) public class DemoServlet extends HttpServlet { public DemoServlet() { super(); } protecte

我想在servlet中获取path变量。假设url是
www.demo.com/123/demo
。我想从路径中获取
123
值,而不进行任何字符串操作

注意:以下servlet没有任何web.xml配置。我的代码是:

@WebServlet(urlPatterns = { "/demo" })
public class DemoServlet extends HttpServlet {

  public DemoServlet()
  {
      super();
  }

  protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
  {
      doPost(request,response);
  }

  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException
  { 
      sysout("demo");       
  }
}

您所指的URL部分是“上下文”。使用
request.getContextPath()
获取此信息。在您的示例中,这将返回
/123
。如果要精确地
123
,则必须删除前导斜杠

从:

返回指示请求上下文的请求URI部分 请求。在请求URI中,上下文路径始终位于第一位。这个 路径以“/”字符开头,但不以“/”结尾 性格对于默认(根)上下文中的servlet,此方法 返回“”。容器不解码此字符串


抱歉,我提到的是错误的,实际上url是www.demo.com/test/123/demo。在这个url中,上下文路径是test。但是我想在test和demo之间获得123。在春季,我可以使用@pathparam注释来实现。但是在sevlet中,我不知道如何实现。这就是问题所在。上面的链接显示了获取url部分的所有方法。如果不进行一些基本的字符串操作,就无法准确地获得您想要的内容。