国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

“深入理解SpringMVC的注解驅(qū)動(dòng)開發(fā)“

這篇具有很好參考價(jià)值的文章主要介紹了“深入理解SpringMVC的注解驅(qū)動(dòng)開發(fā)“。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


“深入理解SpringMVC的注解驅(qū)動(dòng)開發(fā)“,mybatis,spring,tomcat,java,maven,idea,log4j

引言

在現(xiàn)代的Web開發(fā)中,SpringMVC已經(jīng)成為了一個(gè)非常流行和強(qiáng)大的框架。它提供了許多注解來(lái)簡(jiǎn)化開發(fā)過(guò)程,使得我們能夠更加專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。本文將深入探討SpringMVC的注解驅(qū)動(dòng)開發(fā),重點(diǎn)關(guān)注常用注解、參數(shù)傳遞、返回值和頁(yè)面跳轉(zhuǎn)等方面。

1. SpringMVC的常用注解

1.1 @Controller
@Controller注解用于標(biāo)識(shí)一個(gè)類是SpringMVC的控制器,它能夠處理用戶請(qǐng)求并返回相應(yīng)的結(jié)果。我們可以通過(guò)在方法上使用@RequestMapping注解來(lái)指定請(qǐng)求的URL路徑。
1.2 @RequestMapping
@RequestMapping注解用于將請(qǐng)求URL映射到相應(yīng)的處理方法上。我們可以通過(guò)指定URL路徑、請(qǐng)求方法、請(qǐng)求參數(shù)等來(lái)精確匹配請(qǐng)求。
1.3 @RequestParam
@RequestParam注解用于獲取請(qǐng)求參數(shù)的值。我們可以通過(guò)指定參數(shù)名、是否必需、默認(rèn)值等來(lái)獲取請(qǐng)求中的參數(shù)值。
1.4 @PathVariable
@PathVariable注解用于獲取URL路徑中的參數(shù)值。我們可以通過(guò)在URL路徑中使用占位符來(lái)指定參數(shù)名,并在方法參數(shù)中使用@PathVariable注解來(lái)獲取參數(shù)值。
1.5 @ResponseBody
@ResponseBody注解用于將方法的返回值直接作為響應(yīng)體返回給客戶端。它可以將對(duì)象轉(zhuǎn)換為JSON、XML等格式,并設(shè)置響應(yīng)的Content-Type。
1.6.@RequestHeader

使用 @RequestHeader 注解可以獲取指定的請(qǐng)求頭信息。如果想要獲取所有的請(qǐng)求頭信息,可以使用 Map<String,String>、MultiValueMap<String,String>、HttpHeaders 這三個(gè) Map 中的任何一個(gè)封裝所有請(qǐng)求頭的 name 和 value。

參數(shù)列表

參數(shù) 說(shuō)明
name name 和 value 互為別名,當(dāng)只有一個(gè)參數(shù)時(shí),可以省略 value,直接(“xxx”) 就可以了
value name 和 value 互為別名,當(dāng)只有一個(gè)參數(shù)時(shí),可以省略 value,直接(“xxx”) 就可以了
required 默認(rèn)情況下,如果請(qǐng)求頭中缺少了指定的 name,那么將會(huì)報(bào)錯(cuò)。
如果沒有添加required = false,當(dāng)請(qǐng)求頭中沒有這個(gè)zking請(qǐng)求頭時(shí)就會(huì)報(bào)錯(cuò)。
defaultValue 如果請(qǐng)求頭中缺少了指定的 name ,那么會(huì)報(bào)錯(cuò),可以使用 defaultValue 這個(gè)屬性指定默認(rèn)值,就可以避免報(bào)錯(cuò) ;如果請(qǐng)求頭缺少指定 name ,該屬性設(shè)置的值將會(huì)作為默認(rèn)值,如果該屬性不設(shè)置值,它有自己的默認(rèn)值 DEFAULT_NONE

2. SpringMVC的參數(shù)傳遞

2.1.基礎(chǔ)類型+String

