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

SpringMVC之獲取請求參數(shù)

這篇具有很好參考價值的文章主要介紹了SpringMVC之獲取請求參數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

下面用到了thymeleaf,不知道的可以看我同專欄里的搭建框架這篇文章。


一、通過ServletAPI獲取

將HttpServletRequest作為控制器方法的形參,此時HttpServletRequest類型的參數(shù)表示封裝了當(dāng)前請求的請求報文的對象。

<a th:href="@{/testServletAPI(username='admin',password=123456)}">測試使用servletAPI獲取請求參數(shù)</a><br>
@RequestMapping("/testParam")
public String testParam(HttpServletRequest request){
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("username:"+username+",password:"+password);
return "success";
}

二、通過控制器方法的形參獲取請求參數(shù)

在控制器方法的形參位置,設(shè)置和請求參數(shù)同名的形參,當(dāng)瀏覽器發(fā)送請求,匹配到請求映射時,在DispatcherServlet中就會將請求參數(shù)賦值給相應(yīng)的形參。

在springMVC中直接在控制層里的映射方法中添加參數(shù)直接獲取請求參數(shù)。

<a th:href="@{/testParam(username='admin',password=123456)}">測試獲取請求參數(shù)--
>/testParam</a><br>
@RequestMapping("/testParam")
public String testParam(String username, String password){
System.out.println("username:"+username+",password:"+password);
return "success";
}

注:
(1)若請求所傳輸?shù)恼埱髤?shù)中有多個同名的請求參數(shù),此時可以在控制器方法的形參中設(shè)置字符串?dāng)?shù)組或者字符串類型的形參接收此請求參數(shù)。
(2)若使用字符串?dāng)?shù)組類型的形參,此參數(shù)的數(shù)組中包含了每一個數(shù)據(jù)。
(3)若使用字符串類型的形參,此參數(shù)的值為每個數(shù)據(jù)中間使用逗號拼接的結(jié)果。

三、注解

1.@RequestParam

@RequestParam是將請求參數(shù)和控制器方法的形參創(chuàng)建映射關(guān)系。

@RequestParam注解一共有三個屬性:

  • value:指定為形參賦值的請求參數(shù)的參數(shù)名。
  • required:設(shè)置是否必須傳輸此請求參數(shù),默認(rèn)值為true
    若設(shè)置為true時,則當(dāng)前請求必須傳輸value所指定的請求參數(shù),若沒有傳輸該請求參數(shù),且沒有設(shè)置defaultValue屬性,則頁面報錯400:Required String parameter ‘xxx’ is not present;若設(shè)置為false,則當(dāng)前請求不是必須傳輸value所指定的請求參數(shù),若沒有傳輸,則注解所標(biāo)識的形參的值為null。
  • defaultValue:不管required屬性值為true或false,當(dāng)value所指定的請求參數(shù)沒有傳輸或傳輸?shù)闹禐?"時,則使用默認(rèn)值為形參賦值。

2.@RequestHeader

@RequestHeader是將請求頭信息和控制器方法的形參創(chuàng)建映射關(guān)系。

@RequestHeader注解一共有三個屬性:value、required、defaultValue,用法同@RequestParam。

3.@CookieValue

@CookieValue是將cookie數(shù)據(jù)和控制器方法的形參創(chuàng)建映射關(guān)系。

@CookieValue注解一共有三個屬性:value、required、defaultValue,用法同@RequestParam。

前面的代碼總和:

<h1>測試請求參數(shù)</h1>
<a th:href="@{/testServletAPI(username='admin',password=123456)}">測試使用servletAPI獲取請求參數(shù)</a><br>
<a th:href="@{/testParam(username='admin',password=123456)}">測試使用控制器的形參獲取請求參數(shù)</a><br>
<form th:action="@{/testParam}" method="get">
    用戶名:<input type="text" name="user_name"><br>
    密碼:<input type="password" name="password"><br>
    愛好:<input type="checkbox" name="hobby" value="a">a
    <input type="checkbox" name="hobby" value="b">b
    <input type="checkbox" name="hobby" value="c">c<br>
    <input type="submit" value="測試使用控制器的形參獲取請求參數(shù)">
