お支払いフォームがあります。ユーザーがフォームを送信すると、支払いプロセスは正常に実行されますが、[戻る]ボタンをクリックすると、ユーザーは同じフォームに移動します。ユーザーが複数回の支払いを行わないようにするために、送信が成功した後にフォームを期限切れにしたい(ユーザーが戻ってフォームを送信した場合)。「ユーザーがチュートリアルに戻らないようにする」に続いて、フィルターを追加しましたが、機能しません。私は何が間違っているのですか?これが私がフィルタリングのために追加したものです。
<filter>
<filter-name>paymentFilter</filter-name>
<filter-class>path to PaymentFilter class</filter-class>
</filter>
<filter-mapping>
<filter-name>paymentFilter</filter-name>
<url-pattern>/order/*/payment</url-pattern>
</filter-mapping>
私のフィルタークラスは
public class PaymentFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
httpServletResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
httpServletResponse.setHeader("Pragma", "no-cache"); // HTTP 1.0.
httpServletResponse.setDateHeader("Expires", 0); // Proxies.
System.out.println("In filter");
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
}
追加しましたSystem.out.println("In filter")
が、ページを実行した後、コンソールにその出力(「フィルター内」)が表示されません。
コンソール/*
のプリントとしてURLパターンを使用すると、System.out
<url-pattern>/*</url-pattern> (it works as expected)
しかし、URLパターンをに変更すると/order/*/payment
(*は注文IDであり、注文ごとに変更されます)。その後System.out
、コンソールには何も印刷されません。
<url-pattern>/order/*/payment</url-pattern> (it doesn't work)
私はspringmvc、apache、tomcat7.0を使用しています