可能有缓存,还有你的实现不好....
1.缓存的处理方法 可以通过过滤器,或者有response的地方(如:jsp页面)
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0L);
2.技术实现
一般情况下,都不太用response.sendRedirect("") .
用这个得比较多request.getRequestDispatcher("").forward(request,response);
具体 forward 和 redirect的区别,你可以网上查查,相信你面试前准备的时候都背过
3.业务实现
你这里用了一个技巧, 获得刚刚过来的页面的路径request.getHeader("Referer"),这样动态性确实不错.
不过一般的处理方式是,:
列表 -> 删除 -> 列表 select.do -> delete.do -> select.do
列表->编辑->删除->列表 select.do -> view.do->delete.do->select.do
这个你应该能明白.
前面的没什么,就是你在删除后,再跳转到查询页面(是通过后台,不是直接jsp跳转),再查询一遍,这样就不会出现脏数据了(如果出现,可能是别的原因)
你试试
这是因为jsp刷新的时候没有进行剔除id查询。
一般删除数据成功了,但显示页面还有显示
说明显示页面上显示并不是数据库里的数据
建议做一个删除后自动跳转到查询页面,再访问一次数据库,这样就可以不显示删除后的数据。
可以这样:
第一,使用 ajax 方式删除,删除以后,直接在页面上 remove 掉相应的行即可
第二,重定向方式删除,删除掉以后,再查询一遍数据,转发到显示的页面
request.getDispatcher("xxx.jsp").forward(request,response);
用response.sendRedirect("XXX.jsp");删除后直接跳回之前的页面试试
删完记录后再调用一次查询方法,查询方法返回JSP