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

Spring MVC處理響應(yīng)附案例詳解

這篇具有很好參考價值的文章主要介紹了Spring MVC處理響應(yīng)附案例詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

目錄

一、配置視圖解析器

二、控制器方法的返回值

2.1 返回值為void

2.1.1 控制器方法

2.1.2 jsp頁面

2.1.3 測試結(jié)果

2.2 返回值為String

2.2.1 控制器方法

2.2.2?測試結(jié)果

2.3 返回值為ModelAndView

2.3.1 控制器方法

2.3.2 JSP頁面

2.3.3 測試結(jié)果?

三、某些會話對象設(shè)置數(shù)據(jù)

3.1 request域設(shè)置數(shù)據(jù)

3.1.1 使用參數(shù)為原生的HttpServletRequest

3.1.2 使用參數(shù)為Model和ModelMap

3.1.3 使用參數(shù)為Map集合

3.2 session域設(shè)置數(shù)據(jù)

3.2.1 控制器方法

3.2.2 測試結(jié)果?

3.3 context域設(shè)置數(shù)據(jù)

3.2.1 控制器方法

3.2.2 測試結(jié)果?

四、請求轉(zhuǎn)發(fā)&重定向

4.1 原生請求轉(zhuǎn)發(fā)重定向?qū)懛?/p>

4.1.1 重定向控制器方法

4.1.2 重定向測試結(jié)果

4.1.3 請求轉(zhuǎn)發(fā)測試結(jié)果

4.2 springmvc提供的請求轉(zhuǎn)發(fā)重定向?qū)懛?/p>

往期專欄&文章相關(guān)導(dǎo)讀?

1. Maven系列專欄文章

2. Mybatis系列專欄文章

3. Spring系列專欄文章

4. Spring MVC系列專欄文章?


一、配置視圖解析器

SpringMVC默認(rèn)情況下會在控制器執(zhí)行完成后跳轉(zhuǎn)到視圖頁面,視圖解析器能找到相應(yīng)的視圖,之前的404異常就是由于沒有配置視圖解析器導(dǎo)致找不到視圖。在SpringMVC中提供了13個視圖解析器,用于支持不同的視圖技術(shù)。InternalResourceViewResolver是SpringMVC的默認(rèn)視圖解析器,用來解析JSP視圖。

添加如下標(biāo)簽就算配置視圖解析器了?

<!-- 視圖解析器 -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 視圖前綴 -->
        <property name="prefix" value="/"/>
        <!-- 視圖后綴 -->
        <property name="suffix" value=".jsp"/>
    </bean>

二、控制器方法的返回值

我們可以通過控制器方法的返回值設(shè)置跳轉(zhuǎn)的視圖,控制器方法支持以下返回值類型:

2.1 返回值為void

此時會跳轉(zhuǎn)到名字是 前綴+方法路徑名+后綴 的jsp頁面

2.1.1 控制器方法

    /**
     * SpringMVC處理響應(yīng)——控制器方法(根據(jù)返回值)
     */
    // 路徑是helloMVC,方法執(zhí)行完后會跳轉(zhuǎn)到/helloMVC.jsp
    @RequestMapping("helloMVC")
    public void helloMVC(){
        System.out.println("hello SpringMVC!");
    }

2.1.2 jsp頁面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>MVC</title>
</head>
<body>
    <h1>歡迎來到SpringMVC!</h1>
</body>
</html>

2.1.3 測試結(jié)果

訪問路徑:http://localhost:8080/helloMVC

Spring MVC處理響應(yīng)附案例詳解

?OK,確實返回了jsp頁面

2.2 返回值為String

此時會跳轉(zhuǎn)到名字是 前綴+返回值+后綴 的jsp頁面

2.2.1 控制器方法

// 返回值是String,此時會跳轉(zhuǎn)到名字是 前綴+返回值+后綴 的jsp頁面
    @RequestMapping("c2/hello1")
    public String helloMVC1(){
        System.out.println("Hello SpringMVC!");
        return "helloMVC";
    }

2.2.2?測試結(jié)果

訪問路徑:http://localhost:8080/c2/hello1

Spring MVC處理響應(yīng)附案例詳解

OK,這次返回的也不是helloMVC1頁面,確實成功實現(xiàn)了。?

2.3 返回值為ModelAndView

????????這是SpringMVC提供的對象,該對象可以向request域設(shè)置數(shù)據(jù)并指定跳轉(zhuǎn)的頁面。該對象中包含Model對象和View對象。

  1. Model:向request域中設(shè)置數(shù)據(jù)。
  2. View:指定跳轉(zhuǎn)的頁面。