</form>
    @RequestMapping("/testServletAPI")
    public String testServletAPI(HttpServletRequest request){
        HttpSession session=request.getSession();
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        System.out.println("username:"+username+",password:"+password);
        return "success";
    }
    @RequestMapping("/testParam")
    public String testParam(@RequestParam(value = "user_name",required = false,defaultValue = "hello") String username,
                            String password,
                            String[] hobby, @RequestHeader(value = "sayHaha",required = true,defaultValue = "haha") String host,
                            @CookieValue("JSESSIONID") String JSESSIONID){
        System.out.println("username:"+username+",password:"+password+",hobby:"+ Arrays.toString(hobby));
        System.out.println("host:"+host);
        System.out.println("JSESSIONID:"+JSESSIONID);
        return "success";
    }

4.通過POJO獲取請求參數(shù)

可以在控制器方法的形參位置設(shè)置一個實體類類型的形參,此時若瀏覽器傳輸?shù)恼埱髤?shù)的參數(shù)名和實體類中的屬性名一致,那么請求參數(shù)就會為此屬性賦值。

<form th:action="@{/testBean}" method="get">
用戶名:<input type="text" name="username"><br>
密碼:<input type="password" name="password"><br>
性別:<input type="radio" name="sex" value=""><input type="radio"
name="sex" value=""><br>
年齡:<input type="text" name="age"><br>
郵箱:<input type="text" name="email"><br>
<input type="submit">
</form>
@RequestMapping("/testBean")
public String testBean(User user){
System.out.println(user);
return "success";
}
//最終結(jié)果-->User{id=null, username='張三', password='123', age=23, sex='男',
email='123@qq.com'}

三、解決獲取請求參數(shù)的亂碼問題

解決獲取請求參數(shù)的亂碼問題,可以使用SpringMVC提供的編碼過濾器CharacterEncodingFilter,但是必須在web.xml中進(jìn)行注冊。

<!--配置springMVC的編碼過濾器-->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filterclass>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

注:SpringMVC中處理編碼的過濾器一定要配置到其他過濾器之前,否則無效。


總結(jié)

以上就是獲取參數(shù)的講解。文章來源地址http://www.zghlxwxcb.cn/news/detail-661521.html

