簡述表單常用的兩種提交方式 表單提交方法由什么屬性決定?
表單提交方法由什么屬性決定?由form的method屬性決定,可以是post getform表單的get方法和post方法提交的數(shù)據(jù)如何接收?GET請求的數(shù)據(jù)會附在URL之后(就是把數(shù)據(jù)放置在HTTP
表單提交方法由什么屬性決定?
由form的method屬性決定,可以是post get
form表單的get方法和post方法提交的數(shù)據(jù)如何接收?
GET請求的數(shù)據(jù)會附在URL之后(就是把數(shù)據(jù)放置在HTTP協(xié)議頭中),以分割URL和傳輸數(shù)據(jù),參數(shù)之間以amp相連,如: POST是通過HTTP POST機制,將表單內各個字段與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。
spring如何控制重復提交?
防止表單重復提交的兩種 1)通過重定向 采取請求轉發(fā)的完成表單內容的添加會造成內容的重復插入?! ‘斚騍ervlet發(fā)送一條增加記錄的請求后,servlet首先向數(shù)據(jù)庫增加一條記錄,然后又從數(shù)據(jù)庫中查詢出所有數(shù)據(jù),接著轉發(fā)到另一個頁面,這時,頁面上瀏覽器的地址顯示的是servlet的地址,當用戶刷新頁面時,又會向servlet發(fā)送一條添加請求,這樣會導致數(shù)據(jù)庫中重復數(shù)據(jù)不斷增加。 解決辦法:采用重定向的添加數(shù)據(jù)不會導致數(shù)據(jù)的重復插入或刪除。 向servlet發(fā)送一個添加請求時,這個servlet只執(zhí)行添加操作,然后重定向到另一個servlet進行數(shù)據(jù)的查詢,最后轉發(fā)到顯示頁面?! ?)通過Session Token(Session令牌) 當客戶端第一次向服務器端發(fā)送請求的時候,服務器會通過Token標簽,并且會將這個字符串放到session中,然后將這個字符串發(fā)送給客戶端,在提交之前頁面上就有了一個字符串,服務器端也有一個字符串,兩個字符串的內容是一樣的,當你提交的時候,服務器會比較兩個字符串是不是一樣的,如果是一樣的,就是第一次提交,并且更新服務器端的字符串;如果此時再次重復提交,服務器端的字符串已經(jīng)發(fā)生改變而頁面中的那個字符串還沒有變,這時,你提交的時候兩個字符串就不匹配了,服務器端就會認為是第二次提交,這樣,服務器就不會再讓提交了,進而轉向那ltresultgt所指向的頁面?! ∑鋵嵕褪堑诙闻c第一次jsp頁面向服務器提交的內容和第一次一模一樣,當在瀏覽器上返回前一頁時,表單中提交的內容和第一次也是易語言的,所以這種情況下提交也會失敗,當返回前面一夜然后刷新,刷新相當于向服務器發(fā)送了一次請求,所以這樣提交就可以成功。