我有付款表單。當用戶提交表單時,付款流程成功運行,但單擊後退按鈕會將用戶轉到相同的表單。我想在成功提交後終止表單,以防止用戶多次付款(如果用戶返回並提交表單)。 正在關注Prevent user from going back教程,我添加了過濾器,但它不適合我。我究竟做錯了什麼?這是我爲過濾添加的內容。防止用戶返回,但過濾器不起作用
<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)
我使用Spring MVC的,阿帕奇,tomcat7.0
檢查/order/*/payment url-pattern>是否正確。 –
---/order/161778 /付款是我從地址欄複製的示例網址。 – Shahzeb
如果用戶需要通過幾個小部件批量提交付款,會出現什麼問題? –