日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringMVC响应使用案例(带数据页面跳转,快捷访问路径,返回json数据)

發布時間:2025/3/15 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringMVC响应使用案例(带数据页面跳转,快捷访问路径,返回json数据) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

頁面跳轉

  • 轉發(默認)
@RequestMapping("/showPage1") public String showPage1() {System.out.println("user mvc controller is running ...");// return "WEB_INF/pages/forward:page.jsp";這種方式不支持重定向,只能支持轉發格式的return "forward:page.jsp"; }
  • 重定向
@RequestMapping("/showPage2")public String showPage2() {System.out.println("user mvc controller is running ...");return "redirect:page.jsp"; }

注意:
1、頁面訪問地址中所攜帶的 /
2、如果目錄是在其它層級,那么在返回時候需要加上層級目錄

頁面訪問快捷設定 (InternalResourceViewResolver)

  • 展示頁面的保存位置通常固定,且結構相似,可以設定通用的訪問路徑,簡化頁面配置格式,在運行的時候會自動把設置的路徑拼接上去。
  • 如果配置了快捷的這種方式,是不支持使用轉發和重定向的。
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- prefix:前綴 suffix:后綴--><property name="prefix" value="/WEB-INF/pages/"/><property name="suffix" value=".jsp"/> /bean>

在代碼里因為配置文件已經做了拼接了,所以直接寫頁面名稱就可以了,不需要寫前后綴了

public String showPage3() {return "page"; }

如果未設定返回值,使用void類型,則默認使用訪問路徑作頁面地址的前綴后綴

//最簡頁面配置方式,使用訪問路徑作為頁面名稱,省略返回值 @RequestMapping("/page") public void showPage5() {System.out.println("user mvc controller is running ..."); }

帶數據頁面跳轉

方式一:使用HttpServletRequest類型形參進行數據傳遞

@RequestMapping("/showPageAndData1") public String showPageAndData1(HttpServletRequest request) {request.setAttribute("name","itzhuzhu");return "page"; }

page.jsp

${name}

方式二:使用Model類型形參進行數據傳遞

@RequestMapping("/showPageAndData2") public String showPageAndData2(Model model) {model.addAttribute("name","itzhuzhu");Book book = new Book();book.setName("SpringMVC入門實戰");book.setPrice(66.6d);model.addAttribute("book",book);return "page"; }

方式三:使用ModelAndView類型形參進行數據傳遞,將該對象作為返回值傳遞給調用者

//使用ModelAndView形參傳遞參數,該對象還封裝了頁面信息 @RequestMapping("/showPageAndData3") public ModelAndView showPageAndData3(ModelAndView modelAndView) {//ModelAndView mav = new ModelAndView(); 替換形參中的參數// 轉發和重定向不能加xml快捷頁面訪問// 轉發modelAndView.setViewName(forward:page.jsp");// 重定向modelAndView.setViewName("redirect:page.jsp");Book book = new Book();book.setName("SpringMVC入門案例");book.setPrice(66.66d);//添加數據的方式,key對valuemodelAndView.addObject("book",book);//添加數據的方式,key對valuemodelAndView.addObject("name","Jockme");//設置頁面的方式,該方法最后一次執行的結果生效modelAndView.setViewName("page");//返回值設定成ModelAndView對象return modelAndView; }

三種方式總結:

  • String:僅封裝頁面的基本信息,底層由ModeAndView實現
  • Model:僅封裝數據
  • ModelAndView:封裝數據并封裝視圖,包含Model和View兩個對象

返回json數據

需要先導入json的三個坐標:

<!--json相關坐標3個--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.0</version></dependency>

方式一:基于response返回數據的簡化格式,返回JSON數據

//使用jackson進行json數據格式轉化 @RequestMapping("/showData3") @ResponseBody //將java對象轉為json格式的數據 public String showData3() throws JsonProcessingException {Book book = new Book();book.setName("SpringMVC入門案例");book.setPrice(66.66d);ObjectMapper om = new ObjectMapper();return om.writeValueAsString(book); }

方式二:使用SpringMVC提供的消息類型轉換器將對象與集合數據自動轉換為JSON數據

//使用SpringMVC注解驅動,對標注@ResponseBody注解的控制器方法進行結果轉換,由于返回值為引用類型,自動調用jackson提供的類型轉換器進行格式轉換 @RequestMapping("/showData4") @ResponseBody public Book showData4() {Book book = new Book();book.setName("SpringMVC入門案例");book.setPrice(66.66d);return book; }

需要手工添加信息類型轉換器

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"><property name="messageConverters"><list><bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/></list></property> </bean
  • 方式三:使用SpringMVC注解驅動簡化配置
<!--開啟springmvc注解驅動,對@ResponseBody的注解進行格式增強,追加其類型轉換的功能,具體實現由MappingJackson2HttpMessageConverter進行--> <mvc:annotation-driven/>

注解驅動格式:

@EnableWebMvc // 加這個注解 public Book showData5() {}

Servlet相關接口-Servlet相關接口替換方案

SpringMVC提供訪問原始Servlet接口API的功能,通過形參聲明即可

@RequestMapping("/servletApi") public String servletApi(HttpServletRequest request,HttpServletResponse response, HttpSession session){System.out.println(request);System.out.println(response);System.out.println(session);request.setAttribute("name","itzhuzhu");System.out.println(request.getAttribute("name"));return "page.jsp"; }

Head數據獲取

  • 名稱: @RequestHeader
  • 類型: 形參注解
  • 位置:處理器類中的方法形參前方
  • 作用:綁定請求頭數據與對應處理方法形參間的關系
@RequestMapping("/headApi") public String headApi(@RequestHeader("Accept-Language") String head){System.out.println(head);return "page.jsp"; }

Cookie數據獲取

  • 名稱: @CookieValue
  • 類型: 形參注解
  • 位置:處理器類中的方法形參前方
  • 作用:綁定請求Cookie數據與對應處理方法形參間的關系
@RequestMapping("/cookieApi") public String cookieApi(@CookieValue("JSESSIONID") String jsessionid){System.out.println(jsessionid);return "page.jsp"; }

Session數據獲取

  • 名稱: @SessionAttribute
  • 類型: 形參注解
  • 位置:處理器類中的方法形參前方
  • 作用:綁定請求Session數據與對應處理方法形參間的關系
@RequestMapping("/sessionApi") public String sessionApi(@SessionAttribute("name") String name,@SessionAttribute("age") int age){System.out.println(name);System.out.println(age);return "page.jsp"; }

Session數據設置

  • 名稱: @SessionAttributes
  • 類型: 類注解
  • 位置:處理器類上方
  • 作用:聲明放入session范圍的變量名稱,適用于Model類型數據傳參
@Controller @SessionAttributes(names={"name"}) public class ServletController {@RequestMapping("/setSessionData2")public String setSessionDate2(Model model) {model.addAttribute("name", "Jock2");return "page.jsp";} }

注解式參數數據封裝底層原理

  • 數據的來源不同,對應的處理策略要進行區分
  • Head
  • Cookie
  • Session
  • SpringMVC使用策略模式進行處理分發
  • 頂層接口: HandlerMethodArgumentResolver
  • 實現類: ……
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的SpringMVC响应使用案例(带数据页面跳转,快捷访问路径,返回json数据)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品亚洲精品 | 欧美在线一区二区三区四区 | 国产精品wwww | 69人妻一区二区三区 | 人妻熟女一区二区aⅴ水 | 麻豆亚洲| 亚洲AV无码国产精品 | 裸体一区二区 | 中文字幕在线观看不卡 | 亚洲av综合色区无码二区爱av | 精品一区二区久久久 | 国产精品一区二区三区久久久 | 国内自拍视频在线播放 | 少女忠诚电影高清免费 | 在线免费观看av网 | 人妻中文字幕一区二区三区 | 尹人综合在线 | 爱爱免费网站 | 四虎在线免费视频 | 欧美男人操女人 | 欧美情侣性视频 | 欧美用舌头去添高潮 | 久色免费视频 | 老司机午夜视频 | 成人高清在线观看 | 成人三级图片 | 午夜不卡福利视频 | 亚洲热久久 | 中文字幕视频在线 | 久久精品国产清自在天天线 | 夜夜爱夜夜操 | 中文字幕无线码 | 亚洲丁香婷婷 | 新av在线 | 伦hdwww日本bbw另类 | av永久免费 | 欧美日韩精品一区二区三区蜜桃 | 波多野结衣国产在线 | 亚洲天堂av一区 | 波多野结衣1区 | 欧美成人免费在线观看视频 | 精品视频在线免费观看 | 黄色录像三级 | 丰满岳妇乱一区二区三区 | 97成人资源站 | 国产成人无码www免费视频播放 | 人体私拍套图hdxxxx | 久操视频在线播放 | 欧美久久久久久久久久久久久久 | 国产欧美一区二 | 日韩欧美国产三级 | 一区二区三区四区中文字幕 | 欧美色图片区 | 国产aⅴ精品一区二区三区久久 | av在线视| 国产亚洲精品久久久久婷婷瑜伽 | 飘花影院伦理片 | 欧美成人手机在线视频 | www.日韩av | 欧美人与性动交a欧美精品 日韩免费高清视频 | www三级免费 | 福利一区二区视频 | 一区二区视频免费 | 激情777| 按摩毛片 | 日韩中文字幕不卡 | 男人操女人网站 | 国产77777| 中国av免费看 | 亚洲石原莉奈一区二区在线观看 | 欧美精品乱码久久久久久按摩 | 欧美性猛交xxxx黑人交 | 精品国模一区二区三区欧美 | 国产v片在线观看 | 午夜在线视频免费 | 在线成人免费 | 成人性生交大片免费看中文 | av五月天在线 | 亚洲综合社区 | 嫩草视频免费观看 | 免费看日韩毛片 | 日韩大片在线 | 特级大胆西西4444人体 | 国产午夜视频在线播放 | 一级高清毛片 | 射射综合网 | 欧美理伦少妇2做爰 | 色婷婷精品国产一区二区三区 | 国产高清视频免费观看 | 大尺度床戏揉捏胸视频 | 中文字幕乱轮 | 亚洲视频 欧美视频 | 中文一区二区在线播放 | 精品嫩模一区二区三区 | 国产黄色视屏 | 久久久男人天堂 | 男人天堂av网站 | 黄色三级a| 91精品国产亚洲 |