重定向解决页面刷新重复提交请求的原因,主要是浏览器的地址在影响。
例如a.jsp跳转到c.jsp时,
直接转发
a.jsp-----请求1------>servlet.java-----请求1------>c.jsp
跳转到c.jsp后,浏览器的地址为访问servlet.java的地址,刷新时依旧是该地址,因此又向c.jsp再次发送请求,导致重复提交请求。
重定向
a.jsp-----请求1---->servlet.java
servlet.java----发送新的url----->a.jsp
a.jsp------请求2---->servlet.java----->c.jsp
跳转到c.jsp后,浏览器的地址为访问c.jsp的地址,刷新时依旧是该地址,因此不会再次发送请求,从而导致重复提交请求。