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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

java rest 图_SpringMVC视图及REST风格

發(fā)布時(shí)間:2025/3/15 javascript 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java rest 图_SpringMVC视图及REST风格 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么是視圖解析器?

springMVC用于處理視圖最重要的兩個(gè)接口是ViewResolver和View。

ViewResolver的主要作用是把一個(gè)邏輯上的視圖名稱解析成一個(gè)真的的視圖,而SpringMVC中用于把View對(duì)象呈現(xiàn)給客戶端的是View對(duì)象本身,而ViewResolver只是把邏輯視圖名稱解析為對(duì)象的View對(duì)象。

View接口的主要作用是用來(lái)處理視圖,返給給客戶端。

視圖解析器的執(zhí)行流程:

請(qǐng)求方法執(zhí)行完成后,最終返回一個(gè)ModelAndView對(duì)象,對(duì)于那些返回String,View,ModelMap等類型SpingMVC最終會(huì)在內(nèi)部給他們裝配成一個(gè)ModelAndView對(duì)象,它包含了邏輯名和模型對(duì)象的視圖。StringMVC借助視圖解析器得到最終的視圖對(duì)象,最終的視圖可以是JSP,也可能是其他的文件形式的視圖。對(duì)于最終采取那一種方式渲染處理器并不關(guān)心,處理器重點(diǎn)焦距在生產(chǎn)模型數(shù)據(jù)的工作上,從來(lái)實(shí)現(xiàn)了MVC充分的解耦。

視圖:

視圖的作用是渲染模型數(shù)據(jù),將模型里面的數(shù)據(jù)以某種形式呈現(xiàn)給用戶。為了實(shí)現(xiàn)視圖模型和具體實(shí)現(xiàn)技術(shù)的解耦,Sping定義了一個(gè)View接口。視圖對(duì)象由視圖解析器負(fù)責(zé)實(shí)例化,由于視圖是無(wú)狀態(tài)的,所以它們不會(huì)有線程安全問題。

常用的視圖實(shí)現(xiàn)類:

InternalResourceView:將JSP資源封裝成一個(gè)視圖,是springmvc默認(rèn)使用的視圖解析器。

JstlView:在JSP項(xiàng)目中引入jstl包springmvc會(huì)自動(dòng)使用該解析器

MapingJackJsonView:將模型通過(guò)Jackson開源框架的ObjectMapper以Json方式輸出。

AbstractExcelView:Excel文檔視圖的抽象類,該視圖基于POI構(gòu)造Excel文檔

AbstractPdfVIew:PDF文檔視圖的抽象類,該視圖基于iText構(gòu)建Pdf文檔

BeanNameViewResolver:將邏輯視圖名解析為一個(gè)Bean,Bean的id等于邏輯視圖名。

視圖解析器的作用比較單一,將邏輯視圖解析為一個(gè)具體的視圖對(duì)象,所有的視圖解析器必須實(shí)現(xiàn)ViewResolver接口。

JSP是最常用的視圖技術(shù),可以使用InternalResourceView作為視圖解析器

項(xiàng)目中只要引入了JSTL標(biāo)簽則springmvc會(huì)自動(dòng)把視圖有InternalResourceView轉(zhuǎn)換成JstlView,JstlView是它的子類。

每一個(gè)視圖解析器都實(shí)現(xiàn)了Ordered接口并開發(fā)出一個(gè)order屬性,可以通過(guò)它設(shè)置解析器的優(yōu)先級(jí),order越小優(yōu)先級(jí)越高。Spring MVC會(huì)按視圖解析器順序的優(yōu)先級(jí)對(duì)邏輯視圖名進(jìn)行解析,直到解析成功并返回視圖對(duì)象,否則會(huì)拋出ServletException異常

自定義視圖:

@Component

