Tapestry5用Redirect-After-Post模式保证刷新和后退的安全
Redirect-after-post
Once Tapestry knows which page is next, why doesn't Tapestry just render it and return it? Because Tapestry uses the Redirect-After-Post pattern: it constructs a render request URL to the next page, just like PageLink does, and returns that URL to the browser as a redirect. So when the next page shows, its URL will not be the URL that submitted the form. Its URL will be safe to bookmark, reload or return to. The cost is 2 trips to the server, but it's worth it.
Once Tapestry knows which page is next, why doesn't Tapestry just render it and return it? Because Tapestry uses the Redirect-After-Post pattern: it constructs a render request URL to the next page, just like PageLink does, and returns that URL to the browser as a redirect. So when the next page shows, its URL will not be the URL that submitted the form. Its URL will be safe to bookmark, reload or return to. The cost is 2 trips to the server, but it's worth it.