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

SpringBoot -05 SpringBoot web相關(guān)配置(靜態(tài)資源訪問、統(tǒng)一異常處理、文件上傳、攔截器、統(tǒng)一跨域請求處理)

這篇具有很好參考價值的文章主要介紹了SpringBoot -05 SpringBoot web相關(guān)配置(靜態(tài)資源訪問、統(tǒng)一異常處理、文件上傳、攔截器、統(tǒng)一跨域請求處理)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

小總結(jié) SpringBoot是一個基于Spring的工具集,去幫我們完成了大量的配置。在SpringBoot中有一個約定大于配置的概念,就是他把我們很多第三方框架幫我們寫好了,而且把我們整個第三方框架所需要的依賴全都通過起步依賴加進去了。開發(fā)中只需要加入起步依賴就可以實現(xiàn)某個場景的開發(fā),比如web開發(fā)場景、mybatis開發(fā)場景、Redis開發(fā)場景....

SpringBoot web相關(guān)配置

1 靜態(tài)資源訪問

Springboot工程的靜態(tài)資源約定(默認)要求放在如下目錄

resource

? —/static

? — /public

? —/resources

? —/META-INF/resources

優(yōu)先級順序 /META-INF/resources >>> resources >>> static >>> public

1.1 配置自定義靜態(tài)資源路徑

基于配置類的方式

