@controller //表示是乙個控制器
public class helloworld
}
1.method=requestmethod.post : 表示此處理方法只能夠處理post請求
2.method=requestmethod.get : 表示此處理方法只能夠處理get請求
3.method=requestmethod.delete : 表示此處理方法只能夠處理delete請求
4.method=requestmethod.put : 表示此處理方法只能夠處理put請求
範例一.指定請求引數
使用params指定請求引數,因為引數可能有多個,所以使用乙個陣列來表示
params= : 表示請求引數必須包含name 和 age,否則出現404錯誤
params= :表示請求引數必須包含name 和 age,而且name的引數值必須為jjm,否則出現404
params= :表示請求引數必須包含name 和 age,而且name的引數值必須不能為為jjm,否則出現404
params= :表示請求引數必須包含name,但是不能存在age引數,而且name的引數值必須為jjm,否則出現404
範例二:指定請求頭,請求頭和請求引數是同樣的道理
使用headers指定請求頭,因為請求頭可能有多個,所以使用乙個陣列來表示headers= :表示必須包含connection請求頭,而且只必須是keep-alive
@pathvariable註解時用來對映url繫結的佔位符,是spring3.0中新增的功能,這個功能在springmvc向rest目挺近的過程中具有里程碑式的意義,通過@pathvariable註解可以將url中佔位符引數繫結要請求處理器的目標方法入參中,url中佔位符通過@pathvariable(「***」)註解繫結要目標方法的入參中。
public string testpathvariable(@pathvariable("name")string name,@pathvariable("age")integer age)
/* /testpathvariable// : 表示會通過url佔位符的形式傳遞兩個引數過來,乙個是name,另外乙個是age
* 處理器的目標方法中使用@pathvariable("name") string name 獲取url佔位符中的name引數,並且賦值給目標方法的入參name
* 處理器的目標方法中使用@pathvariable("age")integer age 獲取url佔位符中的age引數,並且賦值給目標方法的入參age
*
rest:representational state transfer 叫做資源表現層狀態轉化,是目前最流行的一種網際網路軟體架構,rest結構清晰,符合標準,易於理解,便於擴充套件,所以目前得到了越多越多的**使用。轉台轉化:每次傳送乙個請求,表示客戶端和服務端的一次互動過程,http協議是乙個無狀態的協議,即所有的狀態都儲存在伺服器端,因此如果客戶想要操作伺服器,必須通過某種手段,讓伺服器端發生狀態轉化,而這種轉化是建立在表現層的,所以就叫做資源表現出狀態轉化,具體的說,就是在http協議中,使用get請求來獲取資源,使用post請求來新建資源,使用put請求來更新資源,使用delete請求來刪除資源 ,http協議中存在get請求和post請求,如果傳送put和delete請求呢,springmvc可以將post請求轉換成put或者delete請求,這就是springmvc提供的資源表現層狀態轉化。所以在我們後續的開發中,不僅僅只有post和get請求了,還存在delete和put請求。
例項:get請求查詢資料:/user/1 表示查詢id為1的資源
post請求新增資料:/user表示新增資源
delete請求刪除資源:/user/1 表示刪除id為1的資源
put 請求修改資源 :/user/1 表示修改id為1的資源
/*②:編寫請求處理器
/**
* 刪除
* @param id
* @return
*/public string deletebyid(@pathvariable("id") integer id)
/*** 修改
* @param id
* @return
*/public string updatebyid(@pathvariable("id") integer id)
/*** 新增
* @return
*/public string insert()
/*** 查詢
* @param id
* @return
*/public string selectbyid(@pathvariable("id") integer id)
③:編寫請求頁面
test restful get
說明:引數名一定要_method
引數值delete或者put有沒有大小寫的限制
可以不使用隱藏域傳遞_mthod,但是存在問題,使用text顯示的話可能會被使用者修改,所以建議使用hidden隱藏域
對於rest風格的url
在請求處理器的目標方法中,通過入參就可以獲取請求引數的資訊
約定:目標方法入參引數名和 請求引數名稱一致,就會自動匹配
指定方式:使用@reuqestparam註解指定匹配的請求引數名稱,此種情況下,如果沒有對應的指定的請求引數,則會報錯,我們可以使用required=false屬性表示引數非必須,如果獲取不到非必須的引數,會設定為null,defaultvalue 表示設定預設值。
對於新增或修改時,表單傳遞的引數很多,實際上都能夠對應到實體類的屬性,對於接收表單引數
時間盲注手注
基於時間的盲注 時間的概念 使用特定函式讓資料庫去執行,通過自己的設定,來檢視資料庫是否get到我們的請求 函式sleep 設定資料庫的延時或者暫停的時間 函式limit 0,1 限制第乙個的第乙個字元 函式mid 1,1 從第乙個字元開始擷取,只擷取乙個 函式benchmark 引數一,引數二 第...
布林盲注手注
布林盲注 mid str,1,3 字串擷取 意思就是把str這個字串從第乙個字串開始,擷取前三個顯示 substr 這個函式和上面的用法一樣,也是用來擷取字串的 ord 轉換成ascii碼 length 統計長度 version 是檢視資料庫版本 database 檢視當前資料庫名 user 檢視當...
SQL盲注 時間盲注,dnslog盲注
時間盲注原理 id get id sql select from users where id id limit 0,1 result mysql query sql row mysql fetch array result if row else 存在sql注入漏洞 然而頁面不會回顯資料,也不會回...