2.3.1 控制器方法

// 返回值為ModelAndView
    @RequestMapping("/c2/hello2")
    public ModelAndView useMAV(){
        System.out.println("返回值類型為ModelAndView");
        // 1.創(chuàng)建ModelAndView對象
        ModelAndView modelAndView = new ModelAndView();
        // 2.獲取Model對象,本質(zhì)是一個Map
        Map<String,Object> model = modelAndView.getModel();
        // 3.使用Model對象向request域設(shè)置數(shù)據(jù)
        model.put("username","黃慶禧");
        // 4.使用view對象設(shè)置跳轉(zhuǎn)的路徑
        modelAndView.setViewName("lyl-HQX");
        return modelAndView;
    }

OK,這里設(shè)置了一個username的屬性,屬性值為黃慶禧

2.3.2 JSP頁面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>lyl-HQX</title>
</head>
<body>
<h1>name: 你好!${requestScope.name}</h1>
  <h1>username: 你好!${requestScope.username}</h1>
  <h1>request-Map 你好!${requestScope.usernameMap}</h1>
  <h1>session 地址是:${sessionScope.address}</h1>
  <h1>context 年齡是:${applicationScope.age}</h1>
</body>
</html>

OK,這里解釋一下,這里用到的參數(shù)是后面需要的。

2.3.3 測試結(jié)果?

Spring MVC處理響應(yīng)附案例詳解

OK,確實可以成功打印出黃慶禧的名字了。?

三、某些會話對象設(shè)置數(shù)據(jù)

????????當(dāng)控制器返回值為ModelAndView時我們可以向request域設(shè)置數(shù)據(jù),我們還有以下方法可以向request域設(shè)置數(shù)據(jù):

3.1 request域設(shè)置數(shù)據(jù)

3.1.1 使用參數(shù)為原生的HttpServletRequest

控制器方法

    /**
     * SpringMVC處理響應(yīng)-request域
     */
    // 使用原生的HttpServletRequest
    @RequestMapping("/c2/hello3")
    public String setRequestModel(HttpServletRequest request){
        request.setAttribute("username","會洗碗的CV工程師");
        return "lyl-HQX";
    }

OK,username屬性值為會洗碗的CV工程師,看一下能否成功獲取?

測試結(jié)果

Spring MVC處理響應(yīng)附案例詳解

OK,可以看到確實成功獲取了。?接下來嘗試其他一些參數(shù)。

3.1.2 使用參數(shù)為Model和ModelMap

????????SpringMVC提供了Model接口和ModelMap類,控制器方法添加這兩個類型的參數(shù),使用該參數(shù)設(shè)置數(shù)據(jù),該數(shù)據(jù)就會存到request域中。

控制器方法

//使用Model、ModelMap
    @RequestMapping("/c2/hello4")
    public String setRequestModel2(Model model, ModelMap modelMap){
        // 使用Model將數(shù)據(jù)存入request域
        model.addAttribute("username","LYL");
        // 使用ModelMap將數(shù)據(jù)傳入request域
        modelMap.addAttribute("usernameMap","HQX");
        return "lyl-HQX";
    }

測試結(jié)果

Spring MVC處理響應(yīng)附案例詳解

OK,可以看得到兩個屬性都已經(jīng)成功獲取。?

3.1.3 使用參數(shù)為Map集合

Model接口底層就是一個Map集合,我們可以給控制器方法設(shè)置Map類型的參數(shù),向Map中添加鍵值對,數(shù)據(jù)也會存到request域中。

控制器方法

// 使用Map集合
    @RequestMapping("/c2/hello5")
    public String setRequestModel3(Map map){
        map.put("username","程序員");
        map.put("usernameMap","程序員");
        return "lyl-HQX";
    }

測試結(jié)果

Spring MVC處理響應(yīng)附案例詳解

OK,可以看得出來和上面也是一樣可以使用的。?

3.2 session域設(shè)置數(shù)據(jù)

????????Session作用域表示在當(dāng)前會話中有效。在SpringMVC中對于Session作用域傳值,只能使用HttpSession對象來實現(xiàn)。

3.2.1 控制器方法

    /**
     * SpringMVC處理響應(yīng)-session域設(shè)置數(shù)據(jù)
     */
    @RequestMapping("/c2/hello6")
    public String setSessionModel(HttpSession session){
        session.setAttribute("address","北京");
        return "lyl-HQX";
    }

