国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站開發(fā)b2b網(wǎng)上推廣平臺有哪些

網(wǎng)站開發(fā)b2b,網(wǎng)上推廣平臺有哪些,網(wǎng)站的外鏈?zhǔn)鞘裁?青島做網(wǎng)站的網(wǎng)絡(luò)公司官方對于Spring MVC的描述為: Spring Web MVC是基于Servlet API框架構(gòu)建的原始Web框架,從一開始就包含在Spring框架中。它的正式名稱“Spring Web MVC”來自其源模塊的名稱(Spring-webmvc),但它通常被稱為“Spring-MVC…

官方對于Spring MVC的描述為:

Spring Web MVC是基于Servlet API框架構(gòu)建的原始Web框架,從一開始就包含在Spring框架中。它的正式名稱“Spring Web MVC”來自其源模塊的名稱(Spring-webmvc),但它通常被稱為“Spring-MVC”。

目錄

Spring MVC 介紹

學(xué)習(xí)Spring MVC

連接

@RequestMapping

指定類型

獲取參數(shù)

獲取對象

參數(shù)重命名(參數(shù)映射)

接收J(rèn)son對象

從URL中獲取參數(shù)

上傳文件

獲取Cookie

獲取Session

獲取Header

?編輯

請求定向和請求轉(zhuǎn)發(fā)


Spring MVC 介紹

MVC 是Model View Controller的縮寫,是軟件工程中的一種軟件架構(gòu)模式,它把軟件系統(tǒng)分成模型、視圖和控制器三個(gè)部分。

MVC是一種思想,而Spring MVC是對MVC思想的具體實(shí)現(xiàn):

Spring MVC是一個(gè)實(shí)現(xiàn)了MVC模式,并繼承了Servlet API的Web框架。既然是Web框架,那么當(dāng)用戶在瀏覽器中輸入了url之后,我們的Spring MVC項(xiàng)目就可以感知到用戶的請求。

現(xiàn)在絕大多數(shù)的Java項(xiàng)目都是基于Spring 或Spring Boot,而Spring的核心就是Spring MVC。

在創(chuàng)建Spring Boot項(xiàng)目時(shí),我們勾選的Spring Web框架其實(shí)就是Spring MVC框架:

學(xué)習(xí)Spring MVC

學(xué)習(xí)Spring MVC需要掌握三個(gè)功能:

連接、獲取參數(shù)、輸入數(shù)據(jù)。

連接

在項(xiàng)目創(chuàng)建好之后,創(chuàng)建一個(gè)UserController類,實(shí)現(xiàn)用戶到Spring程序的互聯(lián)互通:

我們用到了三個(gè)注釋:@Controller @ResponseBody @RequestMapping

@Controller:五大類注解,表示把這個(gè)類添加到IoC容器中,供Spring拿到。

@ResponseBody:表示把這個(gè)Java對象轉(zhuǎn)換成json格式相關(guān)的內(nèi)容,表示返回非頁面數(shù)據(jù)

通過@RestController =?@Controller + @ResponseBody 可以完成兩個(gè)注釋的內(nèi)容合二為一。

@RequestMapping

@RequestMapping既可以修飾類也可以修飾方法,當(dāng)修飾類和方法時(shí),訪問的地址是類 + 方法。

并且也可以直接修飾方法。

指定類型

@RequestMapping可以為GET方法也可以為POST方法,如果不規(guī)定則兩個(gè)方法都可以用。但如果要求只能是POST或者只能是GET方法呢?

想只要GET方法,有兩種寫法:

  • @RequestMapping(value = "/user",method = RequestMethod.GET)
  • @GetMapping("/index")

想只要POST方法,有兩種寫法:

  • @RequestMapping(value = "/user",method = RequestMethod.POST)
  • @PostMapping("/user")

獲取參數(shù)

在Spring MVC中可以直接用方法中的參數(shù)來實(shí)現(xiàn)傳參,相比于Servlet中大費(fèi)周折的getParameter等方式簡單了很多。

在Spring MVC中,只需要方法的形參和前端傳入的變量名相同,就能夠直接獲取到相關(guān)的參數(shù)。

獲取對象

Spring MVC可以自動(dòng)實(shí)現(xiàn)參數(shù)對象的賦值:

并且當(dāng)有多個(gè)參數(shù)的時(shí)候,前后端匹配數(shù)據(jù)的時(shí)候以名稱進(jìn)行匹配的,因此參數(shù)的位置不影響后端獲取的參數(shù)的結(jié)果。

參數(shù)重命名(參數(shù)映射)

和前面提到的一樣,如果前后端名稱不一樣但是想要獲取到匹配的數(shù)據(jù),此時(shí)可以使用@RequestParam 來重命名前后端的參數(shù)值。

例如,前端傳來的參數(shù)為username,但是后端為name,此時(shí)給后端參數(shù)重命名:

并且如果某個(gè)參數(shù)是非必傳參數(shù)的話,可以設(shè)置@RequestParam中的requird=false來避免不傳遞時(shí)報(bào)錯(cuò):

接收J(rèn)son對象

這次我們不用表單的形式來傳對象,而是使用Json的格式來傳遞對象。只有使用了@RequestBody后才能正確的把對象解析出來。

從URL中獲取參數(shù)

對于前面的通過表單的形式拿數(shù)據(jù),主要是通過URL中?后面的值來傳遞?,F(xiàn)在還有一種方式可以傳遞,就是通過@PathVariable直接拿到URL中的參數(shù)。

例如:??localhost:8080/user/123/zhangsan/123456

這種方式和問號后面加上數(shù)據(jù)相對比有兩個(gè)優(yōu)點(diǎn):

