使用Nginx和Tomcat支持URL中的动态路径

时间:2014-03-10 15:50:32

标签: java jsp tomcat nginx url-routing

我正在努力实施的用例。
根据URL路径中的{{random_string}}显示不同的内容 用户将根据URL包含的{{random_string}}查看不同的内容。

例如:

www.example.com/{{random_string}}/index.jsp

URLS如下所示。 ( 它们包括JSP之前的随机字符)

  

www.example.com/xc/index.jsp
www.example.com/2b/index.jsp
  www.example.com/43/index.jsp

我的问题

  1. 如何设置nginx和tomcat以支持URL中的{{random_string}}而不抛弃404?
  2. 我的当前环境/设置(此工作正常)

    Nginx和Tomcat。 然后将来到nginx的请求重定向到tomcat以访问ROOT.war e,g - www.example.com/index.jsp

1 个答案:

答案 0 :(得分:2)

您不必在Nginx或Tomcat配置中更改任何内容。您可以做的是创建一个servlet,它将拦截请求并在转发到JSP之前提取{{random_string}}。以下是基本步骤:

1)创建一个URL模式为/*的servlet,以便所有请求都转到它。

2)在servlet的doGet()方法中,使用request.getPathInfo()检索URL路径并解析它以提取{{random_string}}。

3)使用request.setAttribute()为要在JSP页面中显示的数据设置属性。

4)使用RequestDispatcher将请求转发给JSP,例如:

RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");  
dispatcher.forward(request, response);  

5)在JSP中,使用您在步骤3中设置的请求属性来显示内容。