@RequestMapping("/h1")
    public String h1(String bname,Integer bid){
        log.info("基礎(chǔ)類型+String傳參:{},{}",bname,bid);
        return "index";
    }

2.2.復(fù)雜類型

    @RequestMapping("/h2")
    public String toHello2(Book book, HttpServletRequest req){
        log.info("復(fù)雜類型傳參:{},{}", req.getParameter("bid"),req.getParameter("bname"));
        log.info("復(fù)雜類型傳參:{}",book.toString());
        return "index";
    }

2.3.@RequestParam

  @RequestMapping("/h3")
    public String h3(@RequestParam Integer bid, @RequestParam(required = false) String bname){
        log.info(" 使用@RequestParam注解傳遞參數(shù):{},{}", bid,bname);
        return "index";
    }

2.4.@PathVariable

    @RequestMapping("/h4/{bid}")
    public String h4(@PathVariable("bid") Integer bid){
        log.info(" 使用@PathVariable注解傳遞參數(shù):{},", bid);
        return "index";
    }

2.5.@RequestBody

 //    能接受json數(shù)據(jù),前提導(dǎo)入了Jackson依賴,沒有導(dǎo)入Jackson依賴的話那進(jìn)不了這個(gè)方法
    @RequestMapping("/h5")
        public String h5(@RequestBody Map map){
        log.info("RequestBody:map:{}",map);
        return "index";
    }

    //  不能接受json數(shù)據(jù)
    @RequestMapping("/h6")
    public String h6( Map map){
        log.info("RequestBody:map:{}",map);
        return "index";
    }

2.6.@RequestHeader

    @RequestMapping("/h7")
    public String h7(Book book, @RequestBody Map map, @RequestHeader("jwt") String jwt){
        log.info("book:{}",book);
        log.info("RequestBody:map:{}",map);
        log.info("RequestHeader:jwt:{}",jwt);
        return "index";
    }

3. SpringMVC的返回值

3.1 void返回

 public void f1(HttpServletResponse response) throws Exception {
        Map<String,Object> map = new HashMap<>();
        map.put("code",200);
        map.put("msg","成功");

        try {
        } catch (Exception e) {
            ResponseUtil.writeJson(response,map);
            e.printStackTrace();
        }
    }
   
@ResponseBody
@RequestMapping("/f2")
    public Map f2(HttpServletResponse resvponse) {
        Map<String,Object> map = new HashMap<>();
        map.put("code",200);
        map.put("msg","成功");

      return map;
    }

“深入理解SpringMVC的注解驅(qū)動(dòng)開發(fā)“,mybatis,spring,tomcat,java,maven,idea,log4j

3.2 String返回

 @RequestMapping("/index")
    public String demo1(){
        System.out.println("hello  spring");
        return "index";
    }

3.3.String+Model返回

  @RequestMapping("/f3")
    public String f3(Model model, HttpServletRequest request){
        //填充模型數(shù)據(jù)
        model.addAttribute("name","張三");
        request.setAttribute("role","管理員");
        //邏輯視圖名
        return "index";
    }
<%--
  Created by IntelliJ IDEA.
  User: yuanh
  Date: 2023/9/4
  Time: 17:04
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
hello word

name:${name}
role:${role}
</body>
</html>

“深入理解SpringMVC的注解驅(qū)動(dòng)開發(fā)“,mybatis,spring,tomcat,java,maven,idea,log4j

3.4.ModelAndView

@RequestMapping("/f4")
    public ModelAndView f4(){
        ModelAndView mv = new ModelAndView();
        //填充模型數(shù)據(jù)
        mv.addObject("price","19.9");

        mv.setViewName("index");
        //邏輯視圖名
        return mv;
    }

“深入理解SpringMVC的注解驅(qū)動(dòng)開發(fā)“,mybatis,spring,tomcat,java,maven,idea,log4j

4. SpringMVC頁(yè)面跳轉(zhuǎn)

