日韩性视频-久久久蜜桃-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数据)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 男男啪啪无遮挡 | 日韩中文字幕不卡 | 在线免费观看亚洲 | 你操综合| 日本精品视频在线播放 | 美女裸体跪姿扒开屁股无内裤 | 国产成人aaaa| 超碰2020 | 性色av一区二区三区在线观看 | 亚洲九九夜夜 | 黄色av网站在线免费观看 | 精品视频一区二区三区在线观看 | av日韩一区二区三区 | 欧美视频你懂的 | 丰满少妇被猛烈进入无码 | 三级男人添奶爽爽爽视频 | 国产精品交换 | 奇米视频在线 | 欧美成人午夜 | 欧美日韩中文国产一区发布 | 日韩中文字幕在线看 | 日本在线不卡一区二区 | 无法忍受在线观看 | 特黄视频免费看 | 国产一区二区三区免费观看 | 中文字幕无码日韩专区免费 | 伊人色图 | 91亚洲精品乱码久久久久久蜜桃 | 91精品999| 色综合免费视频 | 在线色网 | 国产精品剧情一区 | 亚洲第九十七页 | 亲子伦视频一区二区三区 | 午夜精品福利一区二区蜜股av | av在线不卡网站 | 岛国裸体写真hd在线 | 人人草网站 | 国产偷拍一区二区三区 | 欧美另类天堂 | 国产一级片网站 | 日日夜夜网站 | 成人免费观看在线视频 | 亚洲国产精品自拍 | 欧美乱大交xxxxx春色视频 | 精品一区二区三区四区视频 | 全部毛片永久免费看 | 日韩精品影院 | 伦理久久| a免费看| 99久久久无码国产精品性波多 | 成年人看的网站 | 91一区二区三区在线观看 | 国产午夜一区二区 | 91插插插永久免费 | 肉丝肉足丝袜一区二区三区 | 久久在线精品视频 | 国产aⅴ精品一区二区果冻 台湾性生生活1 | 天天躁日日躁狠狠躁喷水 | 亚洲无码久久久久 | 一区二区免费 | 久久国产二区 | 自拍1区| 国产成人无码精品 | 一区二区三区不卡视频在线观看 | 精品91av| 97精品在线 | 亚洲欧美综合一区二区 | 成人黄色录像 | 免费麻豆国产一区二区三区四区 | 另类av在线 | 美女扒开腿让男生桶 | 九九视频在线 | 欧美系列一区二区 | 久久99精品久久久久久国产越南 | 爱爱视频一区二区 | 99热一区二区三区 | 国模人体私拍xvideos | 2022精品国偷自产免费观看 | yw视频在线观看 | 日韩精品在线观看视频 | 欧美色图亚洲视频 | 打屁股疼的撕心裂肺的视频 | 国产情侣自拍一区 | 黄色网在线播放 | 丰满人妻一区二区三区免费视频棣 | 欧美日韩中文字幕一区二区 | 国产欧美久久久精品免费 | 午夜精品在线免费观看 | 婷婷激情综合网 | 四虎在线网址 | 国产伦精品一区二区三区高清 | 日韩影视一区 | 饥渴丰满的少妇喷潮 | 在线观看免费大片 | 毛片视频播放 | 好色先生视频污 | 欧美性猛交xxxx | a级在线视频 |