欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決@PathVariable對于特殊字符截斷的問題

 更新時間:2021年02月24日 08:38:09   作者:往前的娘娘  
這篇文章主要介紹了解決@PathVariable對于特殊字符截斷的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

概述:

@ResponseBody
 @RequestMapping(value="/download/{fileName:[a-zA-Z0-9\\.\\-\\_]+}", method = RequestMethod.GET)
 public void downloadAmr( HttpServletRequest request, HttpServletResponse response, @PathVariable("fileName") String fileName) {
 response.setContentType("application/octet-stream");
 String dir = System.getProperty("catalina.home"); //獲得tomcat所在的工作路徑 
 System.out.println("tomcat路徑=" + dir); 
 //獲取到存儲了文件存儲位置的filedir.properties 文件路徑 
 String dir2 = dir.substring(0, dir.length()) + File.separator +"webapps" + File.separator + "ROOT" + File.separator + fileName; 
 File file = new File(dir2);
 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
 byte[] buffer = new byte[1024]; 
 int len; 
 try { 
 InputStream inputStream = new FileInputStream(file);
 while ((len = inputStream.read(buffer)) > -1 ) { 
 byteArrayOutputStream.write(buffer, 0, len); 
 } 
 byteArrayOutputStream.flush(); 
 response.getOutputStream().write(byteArrayOutputStream.toByteArray());
 } catch (FileNotFoundException e) {
 logger.error("讀取文件異常", e);
 } catch (IOException e) { 
 logger.error(e.getMessage(), e); 
 } 
 logger.info("下載進入。。。。。。。。。。。。。。。。。");
 }

總結(jié):

1、默認值情況下 /download/{fileName}, 然后 @PathVariable("fileName"),

如果路徑為/download/1.jpg的話,那么 fileName=1 而不是1.jpg,問題就是默認對于字符._-相關(guān)進行截斷了。

2、解決方法就是

{fileName:[a-zA-Z0-9\\.\\-\\_]+}

用正則表達式表示這些字符不能被截斷。

補充:Springboot用@PathVariable傳參,最后一個參數(shù)會丟失小數(shù)點后面的部分

當使用@PathVariable傳遞路徑參數(shù)時,竟然神奇的發(fā)現(xiàn),后面一位參數(shù)的小數(shù)點后面部分竟然不見啦,如下代碼:

Controller方法注解如下:

@RequestMapping(value = "/user/findPassword/{email}", method = RequestMethod.GET, produces="application/json")

我這里是想傳遞個郵箱過來的,然后就發(fā)現(xiàn)了沒有郵箱后綴。

百思不得其解,遂百度之,解決方法如下:

@RequestMapping(value = "/user/findPassword/{email:.+}", method = RequestMethod.GET, produces="application/json")

在參數(shù)后面添加個冒號和一個小數(shù)點在加上一個加號:{email:.+}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • java 內(nèi)部類的詳解及實例

    java 內(nèi)部類的詳解及實例

    這篇文章主要介紹了 java 內(nèi)部類的詳解及實例的相關(guān)資料,這里提供了兩種內(nèi)部類的實現(xiàn)方法,并給出實例,需要的朋友可以參考下
    2017-08-08
  • Springbean的幾種注入方式都了解嗎

    Springbean的幾種注入方式都了解嗎

    這篇文章主要介紹了Springbean的幾種注入方式都了解嗎,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • JPA多數(shù)據(jù)源分布式事務(wù)處理方案

    JPA多數(shù)據(jù)源分布式事務(wù)處理方案

    這篇文章主要為大家介紹了JPA多數(shù)據(jù)源分布式事務(wù)處理的兩種事務(wù)方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-02-02
  • SpringBoot結(jié)合mockito測試實戰(zhàn)

    SpringBoot結(jié)合mockito測試實戰(zhàn)

    與集成測試將系統(tǒng)作為一個整體測試不同,單元測試更應(yīng)該專注于某個類。所以當被測試類與外部類有依賴的時候,尤其是與數(shù)據(jù)庫相關(guān)的這種費時且有狀態(tài)的類,很難做單元測試。但好在可以通過“Mockito”這種仿真框架來模擬這些比較費時的類,從而專注于測試某個類內(nèi)部的邏輯
    2022-11-11
  • SpringBoot注冊Servlet的三種方法詳解

    SpringBoot注冊Servlet的三種方法詳解

    這篇文章主要介紹了SpringBoot注冊Servlet的三種方法詳解,教你如何Spring Boot 注冊 Servlet、Filter、Listener,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • spring?@value無法取值多個properties文件的解決

    spring?@value無法取值多個properties文件的解決

    這篇文章主要介紹了spring?@value無法取值多個properties文件的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java NIO服務(wù)器端開發(fā)詳解

    Java NIO服務(wù)器端開發(fā)詳解

    這篇文章主要介紹了Java NIO服務(wù)器端開發(fā)詳解,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • SpringAMQP消息隊列(SpringBoot集成RabbitMQ方式)

    SpringAMQP消息隊列(SpringBoot集成RabbitMQ方式)

    這篇文章主要介紹了SpringAMQP消息隊列(SpringBoot集成RabbitMQ方式),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • @Async導(dǎo)致controller?404及失效原因解決分析

    @Async導(dǎo)致controller?404及失效原因解決分析

    這篇文章主要為大家介紹了@Async導(dǎo)致controller?404失效問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • 一文秒懂Java中的樂觀鎖 VS 悲觀鎖

    一文秒懂Java中的樂觀鎖 VS 悲觀鎖

    這篇文章主要介紹了java樂觀鎖 VS 悲觀鎖的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-05-05

最新評論