4.1 重定向

    @RequestMapping("/z3")
    public String z3(){
        System.out.println("z3");

        return "redirect:h1";
    }

    @RequestMapping("/z4")
    public String z4(){
        System.out.println("z4");
        return "redirect:/main/index";
    }

4.2 轉(zhuǎn)發(fā)

	@RequestMapping("/z1")
    public String z1(){
        System.out.println("z1");

        return "forward:h1";
    }

    @RequestMapping("/z2")
    public String z2(){
        System.out.println("z2");
        return "forward:/main/index";
    }

總結(jié)

本文深入探討了SpringMVC的注解驅(qū)動(dòng)開發(fā),重點(diǎn)關(guān)注了常用注解、參數(shù)傳遞、返回值和頁(yè)面跳轉(zhuǎn)等方面。通過(guò)學(xué)習(xí)和理解這些內(nèi)容,我們可以更加靈活和高效地使用SpringMVC來(lái)開發(fā)Web應(yīng)用程序。希望本文對(duì)您有所幫助!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-696200.html

到了這里,關(guān)于“深入理解SpringMVC的注解驅(qū)動(dòng)開發(fā)“的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 深入理解Spring @RequestBody注解的用法與作用

    當(dāng)我們使用 Spring Boot 框架處理客戶端提交的 HTTP 請(qǐng)求時(shí),常常需要獲取請(qǐng)求參數(shù)并將其轉(zhuǎn)換為相應(yīng)的 Java 對(duì)象。@RequestBody 注解可以幫助我們實(shí)現(xiàn)這個(gè)目標(biāo),它用于從 HTTP 請(qǐng)求體中獲取請(qǐng)求參數(shù),并將其轉(zhuǎn)換為指定的 Java 對(duì)象。本篇博客將介紹 @RequestBody 注解的基本用法和注意

    2024年02月15日
    瀏覽(33)
  • 深入理解Spring AOP注解:@DataScope與@DataSource

    在Spring AOP中,注解的使用扮演著重要角色,它們可以幫助我們明確定義切面、切點(diǎn)和增強(qiáng)處理。在本文中,我們將深入探討RuoYi框架兩個(gè)自定義注解:@DataScope和@DataSource。 定義注解 首先,我們定義一個(gè)名為@DataScope的注解,用于在特定的方法上實(shí)現(xiàn)數(shù)據(jù)范圍過(guò)濾等功能。 定義

    2024年02月16日
    瀏覽(32)
  • 深入理解Spring的@Async注解:實(shí)現(xiàn)異步方法調(diào)用

    在當(dāng)今高速發(fā)展的應(yīng)用開發(fā)領(lǐng)域,對(duì)于提升系統(tǒng)性能和響應(yīng)能力的需求越來(lái)越迫切。而異步編程作為一種解決方案,已經(jīng)成為現(xiàn)代應(yīng)用開發(fā)中的一項(xiàng)重要技術(shù)。本篇博客將帶您深入探究 Java 中的 @Async 注解,揭示其強(qiáng)大的異步執(zhí)行能力和精妙的實(shí)現(xiàn)機(jī)制。 異步編程是一種編程

    2024年02月05日
    瀏覽(27)
  • 深入理解 Spring 中的 @RequestBody 和 @ResponseBody 注解及其區(qū)別

    在現(xiàn)代的 Web 開發(fā)中,處理 HTTP 請(qǐng)求和響應(yīng)是不可或缺的任務(wù)。Spring Framework 提供了豐富的功能來(lái)簡(jiǎn)化這些任務(wù),并使開發(fā)人員能夠更專注于業(yè)務(wù)邏輯。在本文中,我們將深入探討 Spring 中的 @RequestBody 和 @ResponseBody 注解,以及它們之間的區(qū)別。 @RequestBody 注解是 Spring 提供的一

    2024年02月14日
    瀏覽(31)
  • 深入理解Spring Kafka中@KafkaListener注解的參數(shù)與使用方式

    Apache Kafka作為一個(gè)強(qiáng)大的消息代理系統(tǒng),與Spring框架的集成使得在分布式應(yīng)用中處理消息變得更加簡(jiǎn)單和靈活。Spring Kafka提供了 @KafkaListener 注解,為開發(fā)者提供了一種聲明式的方式來(lái)定義消息監(jiān)聽器。在本文中,我們將深入探討 @KafkaListener 注解的各種參數(shù)以及它們的使用方

    2024年01月16日
    瀏覽(31)
  • Spring的注解開發(fā)-注解方式整合MyBatis代碼實(shí)現(xiàn)

    Spring的注解開發(fā)-注解方式整合MyBatis代碼實(shí)現(xiàn)

    之前使用xml方式整合了MyBatis,文章導(dǎo)航:Spring整合第三方框架-MyBatis整合Spring實(shí)現(xiàn)-CSDN博客 現(xiàn)在使用注解的方式無(wú)非是就是將xml標(biāo)簽替換為注解,將xml配置文件替換為配置類而已。 非自定義配置類 ? ? ? ? ? ? ? ? 與數(shù)據(jù)庫(kù)建立連接的同時(shí),掃描指定的mapper接口,實(shí)現(xiàn)實(shí)現(xiàn)

    2024年02月07日
    瀏覽(25)
  • Spring+SpringMVC+MyBatis整合項(xiàng)目開發(fā)(配有項(xiàng)目,已開源)

    Spring+SpringMVC+MyBatis整合項(xiàng)目開發(fā)(配有項(xiàng)目,已開源)

    ?? 個(gè)人主頁(yè):__Aurora__ ?? 如果文章有什么需要改進(jìn)的地方還請(qǐng)各位大佬斧正。 ??如果我的文章對(duì)你有幫助?? 關(guān)注???? 點(diǎn)贊?? 收藏?? ??最近在學(xué)SSM框架,本文是根據(jù)b站【黑馬程序員 ssm框架 2021 版】整理。 ??視頻鏈接:https://www.bilibili.com/video/BV1WZ4y1P7Bp?spm_id_from=3

    2023年04月08日
    瀏覽(36)
  • Spring注解驅(qū)動(dòng)開發(fā)(二)

    Spring注解驅(qū)動(dòng)開發(fā)(二)

    注:此筆記為尚硅谷Spring注解驅(qū)動(dòng)教程(雷豐陽(yáng)源碼級(jí)講解)學(xué)習(xí)筆記,并同時(shí)參考[https://blog.csdn.net/xjhqre/article/details/123264069]博主文章,其中包含個(gè)人的筆記和理解,僅做學(xué)習(xí)筆記之用。 簡(jiǎn)述: 1、實(shí)例化一個(gè)Bean--也就是我們常說(shuō)的new; 2、按照Spring上下文對(duì)實(shí)例化的Bean進(jìn)

    2024年02月03日
    瀏覽(21)
  • spring注解驅(qū)動(dòng)開發(fā)(一)

    Spring常用注解(絕對(duì)經(jīng)典) 1、需要導(dǎo)入的spring框架的依賴 2、@Configuration 設(shè)置類為配置類 3、AnnotationConfigApplicationContext 通過(guò)配置類獲取上下文環(huán)境applicationContext 可以通過(guò)getBeanDefinitionNames()獲得配置類中配置的各類Bean 也可以使用getBeanNamesForType()通過(guò)類型來(lái)獲得bean的name(id)

    2024年02月14日
    瀏覽(21)
  • spring注解驅(qū)動(dòng)開發(fā)(二)

    17、Bean的生命周期 bean的生命周期:bean的創(chuàng)建—初始化—銷毀的過(guò)程 容器負(fù)責(zé)管理bean的生命周期 我們可以自定義初始化和銷毀方法,容器在bean進(jìn)行到當(dāng)前生命周期的時(shí)候來(lái)調(diào)用我們自定義的初始化和銷毀方法 構(gòu)造(對(duì)象創(chuàng)建) 單實(shí)例:在容器啟動(dòng)時(shí)創(chuàng)建對(duì)象 多實(shí)例:在每

    2024年02月14日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包