中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

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

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

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

官方對(duì)于Spring MVC的描述為:

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

目錄

Spring MVC 介紹

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

連接

@RequestMapping

指定類型

獲取參數(shù)

獲取對(duì)象

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

接收J(rèn)son對(duì)象

從URL中獲取參數(shù)

上傳文件

獲取Cookie

獲取Session

獲取Header

?編輯

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


Spring MVC 介紹

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

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

Spring MVC是一個(gè)實(shí)現(xiàn)了MVC模式,并繼承了Servlet API的Web框架。既然是Web框架,那么當(dāng)用戶在瀏覽器中輸入了url之后,我們的Spring MVC項(xiàng)目就可以感知到用戶的請(qǐ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對(duì)象轉(zhuǎn)換成json格式相關(guān)的內(nèi)容,表示返回非頁(yè)面數(shù)據(jù)

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

@RequestMapping

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

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

指定類型

@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ù)來(lái)實(shí)現(xiàn)傳參,相比于Servlet中大費(fèi)周折的getParameter等方式簡(jiǎn)單了很多。

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

獲取對(duì)象

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

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

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

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

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

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

接收J(rèn)son對(duì)象

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

從URL中獲取參數(shù)

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

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

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

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

2.URL更簡(jiǎn)潔

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

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

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

上傳文件

使用@RequestPart來(lái)上傳文件。

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

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

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

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

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

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

@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)使用過(guò)HttpServletResponse和HttpServletRequest來(lái)獲取cookie,我們現(xiàn)在使用更簡(jiǎn)單的方法獲取:

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

獲取Session

通過(guò)@SessionAttribute來(lái)方便的獲取到Session。

獲取Header

使用@RequestHeader獲取到Header。

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

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

http://www.risenshineclean.com/news/45827.html

相關(guān)文章:

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