public class MyView implements View {

@Override

public String getContentType() {

return "text/html";

}

@Override

public void render(Map model, HttpServletRequest request, HttpServletResponse response) throws Exception {

response.getWriter().println("

Spring MVC Custom view

");

}

}

我們需要將這個(gè)自定義的視圖實(shí)現(xiàn)View接口然后重寫接口中的兩個(gè)方法。然后我們把這個(gè)類聲明成Bean交給spring管理。在這里我們配置一個(gè)beanName解析器。

然后寫一個(gè)請(qǐng)求,這個(gè)請(qǐng)求返回Bean的名字,默認(rèn)是首字母小寫以駝峰式展現(xiàn)。

@RequestMapping("myView")

public String myView(){

System.out.println("myView load ...");

return "myView";

}

這樣就可以完成我們的自定以視圖。

關(guān)與重定向:

如果返回字符串中帶有”redirect:“或”forward:“,SpringMvc會(huì)將其做特殊的處理。

如果我們需要直接訪問視圖可以這樣配置

REST章節(jié)

REST(Representational State Transfer):即(資源)表現(xiàn)層狀態(tài)傳遞。

資源(Resources):網(wǎng)絡(luò)上的一個(gè)實(shí)體,或者說(shuō)網(wǎng)絡(luò)上的一段信息。它可以是一段文本,一段歌曲,一張圖片等等,可以用一個(gè)URL指向它,每個(gè)資源都有一個(gè)特定的,獨(dú)一無(wú)二的URL,要訪問這個(gè)資源,直接訪問這個(gè)URI即可。

表現(xiàn)層(Representation):將資源呈現(xiàn)出來(lái)的形式。

狀態(tài)轉(zhuǎn)化(State Transfer):每發(fā)出一個(gè)請(qǐng)求,就代表客戶端和服務(wù)器一次交互。HTTP協(xié)議是一個(gè)無(wú)狀態(tài)的協(xié)議,即所有的狀態(tài)都保存在服務(wù)器端??蛻舳讼胍僮鞣?wù)器,必須通過(guò)某些手段,讓服務(wù)器發(fā)生狀態(tài)轉(zhuǎn)化,而這種轉(zhuǎn)化是建立在表現(xiàn)層之上的,所以就是表現(xiàn)層狀態(tài)轉(zhuǎn)化。

在我們的SpringMVC之中支持HTTP四種請(qǐng)求狀態(tài),REST規(guī)定的HTTP協(xié)議中四種表示操作方式的動(dòng)詞

GET請(qǐng)求:獲取資源

POST請(qǐng)求:新建資源

PUT:更新資源

DELETE:刪除資源

我們需要在WEB.xml中配置實(shí)現(xiàn)PUT,DELETE請(qǐng)求方式,大家都知道在我們傳統(tǒng)的HTML中只有GET,POST兩種請(qǐng)求方式。

HiddenHttpMethodFilter

org.springframework.web.filter.HiddenHttpMethodFilter

HiddenHttpMethodFilter

