第三章(三自學)擴充套件
3)靜態首頁的支援
demo-web3工程
預設把靜態index.html檔案放置在如下目錄
classpath:/META-INF/resources/index.html
classpath:/resources/index.html
classpath:/static/index.html
classpath:/public/index.html
當我們訪問應用根目錄http://localhost:8080/時,會直接對映
注意:如果配置了自己的靜態檔案訪問路徑,則必須放到自己的目錄下,即我們做了1.1配置則把檔案放到src/main/webapp/static目錄下
使用總結:
- 不在application.properties裡做靜態資源配置(*.html的可以放到預設目錄下)。
- js,css,images等在*.java裡配置訪問許可權。
4)配置攔截器(瞭解)
demo-web4工程
自定義一個配置類,實現WebMvcConfigurer介面
重寫addInterceptors方法
addInterceptor方法,新增自定義的攔截器
addPathPatterns方法,攔截的uri
excludePathPatterns方法,排除攔截的uri
step1 定義攔截器,同springmvc寫法implements HandlerInterceptor
package com.neuedu.demo.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class HandlerInterceptor1 implements HandlerInterceptor{
//進入 Handler方法之前執行
//用於身份認證、身份授權
//比如身份認證,如果認證不通過表示當前使用者沒有登陸,需要此方法攔截不再向下執行
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
System.out.println("HandlerInterceptor1...preHandle");
//return false表示攔截,不向下執行
//return true表示放行
return true;
}
//進入Handler方法之後,返回modelAndView之前執行
//應用場景從modelAndView出發:將公用的模型資料(比如選單導航)在這裡傳到檢視,也可以在這裡統一指定檢視
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
System.out.println("HandlerInterceptor1...postHandle");
}
//執行Handler完成執行此方法
//應用場景:統一異常處理,統一日誌處理
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex)
throws Exception {
System.out.println("HandlerInterceptor1...afterCompletion");
}
}
HandlerInterceptor2(略)
step2 配置使用攔截器,addPathPatterns為攔截哪些地址,excludePathPatterns為排除哪些地址
@Override
public void addInterceptors(InterceptorRegistry registry) {
//將靜態資源排除在攔截之外
registry.addInterceptor(new HandlerInterceptor1()).addPathPatterns("/**");
registry.addInterceptor(new HandlerInterceptor2()).addPathPatterns("/**")
.excludePathPatterns("/index.html","/","/static/**");
}
測試:
http://localhost:8080/static/index.html 不會被攔截
http://localhost:8080/hello2 會被攔截
相關文章
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- 再學Blazor——擴充套件方法Blazor套件
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- sql中的擴充套件學習SQL套件
- SpringMVC 擴充套件SpringMVC套件
- Mybatis擴充套件MyBatis套件
- 擴充套件工具套件
- Sanic 擴充套件套件
- ORACLE 擴充套件Oracle套件
- JMeter 擴充套件開發:擴充套件 TCP 取樣器JMeter套件TCP
- 使用Kotlin擴充套件函式擴充套件Spring Data案例Kotlin套件函式Spring
- ASP.NET Core擴充套件庫之Http通用擴充套件ASP.NET套件HTTP
- ?用Chrome擴充套件管理器, 管理你的擴充套件Chrome套件
- 提高擴充套件性套件
- LINQ擴充套件方法套件
- HttpContext擴充套件類HTTPContext套件
- Json擴充套件方法JSON套件
- 擴充套件BSGS/exBSGS套件
- 擴充套件包上傳套件
- Flask 自建擴充套件Flask套件
- Nmap 擴充套件(四)套件
- 分類擴充套件套件
- 擴充套件表示式套件
- 新增php擴充套件PHP套件
- 可擴充套件性套件
- 19-擴充套件套件
- iOS 通知擴充套件iOS套件
- swift擴充套件ExtensionsSwift套件
- DOM部分擴充套件套件
- PHP擴充套件開發就是一個自己的PHP擴充套件PHP套件
- Laravel深入學習7 – 框架的擴充套件Laravel框架套件
- C#學習筆記(補充)——擴充套件方法、事件C#筆記套件事件
- 乾貨丨如何水平擴充套件和垂直擴充套件DolphinDB叢集?套件
- 並查集擴充套件並查集套件
- spring bean 擴充套件方式SpringBean套件
- Dapper.Lite 擴充套件APP套件
- android view 擴充套件方法AndroidView套件
- 線段樹擴充套件套件