首先咱們的界面在返回的時候回根據咱們的配置信息進行路徑的查找 而後會識別咱們的控制器返回的字符串(其實就是界面的名字)而找到界面的信息,eg:若是咱們返回的是success那麼就會去找咱們的WEB-INF下的對應的success.jsp或者success.html界面html
控制層:java
/** * 請求參數綁定 */ @Controller @RequestMapping(value = "/param") public class paramController { @RequestMapping("/testParams") public String testParam(){ System.out.println("執行了....."); return "success"; } }
而後請求返回的就是咱們的success界面python
註解:app
要在類上加@Controller 註解是等於把類交給ioc容器進行管理 而且讓咱們的配置能夠經過這個@Controller註解識別到這個類jsp
java的註解長得相似於python的裝飾器可是做用是不一樣的,由於java的註解只是爲了聲明這個方法或者類具備這個功能,功能是提早定義好的或者自帶的,可是要手動加上,而python的裝飾器的做用是本身定義那些不改變函數的方法的形式而增長的功能函數
請求註解:RequestMappingurl
創建請求url和處理方法之間的對應關係spa
當咱們的請求進來的時候要進行url的定義就是經過RequestMapping,而且RequestMapping 能夠多級分發,java的url是一級一級的去找 而不是直接定義完整的urlcode
像上面的完整的url就是/params/testParamshtm
RequestMapping 的參數:
path 接受定義的url
value 和path的做用相同,都是接受url二者用哪一個均可以
1. path 指定請求路徑的url 2. value 和path屬性同樣 3. mthod 指定該方法的請求方式 4. params 指定限制請求參數的條件 5. headers 發送的請求中必須包含的請求頭
path/value屬性
若是RequestMapping中只有這一個屬性能夠省略不寫
@RequestMapping("/testParams") //能夠省略path/value不寫 public String testParam(){ System.out.println("執行了....."); return "success"; }
method屬性
聲明請求方式
@RequestMapping(value = "/param",method = RequestMethod.GET)
上面是聲明請求方式只能爲GET方法 其他方法不可使用
若是想要定義多個請求方式能夠以下:
metgod = {請求方式}
@RequestMapping(value = "/param",method = {RequestMethod.GET,RequestMethod.POST})
上面就是定義/params這個url使用的時候能夠是GET也能夠是POST
params:請求參數
若是定義了params那麼請求的時候必須攜帶這個參數
@Controller
@RequestMapping(value = "/param",method = {RequestMethod.GET,RequestMethod.POST}, params={"username"})
上面是規定請求的時候必須攜帶params中的username的參數 不然就不容許
默認參數:
@RequestMapping(path = "/hell",method={RequestMethod.GET, RequestMethod.POST},params={"username=hehe"}) // params能夠規定死的參數
規定請求參數必須是hehe不然就報錯
headers:
規定請求頭,
@RequestMapping(path = "/hell",method={RequestMethod.GET, RequestMethod.POST},params={"username=hehe"},headers = {"Accept"})
規定咱們的請求必需要攜帶這個請求頭