/*

GET請(qǐng)求

GET請(qǐng)求:

test RestGet請(qǐng)求

@RequestMapping(value="/testRest/{id}",method=RequestMethod.GET)

public String testRestGet(@PathVariable Integer id){

System.out.println("GET請(qǐng)求,獲取id為:" + id + "的對(duì)象!");

return SUCCESS;

}

Post請(qǐng)求

POST請(qǐng)求:

@RequestMapping(value="/testRest",method=RequestMethod.POST)

public String testRestPost(){

System.out.println("POST請(qǐng)求,添加新的對(duì)象!");

return SUCCESS;

}

PUT和DELETE請(qǐng)求想要使用必須添加上面的過(guò)濾器,并且在Post請(qǐng)求中加上隱藏域name=”_method”,value=”PUT/DELETE”。

PUT,請(qǐng)求其實(shí)是由POST請(qǐng)求轉(zhuǎn)換而來(lái)的。

PUT請(qǐng)求:

@RequestMapping(value="/testRest",method=RequestMethod.PUT)

public String testRestPut(){

System.out.println("PUT請(qǐng)求,更新操作!");

return SUCCESS;

}

DELETE請(qǐng)求

DELETE請(qǐng)求:

@RequestMapping(value="/testRest/{id}",method=RequestMethod.DELETE)

public String testRestDelete(@PathVariable Integer id){

System.out.println("DELETE請(qǐng)求,刪除操作!" + id);

return SUCCESS;

}

重復(fù)一次第一章的內(nèi)容在我們springmvc攔截所有請(qǐng)求會(huì)導(dǎo)致css,js,圖片等不能引入我們可以這樣解決:

https://www.cnblogs.com/SimpleWu/category/1354870.html

總結(jié)

以上是生活随笔為你收集整理的java rest 图_SpringMVC视图及REST风格的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久热热 | 男人的天堂免费视频 | 丁香激情综合 | 操操干 | 亚洲成人av免费在线观看 | 天堂中文在线观看视频 | 亚洲人女屁股眼交6 | 日韩精品视频在线 | 成人一区二区在线观看 | 护士的小嫩嫩好紧好爽 | 体感预报日剧 | 91在线欧美| 国产一级爱c视频 | 徐锦江一级淫片免费看 | 成人免费无码大片a毛片抽搐色欲 | 人妖性生活视频 | 国产传媒中文字幕 | 美日韩精品一区二区 | 日韩 欧美 综合 | 中文字幕黑丝 | 日本黄色大片免费看 | 精品在线一区二区 | 午夜aa| 在线观看aaa | 性xxxx搡xxxxx搡欧美 | 饥渴少妇色诱水电工 | 国产精品高潮呻吟久久av黑人 | 天天操天天看 | 九九热免费在线 | 国产精品视频一区二区三区 | 国产精品黑人一区二区三区 | 国产女人被狂躁到高潮小说 | 国产欧美久久久久 | 钰慧的mv视频在线观看 | 亚洲素人 | 亚洲激情自拍偷拍 | 中国字幕av | 无码人妻丰满熟妇啪啪网站 | 丰满少妇高潮在线观看 | 欧美日韩综合视频 | av在线资源网站 | 很黄很色的视频 | 国产精品久久一区二区三区动 | 公交顶臀绿裙妇女配视频 | 亚洲精品无码久久久久 | 欧美另类tv | 国产精品视频合集 | a天堂资源 | 蜜桃av一区 | 亚洲国产aⅴ成人精品无吗 日韩乱论 | 波多野吉衣伦理片 | 末路1997全集免费观看完整版 | 香蕉久久久久久久av网站 | 欧美在线看| 激情五月婷婷 | 精品国产伦一区二区三 | 羞羞涩涩视频 | 欧美性猛交xxxx乱大交蜜桃 | 特级毛片www | 少妇免费毛片久久久久久久久 | a天堂资源 | 蓝牛av | 丰满圆润老女人hd | 偷拍第一页 | bbbbbbbbb毛片大片按摩 | 免费精品一区 | 欧美爱爱网 | 人人综合网 | 任你操精品 | 青青青青草 | www.日本黄| 日韩经典在线 | 超碰98在线观看 | 放荡闺蜜高h苏桃情事h | 激情网五月 | 奇米影视9999 | 国产精品爱啪在线线免费观看 | www九九热 | 国产乱人乱精一区二视频国产精品 | 亚洲欧美日韩精品久久 | 熊猫电影yy8y全部免费观看 | 天天插天天操天天干 | 初尝人妻少妇中文字幕 | 美女国产一区 | 国内偷拍一区二区 | 欧美a级成人淫片免费看 | 亚洲欧洲免费视频 | 99成人免费视频 | 国产精品视频不卡 | 色婷婷综合久久久中文字幕 | 久久久久亚洲国产 | 亚洲第一页夜 | 国产激情精品一区二区三区 | 91视频麻豆 | 久久亚洲欧美 | 午夜av不卡| 一级少妇女片 | 性欧美丰满熟妇xxxx性仙踪林 | 欧美福利在线观看 |