@Configuration   // 表示當(dāng)前類是一個配置類
public class MyWebConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/imag/**")//瀏覽器資源訪問路徑
                .addResourceLocations("classpath:/images/"); //映射本地資源路徑
    }
}

基于配置文件的方式

spring:
  mvc:
    static-path-pattern: /images/**
  resources:
    static-locations: classpath:/images/

2 統(tǒng)一異常處理

SpringBoot提供了一個默認的映射:/error,當(dāng)處理中拋出異常之后,會轉(zhuǎn)到請求中處理,并且該請求有一個全局的錯誤頁面用來展示異常內(nèi)容。

2.1 自定義全局處理異常

走視圖解析器的配置

  • advice 底層是AOP技術(shù) 報錯之后,在不修改Controller層的基礎(chǔ)之上做增強
@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(Exception.class)
    public String exceptionHandle(HttpServletRequest request, Exception e){
        return "errorPage";
    }

    @ExceptionHandler(NullPointerException.class)
    public String exceptionHandle1(HttpServletRequest request, Exception e){
        //可根據(jù)不同的異常做出不同的處理
        return "errorPage1";
    }
}

前后端分離的配置(返回json數(shù)據(jù))

@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(Exception.class)
    @ResponseBody
    public ResultData exceptionHandle(HttpServletRequest request, Exception e){
        return new ResultData(101,"出錯啦??!");
    }

    @ExceptionHandler(NullPointerException.class)
    @ResponseBody
    public ResultData exceptionHandle1(HttpServletRequest request, Exception e){
        //可根據(jù)不同的異常做出不同的處理
        return new ResultData(101,"出錯啦111?。?);
    }
}

3 文件上傳

后端Controller

注意:如果這個方法不加@ResponseBody 那么就會走視圖解析器,會404

@Controller
public class UploadController {
    @RequestMapping("upload")
    //注意:如果這個方法不加@ResponseBody   那么就會走視圖解析器,會404
    @ResponseBody
    public ResultData upload(@RequestParam("file")  MultipartFile file) throws IOException {
        try {
            String originalFilename = file.getOriginalFilename();
            String ext = originalFilename.substring(originalFilename.lastIndexOf("."));
            String filename = UUID.randomUUID().toString().replace("-","")+ext;
            file.transferTo(new File("D:\\workspace\\upload\\"+filename));
        } catch (Exception e) {
            e.printStackTrace();
            return new ResultData(100,"上傳失敗");
        }
        return new ResultData(0,"上傳成功");
    }
}

文件上傳配置(非必須配置)

spring:
  servlet:
    multipart:
      # 單個上傳文件大?。J1MB)
      max-file-size: 2MB
      # 總上傳文件大?。J10MB)
      max-request-size: 20MB

使用postman測試

springboot內(nèi)置tomcat中配置外部訪問路徑

@Configuration
public class MyWebConfig implements WebMvcConfigurer {

    //添加虛擬路徑,相同于通過一個路徑來訪問本地磁盤上的內(nèi)容
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/upload/**")
                .addResourceLocations("file:D:\\workspace\\upload\\");
    }
}

4 攔截器

定義攔截器

public class LoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        HttpSession session = request.getSession();
        Object loginUser = session.getAttribute("loginUser");
        if(loginUser == null){
            //登錄失敗跳轉(zhuǎn)到登錄頁面
            response.sendRedirect(request.getContextPath()+"/login.html");
            return false;
        }
        return true;//登錄成功放行
    }
}

配置攔截器

  • 添加攔截器
  • 定義攔截器的路徑
  • 定義排除攔截的路徑
@Configuration
public class MyWebConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginInterceptor()) //添加攔截器
                .addPathPatterns("/**")  //定義攔截的路徑
                .excludePathPatterns("/images");  //定義排除攔截的路徑
    }
}

5 統(tǒng)一跨域請求處理

統(tǒng)一的跨域處理文章來源地址http://www.zghlxwxcb.cn/news/detail-429651.html

@Configuration
public class MyWebConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOriginPatterns("*")
                .allowedHeaders("*")
                .allowCredentials(true)
                .allowedMethods("*");
    }
}


@Configuration  //表示當(dāng)前類是一個配置類
public class MyWebConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/img/**")
                .addResourceLocations("classpath:/images/");

        registry.addResourceHandler("/tupian/**")
                .addResourceLocations("file:D:\\workspace\\upload\\");
    }

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")   //請求的資源  /**表示所有資源 、
                .allowedOrigins("*")    //允許指定的源能訪問
            				//  .allowedOriginPatterns("*")//允許的請求地址  一般不需要
                .allowedHeaders("*")    //允許攜帶的請求頭
                .allowedMethods("*");    //允許的請求方式
                //.allowCredentials(true) //允許是否攜帶cookie

        //注意:當(dāng)設(shè)置允許攜帶Cookie不允許將指定源設(shè)置為所有
    }
}

到了這里,關(guān)于SpringBoot -05 SpringBoot web相關(guān)配置(靜態(tài)資源訪問、統(tǒng)一異常處理、文件上傳、攔截器、統(tǒng)一跨域請求處理)的文章就介紹完了。如果您還想了解更多內(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īng)查實,立即刪除!

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

相關(guān)文章

  • 【BUG】SpringBoot 靜態(tài)資源(static)無法訪問問題404

    【BUG】SpringBoot 靜態(tài)資源(static)無法訪問問題404

    SpringBoot訪問靜態(tài)資源出現(xiàn) 404 項目場景 問題描述 ?編輯原因分析 解決方案 1. 將靜態(tài)資源放在static 或 templates目錄中 2.?繼承WebMvcConfigurerAdapter? 【已經(jīng)過時】 3. 繼承WebMvcConfiguratiWebonSupport 【推薦】 4. 實現(xiàn)WebMvcConfigurer接口 【推薦】 WebMvcConfiguratiWebonSupport 與?WebMvcConfigurer 區(qū)別

    2024年02月05日
    瀏覽(21)
  • Nginx訪問靜態(tài)資源配置

    關(guān)于 alias和root配置的說明: 一般情況下,在nginx配置中的良好習(xí)慣是: 1)在location /中,即路徑為“ / ”時, 配置root目錄; 2)在location /path中,即路徑包含指定內(nèi)容,如“ localtion /imgs ”時, 配置alias虛擬目錄。

    2024年02月09日
    瀏覽(19)
  • springboot 項目訪問靜態(tài)資源遇到的問題,WebMvcConfigurer和WebMvcConfigurationSupport

    之前發(fā)過通過繼承WebMvcConfigurationSupport來訪問靜態(tài)資源的文章——img標簽訪問靜態(tài)資源,代碼如下 這個方法是可行的,但會帶來一個小問題。 像這些本身就要訪問靜態(tài)資源的,它們一般是實現(xiàn)了WebMvcConfigurer,而不是繼承WebMvcConfigurationSupport。 當(dāng)我們用上面代碼中的方法訪問

    2024年01月21日
    瀏覽(15)
  • tomcat配置靜態(tài)資源訪問(親測ok版)

    tomcat配置靜態(tài)資源訪問(親測ok版)

    最近偶爾接收一個ssm+jsp的項目,因為之前的文件上傳都是存在項目里,用tomcat啟動的話,往往不能實時加載圖片等資源 做一個用戶頭像切換功能,上傳了文件后(上傳是用的layui的組件,上傳無問題)。但是加載的時候,必須重新啟動項目才可以。我靠,這怎么行? 這里的

    2024年02月10日
    瀏覽(19)
  • SpringBoot項目打成jar包后,上傳的靜態(tài)資源(圖片等)如何存儲和訪問

    SpringBoot項目打成jar包后,上傳的靜態(tài)資源(圖片等)如何存儲和訪問

    使用springboot開發(fā)一個項目,開發(fā)文件上傳的時候,通常會將上傳的文件存儲到資源目錄下的static里面,然后在本地測試上傳文件功能沒有問題,但是將項目打成jar包放到服務(wù)器上運行的時候就會報錯,找不到對應(yīng)目錄?;蛘呖梢詫⑸蟼魑募鎯Φ胶蚸ar包同級的目錄下,但是無

    2024年02月12日
    瀏覽(25)
  • springboot-靜態(tài)資源目錄的配置

    配置節(jié)點:spring.web.resources.static-locations 值為要配置的靜態(tài)資源存放目錄 如: 以上配置中,設(shè)置靜態(tài)資源目錄為src/main/resources/test/目錄。 假如在test目錄下存放文件test.txt,程序啟動后,便能通過瀏覽器訪問ip:port/test.txt訪問文件。 新建WebMvcConfig類,繼承WebMvcConfigurationSupport類

    2024年02月16日
    瀏覽(21)
  • Spring boot之WEB 開發(fā)-靜態(tài)資源訪問--自定義轉(zhuǎn)換器--處理JSON--內(nèi)容協(xié)商

    Spring boot之WEB 開發(fā)-靜態(tài)資源訪問--自定義轉(zhuǎn)換器--處理JSON--內(nèi)容協(xié)商

    在線文檔: https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.developing-web-applications 1. 只要靜態(tài)資源放在類路徑下: /static 、/public 、/resources 、/META-INF/resources可以被直接訪問- 對應(yīng)文件WebProperties.java 2. 常見靜態(tài)資源:JS、CSS 、圖片(.jpg .png .gif .bmp .svg)、字體

    2024年02月09日
    瀏覽(37)
  • idea中沒有tomcat,tomcat配置,以及訪問靜態(tài)資源

    idea中沒有tomcat,tomcat配置,以及訪問靜態(tài)資源

    1.點擊add configurations 2.如下所示 選擇tomcat server 3. 配置tomcat 正常情況下 , URL為http://localhost:8080/,Application context就是:/ URL為http://localhost:8080/XXX,Application context就是:/XXX Server中的URL: tomcat啟動后,自動跳轉(zhuǎn)的url Deployment中的Application context: 項目實際可以訪問到的url 如果是

    2024年01月18日
    瀏覽(26)
  • nginx上web服務(wù)的基本安全優(yōu)化、服務(wù)性能優(yōu)化、訪問日志優(yōu)化、目錄資源優(yōu)化和防盜鏈配置簡介

    nginx上web服務(wù)的基本安全優(yōu)化、服務(wù)性能優(yōu)化、訪問日志優(yōu)化、目錄資源優(yōu)化和防盜鏈配置簡介

    目錄 一.基本安全優(yōu)化 1.隱藏nginx軟件版本信息 2.更改源碼來隱藏軟件名和版本 (1)修改第一個文件(核心頭文件),在nginx安裝目錄下找到這個文件并修改 (2)第二個文件 (3)第三個文件,內(nèi)置響應(yīng)信息頁面 (4)第四個文件 (5)重新編譯安裝并重啟 3.更改nginx服務(wù)的默

    2024年02月13日
    瀏覽(18)
  • 記錄使用nginx部署靜態(tài)資源流程,以及遇到的訪問靜態(tài)資源404問題

    記錄使用nginx部署靜態(tài)資源流程,以及遇到的訪問靜態(tài)資源404問題

    將網(wǎng)站靜態(tài)資源(HTML,JavaScript,CSS,img等文件)與后臺應(yīng)用分開部署實現(xiàn) 動靜分離 ,提高用戶訪問靜態(tài)代碼的速度,降低對后臺應(yīng)用訪問,減輕后臺服務(wù)器的壓力。 這里我選擇放在了 html文件夾 下,(也可以放在和html文件夾同級,或其它位置 打開 conf文件夾 打開總配置文

    2024年02月08日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包