在JSP中重写URL并从URL获取值

在JSP中重写URL并从URL获取值,jsp,url,servlets,Jsp,Url,Servlets,如何重写我的JSP URL,例如: myhost/UserMVC/index.jsp?id=5&&name=tome 到 myhost/UserMVC/index/5/tome 然后在web.xml中获取5和tome?,您可以选择监听哪个URL模式。当您在WEB-INF/WEB.xml中定义映射时,您可以这样做: <servlet> <servlet-name>TestServlet</servlet-name> <servlet-cla

如何重写我的JSP URL,例如:

myhost/UserMVC/index.jsp?id=5&&name=tome

myhost/UserMVC/index/5/tome


然后在web.xml中获取
5
tome

,您可以选择监听哪个URL模式。当您在
WEB-INF/WEB.xml
中定义映射时,您可以这样做:

<servlet>
    <servlet-name>TestServlet</servlet-name>
    <servlet-class>com.stackoverflow.TestServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/test</url-pattern>
</servlet-mapping>
现在,您可以按自己喜欢的方式处理路径。正如@Tiny所建议的,您最好使用REST框架,比如。

使用这个URLRewiteFilter,编写这样的规则

<urlrewrite>
  <rule>
    <from>^/UserMVC/index/(.*)/(.*)$</from>
    <to>/UserMVC/index.jsp?id=$1&&name=$2</to>
  </rule>
</urlrewrite>

^/UserMVC/index/(.*)/(.*)$
/UserMVC/index.jsp?id=$1&&name=$2

在某些情况下,您需要使用出站规则标记。UrlRewriteFilter有很好的文档。

生成的URL是一个类似REST的URL。你应该像对待事情一样对待休息。
<urlrewrite>
  <rule>
    <from>^/UserMVC/index/(.*)/(.*)$</from>
    <to>/UserMVC/index.jsp?id=$1&&name=$2</to>
  </rule>
</urlrewrite>