OK,這次是在session域設(shè)置了一個地址屬性,看一下能否成功獲取?

3.2.2 測試結(jié)果?

Spring MVC處理響應(yīng)附案例詳解

Ok,可以看到確實成功獲取了。?

3.3 context域設(shè)置數(shù)據(jù)

????????context作用域表示在整個應(yīng)用范圍都有效。在SpringMVC中對context作用域傳值,只能使用ServletContext對象來實現(xiàn)。但是該對象不能直接注入到方法參數(shù)中,需要通過HttpSession對象獲取。

3.2.1 控制器方法

    /**
     * SpringMVC處理響應(yīng)-context域設(shè)置數(shù)據(jù)
     */
    @RequestMapping("/c2/hello7")
    public String setContextModel(HttpSession session){
        ServletContext servletContext = session.getServletContext();
        servletContext.setAttribute("age",10);
        return "lyl-HQX";
    }

這次利用context域設(shè)置了一個年齡屬性,看一下能否獲取對應(yīng)的值。

3.2.2 測試結(jié)果?

Spring MVC處理響應(yīng)附案例詳解

OK,確實成功獲取到了。?

四、請求轉(zhuǎn)發(fā)&重定向

之前的案例,我們發(fā)現(xiàn)request域中的值可以傳到j(luò)sp頁面中,也就是通過視圖解析器跳轉(zhuǎn)到視圖的底層是請求轉(zhuǎn)發(fā)。
如果我們跳轉(zhuǎn)時不想使用視圖解析器,可以使用原生HttpServletRequest進(jìn)行請求轉(zhuǎn)發(fā)或HttpServletResponse進(jìn)行重定向:

4.1 原生請求轉(zhuǎn)發(fā)重定向?qū)懛?/h3>

4.1.1 重定向控制器方法

    /**
     * SpringMVC處理響應(yīng)-請求轉(zhuǎn)發(fā)&重定向
     */
    @RequestMapping("/c2/hello8")
    public void myForward1(HttpServletRequest request, HttpServletResponse response) throws Exception{
        request.setAttribute("name","程序員");
        // 請求轉(zhuǎn)發(fā)
        //request.getRequestDispatcher("/c2/hello9").forward(request,response);
        // 原生重定向
        response.sendRedirect("/c2/hello9");
    }

OK,這是重定向到/c2/hello9,接下來寫一個/c2/hello9的控制器方法,看一下控制臺能否打印出來。

    @RequestMapping("/c2/hello9")
    public void myForward2(HttpServletRequest request){
        System.out.println("hello");
        System.out.println(request.getAttribute("name"));
    }

4.1.2 重定向測試結(jié)果

Spring MVC處理響應(yīng)附案例詳解

OK,可以看得到確實重定向去了。注意看,這里重定向出來后是無法獲取request域的屬性值的,待會試一下請求轉(zhuǎn)發(fā)可不可以。?重定向地址欄會發(fā)生變化,而請求轉(zhuǎn)發(fā)地址欄是不會變化的。

4.1.3 請求轉(zhuǎn)發(fā)測試結(jié)果

Spring MVC處理響應(yīng)附案例詳解

OK,,可以看得到請求轉(zhuǎn)發(fā)就可以獲取屬性值,并且地址欄沒有發(fā)生變化。

4.2 springmvc提供的請求轉(zhuǎn)發(fā)重定向?qū)懛?/h3>
// SpringMVC提供一種關(guān)于重定向和請求轉(zhuǎn)發(fā)更為簡單的寫法
    @RequestMapping("/c2/hello10")
    public String myForward3(HttpServletRequest request){
        request.setAttribute("name","程序員");
        // 請求轉(zhuǎn)發(fā)
        return "forward:/c2/hello9";
        // 重定向
        //return "redirect:/c2/hello9";
    }

?OK,本次就學(xué)習(xí)到這里,有興趣的朋友可以看一下我下面的專欄文章。

往期專欄&文章相關(guān)導(dǎo)讀?

?????大家如果對于本期內(nèi)容有什么不了解的話也可以去看看往期的內(nèi)容,下面列出了博主往期精心制作的Maven,Mybatis等專欄系列文章,走過路過不要錯過哎!如果對您有所幫助的話就點(diǎn)點(diǎn)贊,收藏一下啪。其中Spring專欄有些正在更,所以無法查看,但是當(dāng)博主全部更完之后就可以看啦。

1. Maven系列專欄文章

