SpringMVC:
一葱峡、RequestMapping
? ? ? ? 1、在方法上使用@RequestMapping注解來映射請求的URL
? ? ? ? ? ? ? ? 返回值會通過視圖解析器解析為實際的物理視圖矫夯,前綴+返回值+后綴,然后轉(zhuǎn)發(fā)。
? ? ? ? ? ? ? ? @RequestMapping既可以修飾方法跷跪,也可以修飾類柠傍,
? ? ? ? ? ? ? ? 類定義處:提供初步的請求映射麸俘,對應(yīng)WEB應(yīng)用的根目錄
? ? ? ? ? ? ? ? 方法定義處:提供進(jìn)一步的細(xì)節(jié)映射信息
? ? ? ? 2、@RequestingMapping()中的value,method,
? ? ? ? ? ? ? ? value指定請求URL
? ? ? ? ? ? ? ? method指定請求方式:method = RequestMethod.POST.......
? ? ? ? ? ? ? ? params指定請求參數(shù)惧笛,支持表達(dá)式:
? ? ? ? ? ? ? ? ? ? ? ? param1:請求必須包含名為param1的請求參數(shù)
? ? ? ? ? ? ? ? ? ? ? ? 从媚!param1:不能包含命名為這個的請求參數(shù)
? ? ? ? ? ? ? ? ? ? ? ? param1!=value1:必須包含名為param1的參數(shù),但其值不能是value1
? ? ? ? ? ? ? ? ? ? ? ? {"param1=value1","param2"}:必須包含param1,param2,且param1的值必須為value
? ? ? ? ? ? ? ? heads指定請求頭
? ? ? ? ? ? ? ? 了解:
? ? ? ? ? ? ? ? ? ? ? ? 可以使用params和headers來更加精確的映射請求患整,params與headers支持簡單
? ? ? ? ? ? ? ? ? ? 的表達(dá)式拜效。
? ? ? ? 3、@RequestMapping()映射URL時支持通配符各谚,通配符需要使用Ant風(fēng)格紧憾,
? ? ? ? ? ? ? ? Ant風(fēng)格資源地址 支持3種匹配符:
? ? ? ? ? ? ? ? ? ? ? ? ?:匹配文件名中的一個字符
? ? ? ? ? ? ? ? ? ? ? ? * :匹配文件名中的任意字符
? ? ? ? ? ? ? ? ? ? ? ? ** : **匹配多層路徑
? ? ? ? 4嘲碧、@PathVariable可以來映射URL中的占位符到目標(biāo)方法的參數(shù)中稻励。
? ? ? ? 5、REST風(fēng)格:(資源)表現(xiàn)層轉(zhuǎn)化愈涩,最流行的一種互聯(lián)網(wǎng)軟件架構(gòu)
? ? ? ? ? ? HTTP 協(xié)議里面望抽,四個表示操作方式的動詞:GET、POST履婉、PUT煤篙、DELETE。
? ? 它們分別對應(yīng)四種基本操作:
? ? ? ? ? ? ? ? GET 用來獲取資源POST 用來新建資源PUT 用來更新資源DELETE 用來刪除毁腿。
? ? ? ? Rest風(fēng)格的URL:
? ? ? ? ? ? ? ? 以CRUD為例:
? ? ? ? ? ? ? ? ? ? 新增:? /order? ? POST
? ? ? ? ? ? ? ? ? ? 修改:? /order/1? ? PUT? ? ? ? ? ? update?id=1
? ? ? ? ? ? ? ? ? ? 獲燃巍:? /order/1? ? GET? ? ? ? ? ? get?id = 1
? ? ? ? ? ? ? ? ? ? 刪除:? /order/1? ? DELETE? ? ? delete?id=1
? ? ? ? ? ? ? ? 如何發(fā)送delete與put請求苛茂?
? ? ? ? ? ? ? ? ? ? 1.? ? 需要配置hiddenHttpMethodFilter
? ? ? ? ? ? ? ? ? ? 2.? ? 需要發(fā)送POST請求
? ? ? ? ? ? ? ? ? ? 3.? ? 需要在發(fā)送POST請求時攜帶一個name="_method"的隱藏域,值為DELETE? ? ? ? ? ? ? ? ? ? ? 或PUT
? ? ? ? ? ? ? ? 在SpringMVC的目標(biāo)方法中如何得到id呢鸠窗?
? ? ? ? ? ? ? ? ? ? 使用@PathVariable注解即可妓羊。
? ? ? ? ? ? 6、使用@RequestParam綁定請求參數(shù)值
? ? ? ? ? ? ? ? @RequestParam來映射請求參數(shù):
? ? ? ? ? ? ? ? ? ? ? ? value? ? 值即請求參數(shù)的參數(shù)名
? ? ? ? ? ? ? ? ? ? ? ? required? ? 該請求是否必須稍计,默認(rèn)為 true
? ? ? ? ? ? ? ? ? ? ? ? defaultValue? ? 請求參數(shù)的默認(rèn)值
? ? ? ? ? 7躁绸、@RequestHeader映射請求頭信息
? ? ? ? ? ? ? ? 用法同@RequestParam
? ? ? ? ? 8、@CookieValue映射一個Cookie值臣嚣,屬性同@RequestParam
? ? ? ? ? 9净刮、Spring MVC 會按請求參數(shù)名和 POJO 屬性名進(jìn)行自動匹配,自動為該對象填充屬性
? ? 值硅则。支持級聯(lián)屬性淹父。
? ? ? ? 如:dept.deptId、dept.address.tel 等
? ? ? ? ? 10怎虫、可以使用Serlvet原生的API作為目標(biāo)方法的參數(shù)暑认,具體支持以下類型:
? ? ? ? ? ? ? ? HttpServletRequest
? ? ? ? ? ? ? ? HttpServletResponse
? ? ? ? ? ? ? ? HttpSession
? ? ? ? ? ? ? ? java.security.Principal
? ? ? ? ? ? ? ? Locale
? ? ? ? ? ? ? ? InputStream
? ? ? ? ? ? ? ? OutputStream
? ? ? ? ? ? ? ? Reader
? ? ? ? ? ? ? ? ? Writer