1.對于搜索引擎來說,抓取關(guān)鍵字權(quán)重更高

2.URL更簡潔

@RequestMapping時(shí)需要加上相應(yīng)的屬性,在傳遞形參的時(shí)候使用@PathVarable來獲取,如果傳遞的參數(shù)和屬性名不同時(shí),也可以使用重命名。

如果RequestMapping和形參名稱不一樣就可以使用@PathVarable的重命名來表示。

  • @PathVariable ->基礎(chǔ)URL里面的參數(shù)(?之前的參數(shù))
  • @RequestParm->URL參數(shù)部分的參數(shù)(?之后的參數(shù))

上傳文件

使用@RequestPart來上傳文件。

之后使用Postman來模擬前端發(fā)來的圖片:

在新文件的地址中,可以看到新的文件已經(jīng)生成。但是有幾個(gè)問題,比如這樣重復(fù)一次,新文件會覆蓋舊文件。并且不能重命名文件。

最靠譜的保證文件名唯一的命名方法,是使用UUID。簡單說這個(gè)UUID是不會重復(fù)的。

UUID是Universally?Unique?Identifier的縮寫,它是在一定的范圍內(nèi)(從特定的名字空間到全球)唯一的機(jī)器生成的標(biāo)識符。

首先我們要解決文件格式的問題。之前我們使用的是png,如果原文件是jpg還好說,如果是gif等就會出錯(cuò)。所以我們需要獲取原生的文件名,把文件名的前部分使用UUID替換,文件名的后綴截取到再重命名。

這樣即使是上傳同樣的文件,也不會覆蓋之前的文件。

@RestController
public class UserController {@RequestMapping("/upload")public Object upload(@RequestPart("myimg") MultipartFile file){String fileName = UUID.randomUUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));File saveFile = new File("C:\\MyCode\\" + fileName);try {file.transferTo(saveFile);return true;} catch (IOException e) {e.printStackTrace();}return false;}
}

獲取Cookie

在之前的Servlet中,我們已經(jīng)使用過HttpServletResponse和HttpServletRequest來獲取cookie,我們現(xiàn)在使用更簡單的方法獲取:

通過@CookieValue注解來把獲取到的cookie得到,代碼中重命名的是java,所以當(dāng)我們自己偽造一個(gè)名字為java的cookie后就可以獲取到。

獲取Session

通過@SessionAttribute來方便的獲取到Session。

獲取Header

使用@RequestHeader獲取到Header。

請求定向和請求轉(zhuǎn)發(fā)

請求轉(zhuǎn)發(fā)和請求重定向有什么區(qū)別? | Java?? 面試突擊 (javacn.site)

http://aloenet.com.cn/news/45827.html

相關(guān)文章:

  • dede換網(wǎng)站媒體平臺推廣
  • 做推廣賺錢的網(wǎng)站有哪些建網(wǎng)站費(fèi)用
  • 做網(wǎng)站推廣哪家公司好百度風(fēng)云榜電視劇排行榜
  • php asp網(wǎng)站開發(fā)營銷推廣有哪些形式
  • 不用代碼做網(wǎng)站 知乎活動(dòng)推廣方案策劃
  • 國際網(wǎng)站建設(shè)標(biāo)準(zhǔn)長沙推廣引流
  • 做網(wǎng)站業(yè)務(wù)員怎么查找客戶最佳bt磁力搜索引擎
  • 網(wǎng)站建設(shè)的客戶需求調(diào)查與分析軟文推廣怎么做
  • 網(wǎng)站專題二級頁怎么做今日國際重大新聞事件
  • 煙臺哪家公司可以做網(wǎng)站2022年度關(guān)鍵詞
  • 廈門企業(yè)做網(wǎng)站市場調(diào)研的方法
  • 做曖免費(fèi)觀看網(wǎng)站常州seo排名收費(fèi)
  • 站長工具永久更新網(wǎng)址查詢工具
  • 怎樣讓自己的網(wǎng)站被收錄軟文營銷文章案例
  • 北京旅游網(wǎng)站建設(shè)關(guān)鍵詞排名優(yōu)化易下拉排名
  • 權(quán)威的網(wǎng)站建設(shè)排行榜app如何推廣以及推廣渠道
  • 工程管理畢業(yè)設(shè)計(jì)代做網(wǎng)站百度網(wǎng)址大全下載安裝
  • 網(wǎng)站批量發(fā)布杭州網(wǎng)站推廣與優(yōu)化
  • 網(wǎng)站源碼怎么搭建百度官網(wǎng)認(rèn)證多少錢一年
  • 織夢做的的網(wǎng)站首頁顯示空白站長工具箱
  • 網(wǎng)站開發(fā)的形式深圳網(wǎng)站設(shè)計(jì)小程序
  • 衢州網(wǎng)站建設(shè)需要多少費(fèi)用國內(nèi)網(wǎng)絡(luò)營銷公司排名
  • bootstrao導(dǎo)入wordpressseo怎么優(yōu)化方案
  • 做視頻鏈接的網(wǎng)站嗎域名收錄批量查詢
  • 合肥建設(shè)監(jiān)理協(xié)會網(wǎng)站南昌百度網(wǎng)站快速排名
  • 網(wǎng)站建網(wǎng)站建站專業(yè)公司seo短期課程
  • 網(wǎng)站建設(shè)模板型和定制型搜索引擎優(yōu)化seo專員招聘
  • 重慶網(wǎng)站制作哪家好搜索引擎都有哪些
  • 衢州網(wǎng)絡(luò)公司做網(wǎng)站口碑營銷理論
  • 可信賴的武漢網(wǎng)站建設(shè)舉例網(wǎng)絡(luò)營銷的例子