在一个主页面例如: userList.jsp,调用“添加”按钮,进入insertUser.jsp,insertUser.jsp提交的时候请求InsertUser这个Servlet,在Servlet里执行完操作后通过 forward()方法返回到 userList.jsp
但是刷新userList.jsp的时候会重复执行刚才的插入操作。 分析原因: 从userList.jsp进入inserUser.jsp,窗口的location变为 ...../inserUser.jsp, 然后insertUser.jsp请求Servlet,window.location变为 ../InsertUser 而Servlet里通过forward()来把中间页面切换到userList.jsp,但是window.location依然是../InsertUser
这样刷新的时候,就重新请求InsertUser,又执行了一次插入操作
要解决这个问题当然可以在InsertUser里用response.sendRedirect("/userList.jsp")来改变window.location; 也可以通过直接在InsertUser里打印一段js代码带改变window.location的值
但是,我奇怪的是insertUser.jsp里的值怎么返回到userList页面的时候还存在呢,里面的属性不都应该是request属性吗,请求结束后就不存在了, 难道是缓存?
|
|