Url rewriting 如何使用URLEwriteFilter重定向http POST

Url rewriting 如何使用URLEwriteFilter重定向http POST,url-rewriting,http-post,http-get,tuckey-urlrewrite-filter,Url Rewriting,Http Post,Http Get,Tuckey Urlrewrite Filter,我有一个关于URLEwriteFilter的问题,到目前为止,我在网上找不到任何关于它的信息 我想重定向Tomcat7中的http POST。这里有一个例子 该调用是对ULR的HTTP POST,如 http://localhost:8080/oldApplication/Example?a=123&b=2 此调用还包含一些xml或json内容。过滤器的配置和工作状态良好,urlrewrite.xml包含: <?xml version="1.0" encoding="utf-8"

我有一个关于URLEwriteFilter的问题,到目前为止,我在网上找不到任何关于它的信息

我想重定向Tomcat7中的http POST。这里有一个例子

该调用是对ULR的HTTP POST,如

http://localhost:8080/oldApplication/Example?a=123&b=2
此调用还包含一些xml或json内容。过滤器的配置和工作状态良好,urlrewrite.xml包含:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
"http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">

<urlrewrite use-query-string="true">
    <rule>
        <condition type="method">POST</condition>
        <from>^(.*)$</from>
        <to type="redirect">/newApplication$1</to>
    </rule>
</urlrewrite>
被重定向到

http://localhost:8080/newApplication/Example?a=123&b=2
直到现在都很好。问题是重写更改了方法,因此使用HTTPGET而不是HTTPPOST调用新url。我试图在方法上添加一个条件,但在重写之后仍然得到一个HTTPGET


有人知道如何配置重写过滤器来避免这种情况吗?

您正在使用
type=“redirect”

此属性相当于使用
GET
方法向目标实际执行新请求的
HttpServletResponse.sendRedirect()
,因此所有参数与HTTP方法一起丢失

如果未通知,则此属性的默认值为
forward
,相当于
HttpServletRequest.getRequestDispatcher(url).forward()

转发将保留所有请求参数和HTTP方法

因此,为了获得所需的结果,必须省略type属性或将其设置为
forward

<to>/newApplication$1</to>
/newApplication$1

/newApplication$1

对不起。。。现在我知道答案了。。。http post的重定向是不可能的。您可以回答自己的问题,只是为了关闭它。
<to>/newApplication$1</to>
<to type="forward">/newApplication$1</to>