01/10/2018, 08:33
Submit form trong jsp
Anh chị cho em hỏi em có 1 trang JSP sau khi submit giá trị lên Servlet nó lưu vào Database rồi…Nếu em F5 lại 1 lần nữa thì nó lại lưu thêm 1 lần nữa…Em xin hỏi là có cách nào để ngăn k cho nó submit khi F5 không ạ
Em xin cảm ơn
Bài liên quan
hóng câu trả lời :3
mh cũng mới học, thấy khi f5 lại nó có đoạn thông báo này mà :
http://stackoverflow.com/questions/1317486/how-to-avoid-resubmit-in-jsp-when-refresh
Giải pháp ở đây
Mình tạm dịch như sau, có 2 giải pháp cho vấn đề trên:
Nhưng nếu dùng SendRedirect thì bên trang jsp không nhận được dữ liệu bên Controller gửi về ạ…như thế sẽ không hiện được danh sách dưới database lên trang View
mh xem trong đây ng ta làm có 2 cái servlet chẳng hiểu gì luôn : ai giải thích giùm vs :3
http://theopentutorials.com/tutorials/java/design-patterns/post-redirect-get-prg-pattern-in-servlet-jsp/
dùng ajax đó nhanh hơn, vì cái kia nó là onclick ko phải submit nên tải lại nó ko bị lưu lại lần nữa .
à đâu onclick vs submit đều ko bị hic :3
bạn để ý nếu bạn gửi 1 request bất kì thì trên url của nó sẽ chứa nội dung của request >>> nếu bạn f5 hoặc reload lại trang thì cũng tương đương với việc chạy lại cái request đó
hic b nói tiếng việt mà t vẫn thấy mông lung =))
bạn xem cái hình mà bạn post lên nó đã giải thích hết rồi đó
nếu bạn submit form nó sẽ chạy request : servletPRGMVC/employee.do nhưng trên url của trang web bạn sẽ chỉ thấy request : servletPRGMVC/displayEmployee.do >>>nếu bạn có f5 trang đi nữa thì nó sẽ chỉ chạy ervletPRGMVC/displayEmployee.do mà không chạy servletPRGMVC/employee.do bạn cứ viết code ra đi sẽ thấy …
cái này bên spring framework nó có hỗ trợ 1 kiểu model đó là RedirectAttribute tức là các model này sẽ tồn tại cho đến redirect tiếp theo , nếu dùng jsp thuần thì bạn phải lưu dữ liệu của request trước lại và truyền cho redirect tiếp theo dùng biến session hoặc biến request đều được…