Maven系列專欄 Maven工程開發(fā)
Maven聚合開發(fā)【實例詳解---5555字】

2. Mybatis系列專欄文章

Mybatis系列專欄 MyBatis入門配置
Mybatis入門案例【超詳細(xì)】
MyBatis配置文件 —— 相關(guān)標(biāo)簽詳解
Mybatis模糊查詢——三種定義參數(shù)方法和聚合查詢、主鍵回填
Mybatis動態(tài)SQL查詢 --(附實戰(zhàn)案例--8888個字--88質(zhì)量分)
Mybatis分頁查詢——四種傳參方式
Mybatis一級緩存和二級緩存(帶測試方法)
Mybatis分解式查詢
Mybatis關(guān)聯(lián)查詢【附實戰(zhàn)案例】
MyBatis注解開發(fā)---實現(xiàn)增刪查改和動態(tài)SQL
MyBatis注解開發(fā)---實現(xiàn)自定義映射關(guān)系和關(guān)聯(lián)查詢

3. Spring系列專欄文章

Spring系列專欄 Spring IOC 入門簡介【自定義容器實例】
IOC使用Spring實現(xiàn)附實例詳解
Spring IOC之對象的創(chuàng)建方式、策略及銷毀時機(jī)和生命周期且獲取方式
Spring DI簡介及依賴注入方式和依賴注入類型
Spring IOC相關(guān)注解運(yùn)用——上篇
Spring IOC相關(guān)注解運(yùn)用——下篇
Spring AOP簡介及相關(guān)案例
注解、原生Spring、SchemaBased三種方式實現(xiàn)AOP【附詳細(xì)案例】
Spring事務(wù)簡介及相關(guān)案例
Spring 事務(wù)管理方案和事務(wù)管理器及事務(wù)控制的API
Spring 事務(wù)的相關(guān)配置、傳播行為、隔離級別及注解配置聲明式事務(wù)

4. Spring MVC系列專欄文章?

SpringMVC系列專欄 Spring MVC簡介附入門案例
Spring MVC各種參數(shù)獲取及獲取方式自定義類型轉(zhuǎn)換器和編碼過濾器
Spring MVC獲取參數(shù)和自定義參數(shù)類型轉(zhuǎn)換器及編碼過濾器
Spring MVC處理響應(yīng)附案例詳解
Spring MVC相關(guān)注解運(yùn)用 —— 上篇

Spring MVC相關(guān)注解運(yùn)用 —— 中篇文章來源地址http://www.zghlxwxcb.cn/news/detail-501989.html

Spring MVC相關(guān)注解運(yùn)用 —— 下篇
Spring MVC多種情況下的文件上傳
Spring MVC異步上傳、跨服務(wù)器上傳和文件下載
Spring MVC異常處理【單個控制異常處理器、全局異常處理器、自定義異常處理器】
Spring MVC攔截器和跨域請求
SSM整合案例【C站講解最詳細(xì)流程的案例】