到了這里,關(guān)于SpringMVC之獲取請求參數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 4、SpringMVC之獲取請求參數(shù)

    4、SpringMVC之獲取請求參數(shù)

    創(chuàng)建名為spring_mvc_demo2的新module,過程參考3.1節(jié) 如果控制器方法有HttpServletRequest類型的形參,DispatcherServlet就會將封裝了當(dāng)前請求的對象傳給控制器方法 +++++++++++++++++++++++++分割線+++++++++++++++++++++++++ +++++++++++++++++++++++++分割線+++++++++++++++++++++++++ +++++++++++++++++++++++++分割線++++++

    2024年02月08日
    瀏覽(20)
  • 詳解 SpringMVC 中獲取請求參數(shù)

    詳解 SpringMVC 中獲取請求參數(shù)

    在Spring MVC中,獲取請求參數(shù)有很多種方式,先來個開盤小菜,使用@RequestParam注解來獲取請求參數(shù)。 @RequestParam注解可以用于方法的參數(shù)上,用于指定請求參數(shù)的名稱。例如,如果你的請求參數(shù)名為\\\"username\\\",你可以在方法參數(shù)上使用@RequestParam(“username”)來獲取該參數(shù)的值。

    2024年02月10日
    瀏覽(25)
  • springMVC獲取請求參數(shù)的方式

    將HttpServletRequest作為控制器方法的形參,此時HttpServletRequest類型的參數(shù)表示封裝當(dāng)前請求的請求報文 只需要在控制器方法的形參位置,設(shè)置一個形參,形參的名字和請求參數(shù)的名字一致即可 后端根據(jù)前端頁面?zhèn)魅氲膶嶋H參數(shù)進(jìn)行一一取值(參數(shù)的少的情況下建議使用) @Re

    2024年02月02日
    瀏覽(29)
  • SpringMVC之獲取請求參數(shù)和域?qū)ο蠊蚕頂?shù)據(jù)

    學(xué)習(xí)的最大理由是想擺脫平庸,早一天就多一份人生的精彩;遲一天就多一天平庸的困擾。各位小伙伴,如果您: 想系統(tǒng)/深入學(xué)習(xí)某技術(shù)知識點… 一個人摸索學(xué)習(xí)很難堅持,想組團(tuán)高效學(xué)習(xí)… 想寫博客但無從下手,急需寫作干貨注入能量… 熱愛寫作,愿意讓自己成為更好

    2024年02月04日
    瀏覽(18)
  • SpringMVC中Controller層獲取前端請求參數(shù)的幾種方式

    SpringMVC中Controller層獲取前端請求參數(shù)的幾種方式

    在controller層方法中定義形參,若請求時參數(shù)名、參數(shù)類型相同,則SpringMVC會自動綁定。 下面使用PostMan進(jìn)行測試發(fā)現(xiàn),無論是將參數(shù)直接拼接到URL還是寫在form-data里;只要參數(shù)類型和參數(shù)名與方法形參相同,則會自動綁定 當(dāng)controller層中的方法形參名與請求參數(shù)名不同時,可

    2024年02月11日
    瀏覽(25)
  • 【SpringMVC】參數(shù)傳遞與用戶請求和響應(yīng)

    【SpringMVC】參數(shù)傳遞與用戶請求和響應(yīng)

    目錄 一、Postman 工具使用 1.1 Postman安裝 1.2 Postman的使用 1.2.1 創(chuàng)建WorkSpace工作空間 1.2.2 創(chuàng)建請求 ? 二、參數(shù)傳遞 2.1 添加 Slf4j 依賴 2.2?普通傳參 知識點1:@RequestMapping 知識點2:@RequestParam 2.3 路徑傳參 知識點3:@PathVariable 2.4 Json數(shù)據(jù)傳參 ?知識點4:@RequestBody ? 三、響應(yīng) 3.1 響

    2024年02月09日
    瀏覽(22)
  • SpringMVC 獲取參數(shù)

    SpringMVC 獲取參數(shù)

    1、通過ServletAPI獲取 將HttpServletRequest作為控制器方法的形參,此時HttpServletRequest類型的參數(shù)表示封裝了當(dāng)前請求的請求報文的對象 2、通過控制器方法的形參獲取請求參數(shù) 在控制器方法的形參位置,設(shè)置和請求參數(shù)同名的形參,當(dāng)瀏覽器發(fā)送請求,匹配到請求映射時,在Dis

    2024年01月21日
    瀏覽(19)
  • SpringMvc參數(shù)獲取

    SpringMvc參數(shù)獲取

    目錄 一、封裝為簡單數(shù)據(jù)類型 二、封裝為單個對象 (1)實體類 (2)控制層 三、封裝為關(guān)聯(lián)對象 (1)實體類 (2)控制層 (3)使用表單發(fā)送帶有參數(shù)的請求 四、封裝為List集合 (1)控制層 五、封裝為對象類型集合 (1)實體類 六、封裝為Map集合 (1)實體類 七、使用

    2024年02月07日
    瀏覽(13)
  • SpringMVC---獲取參數(shù)

    2024年02月04日
    瀏覽(20)
  • SpringMVC項目請求(JSON數(shù)據(jù)傳輸參數(shù))

    SpringMVC項目請求(JSON數(shù)據(jù)傳輸參數(shù))

    現(xiàn)在比較流行的開發(fā)方式為異步調(diào)用。前后臺以異步方式進(jìn)行交換,傳輸?shù)臄?shù)據(jù)使用的是 JSON ,所以前端如果發(fā)送的是JSON數(shù)據(jù),后端該如何接收? 對于JSON數(shù)據(jù)類型,我們常見的有三種: json普通數(shù)組([“value1”,“value2”,“value3”,…]) json對象({key1:value1,key2:value2,…}) json對象

    2023年04月18日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包