Spring MVC 學習 之
在學習 Spring Mvc 過程中,有必要來先了解幾個關鍵引數:
@Controller:
在類上註解,則此類將程式設計一個控制器,在專案啟動 Spring 將自動掃描此類,並進行對應URL路由對映。
@Controller public class UserAction { }
@RequestMapping
指定URL對映路徑,如果在控制器上配置 RequestMapping ,具體請求方法也配置路徑則對映的路徑為兩者路徑的疊加 常用對映如:RequestMapping("url.html")
配置對映路徑:
@Controller public class UserAction { @RequestMapping(value = "/get_alluser.html") public ModelAndView GetAllUser(String Id) { } }
以上配置對映
http://***:8080:web1/get_alluser.html:
如在 @Controller新增 @RequestMapping(value = "/user"),則對映路徑變成
http://***:8080:web1/user/get_alluser.html
@ResponseBody
將註解方法對應的字串直接返回
@RequestParam
自動對映URL對應的引數到Action上面的數值,RequestParam 預設為必填引數。
@PathVariable
獲取@RequestMapping 配置指定格式的URL對映引數
/* * 直接輸出 HTML,或JSON 字串 * 請求路徑: * /web1/urlinfo/getcontent.html?key=rhythmk * /web1/urlinfo/getcontent.json?key=rhythmk **/ @ResponseBody @RequestMapping(value = "/getcontent.**") public String GetContent( @RequestParam("key") String key, @RequestParam(value = "key2", required = false, defaultValue = "defaultValue") String key2) { System.out.println("getcontent 被呼叫"); String result = "直接返回內容 - key:" + key + ",key2:" + key2; System.out.println(result); return result; }
/* * RequestMapping 支援 Ant 風格的URL配置 : * 請求路徑: * /urlinfo/geturlant/config.html?key=adddd */ @ResponseBody @RequestMapping(value = "/geturlant/**.html") public String getUrlAnt(HttpServletRequest request) { String result = "?後面的引數為:" + request.getQueryString(); return result; }
/* * 配置指定格式的URL,對映到對應的引數 * 請求路徑:/web1/urlinfo/geturlparam/12_123.html * * */ @RequestMapping(value = "/geturlparam/{id}_{menuId}.html") public ModelAndView getUrlParam(@PathVariable("id") String id, @PathVariable("menuId") String menuId) { ModelAndView mode = new ModelAndView(ShowMsg); mode.addObject("msg", "獲取到的Id:" + id + ",menuId:" + menuId); return mode; }
/* * 只接收Post 請求 */ @ResponseBody @RequestMapping(value = "/posturl.html", method = RequestMethod.POST) public String UrlMethod(@RequestParam String id) { return "只能是Post請求,獲取到的Id:" + id; }
/* * 寫入 cookie * */ @RequestMapping("/writecookies.html") public ModelAndView writeCookies(@RequestParam String value, HttpServletResponse response) { response.addCookie(new Cookie("key", value)); ModelAndView mode = new ModelAndView(ShowMsg); mode.addObject("msg", "cookies 寫入成功"); return mode ; }
/* * 通過 @CookieValue 獲取對應的key的值 * */ @RequestMapping("/getcookies.html") public ModelAndView getCookie(@CookieValue("key") String cookvalue) { ModelAndView mode = new ModelAndView(ShowMsg); mode.addObject("msg", "cookies=" + cookvalue); return mode; }
/* * 將 Servlet Api 作為引數傳入 * 可以在action中直接使用 HttpServletResponse,HttpServletRequest * */ @RequestMapping("/servlet.html") public String Servlet1(HttpServletResponse response, HttpServletRequest request) { Boolean result = (request != null && response != null); ModelAndView mode = new ModelAndView(); mode.addObject("msg", "result=" + result.toString()); return ShowMsg; }
/* * 根據URL傳入的引數例項化物件 * * 如: http://127.0.0.1:8080/web1/urlinfo/getobject.html?UserId=1&UserName=ad * */ @RequestMapping("getobject.html") public ModelAndView getObject(UserInfo user) { String result = "使用者ID:" + user.getUserId().toString() + ",使用者名稱:" + user.getUserName().toString(); ModelAndView mode = new ModelAndView(ShowMsg); mode.addObject("msg", "result=" + result.toString()); return mode; }
實現頁面跳轉:
/* * 實現頁面跳轉 * /web1/urlinfo/redirectpage.html * */ @RequestMapping("/redirectpage.html") public String RedirectPage() { return "redirect:getcookies.html?r=10"; }
直接回傳JSON
請求的URL地址一定是以.json結尾,否則異常
Failed to load resource: the server responded with a status of 406 (Not Acceptable) : The resource identified by this request is only capable of generating responses with characteristics not acceptable according to the request "accept" headers ()
回傳實體:
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) public class UserInfo { private Integer UserId; public Integer getUserId() { return UserId; } public void setUserId(Integer userId) { UserId = userId; } public String getUserName() { return UserName; } public void setUserName(String userName) { UserName = userName; } private String UserName; }
回傳 action
@ResponseBody @RequestMapping("/getuser.json") public UserInfo GetUser() { System.out.println("getuser"); UserInfo model=new UserInfo(); model.setUserId(100); model.setUserName("王坤"); return model; }
請求:
/web1/urlinfo/getuser.json
輸出:
{"userId":100,"userName":"王坤"}
相關推薦
Spring MVC 學習 之
在學習 Spring Mvc 過程中,有必要來先了解幾個關鍵引數: @Controller: 在類上註解,則此類將程式設計一個控制器,在專案啟動 Spring 將自動掃描此類,並進行對應URL路由對映。 @Controller public class UserActi
spring mvc 學習記錄之@RequestMapping與靜態資源重名
當配置了@Controller,@RequestMapping,以及靜態資源後,可以通過 .html 、.do、.action的路徑字尾來進行訪問,但是通過 .jsp 的字尾訪問不到,也可以不加字尾,直接用路徑進行訪問。 如果配置了靜態資源,此時如果重名(如.html),那
Spring MVC 學習總結之FreeMarker模板引擎與動態頁面靜態化
目錄 一、FreeMarker簡介 二、第一個FreeMark示例 2.1、新建一個Maven專案 2.2、新增依賴 2.3、新增存放模板的資料夾 2.4、新增模板 2.5、解析模板
Spring MVC學習總結(14)——SpringMVC測試框架之mockMVC詳解
SpringMVC測試框架 基於RESTful風格的SpringMVC的測試,我們可以測試完整的Spring MVC流程,即從URL請求到控制器處理,再到檢視渲染都可以測試。 一 MockMvcBuilder MockMvcBuilder是用來構造MockMvc的構造器,其主要有兩個實現:Standalone
Spring MVC學習筆記
實現 world use 裏的 rate lang 復制 urn bean 一、SpringMVC基礎入門,創建一個HelloWorld程序 1.首先,導入SpringMVC需要的jar包。 2.添加Web.xml配置文件中關於SpringMVC的配置 <
Spring-mvc學習筆記
odin bundle click 客戶端請求 object body axu 匹配 多個 一、SpringMVC基礎入門,創建一個HelloWorld程序 1.首先,導入SpringMVC需要的jar包。 2.添加Web.xml配置文件中關於SpringMVC的配置
spring boot 學習之路3( 集成mybatis )
sys pat min lba asn ria [] system emp 下面就簡單來說一下spring boot 與mybatiis的整合問題,如果你還沒學習spring boot的註解的話,要先去看spring boot的註解 好了,現在讓我們來搞一下與mybat
Spring MVC學習回顧
順序 技術 patch 這一 slow .html produces 前綴 處理請求 Spring MVC是現在新項目中使用最多的MVC框架,超越了Structs2成為MVC框架的首選。今天抽時間看了4.2.x的官網翻譯文檔及相關代碼,博客,將印象比較深的幾點記錄一下。
Spring MVC學習總結
整合 編寫 bat follow ref 轉換 3.1 subjects rds Spring MVC學習總結 Spring MVC學習路(一) 下載配置文件 Spring MVC學習路(二) 設置配置文件 Spring MVC學習路(三) 編寫第一個demo Spring
Spring MVC學習入門筆記
分享圖片 快捷 png epo 為什麽 學習 -c ava 報錯 使用Spring步驟 添加依賴 創建xml文件 配置(需要被管理的類)bean 實例化上下文類 GetBean對象 使用idea新建一個maven項目,在pom.xml中添加依賴: <depe
ASP.NET MVC學習之Ajax(完結)
等待 failure lba info 學習 有一個 代碼 orm 修改 網址:https://www.cnblogs.com/yaozhenfa/p/asp_net_mvc_ajax.html 一.前言 通過上面的一番學習,大家一定收獲不少。但是總歸會有一個結束的時候
Spring mvc 學習筆記
映射 finall 解析 num 2個 接口 ltview 必須 determine Spring MVC的發展歷程 所有的mvc框架都是從Servlet模型發展而來,因此,先了解Servlet模型 Servlet 在Servlet模型中,請求-響應模型實現依賴於兩大
Spring MVC 學習總結(十一)——IDEA+Maven+多模組實現SSM框架整合
一、SSM概要 與SSH(Struts/Spring/Hibernate/)一樣,Spring+SpringMVC+MyBatis也有一個簡稱SSM,Spring實現業務物件管理,Spring MVC負責請求的轉發和檢視管理, MyBatis作為資料物件持久化引擎。這樣搭配的優點是:輕量、自由度高、Spri
MVC、Spring MVC 學習筆記
一、MVC 1、Model 模型層,可以簡單理解就是資料層,用於提供資料。在專案中,(簡單理解)一般把資料訪問和操作,比如將物件關係對映這樣的程式碼作為Model層,也就是對資料庫的操作這一些列的程式碼作為Model層。比如程式碼中我們會寫DAO和DTO型別的程式碼,那這個DAO和DTO
spring原始碼學習之路---IOC容器初始化要義之bean定義載入(四)
上章說到要帶各位去看看bean定義載入的要義,其實就是loadBeanDefinitions這個方法的具體實現步驟,下面我們跟隨這個方法去看下它到底是如何載入bean定義的。 上面是我擷取的實現了loadBeanDefinitions的類級別截圖,loadBeanDefinit
spring原始碼學習之路---深度分析IOC容器初始化過程(三)
分析FileSystemXmlApplicationContext的建構函式,到底都做了什麼,導致IOC容器初始化成功。 public FileSystemXmlApplicationContext(String[] configLocations, boolean ref
spring原始碼學習之路---IOC實現原理(二)
上一章我們已經初步認識了BeanFactory和BeanDefinition,一個是IOC的核心工廠介面,一個是IOC的bean定義介面,上章提到說我們無法讓BeanFactory持有一個Map package org.springframework.beans.factory.supp
spring原始碼學習之路---IOC初探(一)
首先把spring原始碼匯入,怎麼匯入百度下。 首先我們來說一下IOC,IOC是spring最核心的理念,包括AOP也要屈居第二,那麼IOC到底是什麼呢,四個字,控制反轉。 網上有不少是這麼解釋IOC的,說IOC是將物件的建立和依賴關係交給容器,這句話我相信不少人都知道,在我個人的理解
Spring MVC 學習筆記(二):@RequestMapping用法詳解
一、@RequestMapping 簡介 在Spring MVC 中使用 @RequestMapping 來對映請求,也就是通過它來指定控制器可以處理哪些URL請求,相當於Servlet中在web.xml中配置 <servlet>
Spring MVC學習(三)
新建一個web project專案 嚴重: Context initialization failed org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML docum