到了這里,關(guān)于Spring MVC處理響應(yīng)附案例詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【Spring】Spring MVC請求響應(yīng)

    【Spring】Spring MVC請求響應(yīng)

    訪問不同的路徑, 就是發(fā)送不同的請求。在發(fā)送請求時, 可能會帶?些參數(shù), 所以學(xué)習(xí)Spring的請求, 主要是學(xué)習(xí)如何傳遞參數(shù)到后端以及后端如何接收。 傳遞參數(shù),我們通過postman測試。 正常傳遞: 可以看到, 后端程序正確拿到了name參數(shù)的值。 Spring MVC 會根據(jù)?法的參數(shù)名, 找

    2024年02月08日
    瀏覽(27)
  • spring mvc 請求與響應(yīng)

    spring mvc 請求與響應(yīng)

    我是南城余!阿里云開發(fā)者平臺專家博士證書獲得者! 歡迎關(guān)注我的博客!一同成長! 一名從事運(yùn)維開發(fā)的worker,記錄分享學(xué)習(xí)。 專注于AI,運(yùn)維開發(fā),windows?Linux?系統(tǒng)領(lǐng)域的分享! 知識庫鏈接: 請求與響應(yīng) · 語雀 1. 請求映射路徑 get請求是路徑傳參,而post請求是body傳參

    2024年01月25日
    瀏覽(35)
  • 【Java EE】關(guān)于Spring MVC 響應(yīng)

    【Java EE】關(guān)于Spring MVC 響應(yīng)

    在博主前面寫的博客 【Java EE】Spring請求如何傳遞參數(shù)詳解 中我們已經(jīng)設(shè)置了響應(yīng)數(shù)據(jù),Http響應(yīng)結(jié)果可以是數(shù)據(jù),也可以是靜態(tài)??,也可以針對響應(yīng)設(shè)置狀態(tài)碼, Header信息等 首先我們像創(chuàng)建一個靜態(tài)界面,創(chuàng)建位置如下: 前端代碼如下: 不過這里的后端的代碼和以前的代碼

    2024年04月14日
    瀏覽(24)
  • 【Spring MVC學(xué)習(xí)】連接 && 接收請求參數(shù) && 響應(yīng)返回參數(shù)

    【Spring MVC學(xué)習(xí)】連接 && 接收請求參數(shù) && 響應(yīng)返回參數(shù)

    目錄 前言:認(rèn)識Spring MVC ??1、什么是MVC? 一、建立連接(5個注解) ??1、@RequestMapping注解:注冊接?的路由映射(默認(rèn)返回頁面) ??2、@ResponseBody注解:表示返回的是數(shù)據(jù) ???3、組合注解@RestController = @ResponseBody + @Controller ??4、支持Get請求的2種寫法@GetMapping +?@RequestMapp

    2024年02月16日
    瀏覽(30)
  • 43、基于 springboot 自動配置的 spring mvc 錯誤處理,就是演示項目報錯后,跳轉(zhuǎn)到自定義的錯誤頁面

    43、基于 springboot 自動配置的 spring mvc 錯誤處理,就是演示項目報錯后,跳轉(zhuǎn)到自定義的錯誤頁面

    Spring MVC 的錯誤處理:基于 SpringBoot 自動配置之后的 Spring MVC 錯誤處理。 就是訪問方法時出錯,然后弄個自定義的錯誤頁面進(jìn)行顯示。 方式一: 基于Spring Boot自動配置的錯誤處理方式,只要通過屬性文件即可配置錯誤處理行為。 提供自定義的錯誤頁面即可。 方式二: 使用

    2024年02月10日
    瀏覽(18)
  • 案例13 Spring MVC參數(shù)傳遞案例

    案例13 Spring MVC參數(shù)傳遞案例

    基于Spring MVC實現(xiàn)HttpServletRequest、基本數(shù)據(jù)類型、Java Bean、數(shù)組、List、Map、JSON方式的參數(shù)傳遞。 選擇Maven快速構(gòu)建web項目,項目名稱為case13-springmvc02。 ? src.main路徑下,執(zhí)行new – Directory操作,選擇java、resources后,執(zhí)行回車鍵。 ? 在web.xml中配置DispatcherServlet。 src.main.java.

    2024年02月13日
    瀏覽(24)
  • 案例14 Spring MVC文件上傳案例

    案例14 Spring MVC文件上傳案例

    基于Spring MVC實現(xiàn)文件上傳: 使用commons-fileupload實現(xiàn)上傳文件到本地目錄。 實現(xiàn)上傳文件到阿里云OSS和從阿里云OSS下載文件到本地。 選擇Maven快速構(gòu)建web項目,項目名稱為case14-springmvc03。 ? src.main.resources目錄下創(chuàng)建spring-mvc.xml。 在src.main.java.com.wfit.upload目錄下創(chuàng)建UploadContr

    2024年02月13日
    瀏覽(24)
  • Spring MVC入門案例?。?!

    Spring MVC入門案例!??!

    idea如何建立web項目???-CSDN博客 index.jsp: success.jsp

    2024年01月16日
    瀏覽(16)
  • servlet -> spring-mvc -> spring-boot-> spring-security目錄

    springMVC 啟動源碼 spring-boot注冊servlet 3.多種方式注冊servlet spring-boot自動注入DispatchServlet spring-security核心配置解讀(粗) spring-security源碼解讀(新)

    2024年02月09日
    瀏覽(24)
  • Spring MVC簡介附入門案例

    Spring MVC簡介附入門案例

    目錄 ? 一、SpringMVC簡介 1.1?MVC模型 1.2?SpringMVC 二、SpringMVC入門案例 2.1?創(chuàng)建項目 2.2?引入依賴和tomcat插件 2.3?修改web.xml文件? 2.4?新建springmvc.xml文件 2.5 編寫控制器? 2.6?配置運(yùn)行方式 2.7?運(yùn)行測試? 三、SpringMVC執(zhí)行流程 3.1?SpringMVC的組件 3.2?組件的工作流程 往期專欄文章

    2024年02月09日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包