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

淺析java中 Spring MVC 攔截器作用及其實(shí)現(xiàn)

 更新時(shí)間:2017年04月17日 14:33:26   投稿:wbb  
本篇文章主要介紹了java中SpringMVC 攔截器的使用及其實(shí)例,需要的朋友可以參考

攔截器的實(shí)現(xiàn)

1、編寫(xiě)攔截器類(lèi)實(shí)現(xiàn)HandlerInterceptor接口;

2、將攔截器注冊(cè)進(jìn)springmvc框架中;

3、配置攔截器的攔截規(guī)則;

其他實(shí)現(xiàn)方法

WebRequestInterceptor接口:

與上一個(gè)的區(qū)別是參數(shù)區(qū)別和prehandle的方法沒(méi)有返回值。沒(méi)有上一個(gè)功能全,因此常用第一個(gè)。

攔截器的使用場(chǎng)景

 處理所有請(qǐng)求共性問(wèn)題:

1、亂碼問(wèn)題:用request,response參數(shù)去設(shè)置編碼;

2、解決權(quán)限驗(yàn)證問(wèn)題(是否登陸,取session對(duì)象查看);

攔截器與過(guò)濾器的區(qū)別

1、攔截器Interceptor依賴(lài)于框架容器,基于反射機(jī)制,只過(guò)濾請(qǐng)求;

2、過(guò)濾器Filter依賴(lài)于Servlet容器,基于回調(diào)函數(shù),過(guò)濾范圍大;

例子

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
 
public class TestInterceptor implements HandlerInterceptor {
 /**
  * 返回值說(shuō)明是否需要將當(dāng)前的請(qǐng)求攔截下來(lái)
  * false:請(qǐng)求將被終止
  * true:請(qǐng)求會(huì)被繼續(xù)運(yùn)行
  * Object handler 表示的是被攔截的請(qǐng)求的目標(biāo)對(duì)象
  */
 @Override
 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
   throws Exception {
  System.out.println("TestInterceptor.preHandle()");
  return true;
 }
 /**
  * modelAndView:
  *  可以通過(guò)modelAndView參數(shù)改變顯示的視圖,或者修改發(fā)往視圖的方法
  */
 @Override
 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
   ModelAndView modelAndView) throws Exception {
  System.out.println("TestInterceptor.postHandle()"); 
 }
 /**
  * 在視圖加載完畢之后調(diào)用
  * 常用于作于資源的銷(xiāo)毀,流等
  * 類(lèi)似于析構(gòu)函數(shù)
  */
 @Override
 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
   throws Exception {
  System.out.println("TestInterceptor.afterCompletion()"); 
 }
}

注冊(cè)方式:

在springmvc的Dispatcherservlet配置文件中加入攔截器代碼;

<!-- 注冊(cè)攔截器 -->
 <mvc:interceptors>
 <!-- 單個(gè)攔截器:設(shè)置具體的攔截路徑 -->
 <mvc:interceptor>
  <mvc:mapping path="/courses/view2/*">
  <bean class="com.cc.mvcdemo.interceptor.TestInterceptor"></bean>
 </mvc:mapping></mvc:interceptor>
 <!-- 第二種方式:攔截經(jīng)過(guò)當(dāng)前Dispatcherservlet的所有請(qǐng)求 -->
 <bean class="com.cc.mvcdemo.interceptor.TestInterceptorTwo"></bean>
 </mvc:interceptors>

希望本篇文章內(nèi)容對(duì)各位朋友有所幫助

相關(guān)文章

  • java與c#的語(yǔ)法區(qū)別詳細(xì)介紹

    java與c#的語(yǔ)法區(qū)別詳細(xì)介紹

    由C#轉(zhuǎn)入Java一段時(shí)間了,總結(jié)下個(gè)人認(rèn)為的Java同C#語(yǔ)法之間的不同之處,有不同意見(jiàn)之處還望各位海涵,剛學(xué)Java時(shí)覺(jué)得語(yǔ)法同C#大致是相同的(應(yīng)該說(shuō)C#同Java大致相同
    2012-11-11
  • Java eclipse doc文檔生成流程解析

    Java eclipse doc文檔生成流程解析

    這篇文章主要介紹了Java eclipse doc文檔生成流程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 詳解idea中web.xml默認(rèn)版本問(wèn)題解決

    詳解idea中web.xml默認(rèn)版本問(wèn)題解決

    這篇文章主要介紹了詳解idea中web.xml默認(rèn)版本問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Maven項(xiàng)目部署到Jboss出現(xiàn)Failed to create a new SAX parser

    Maven項(xiàng)目部署到Jboss出現(xiàn)Failed to create a new SAX parser

    這篇文章主要為大家詳細(xì)介紹了Maven項(xiàng)目部署到Jboss出現(xiàn)Failed to create a new SAX parser的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 詳解Java打包鏡像部署

    詳解Java打包鏡像部署

    這篇文章主要介紹了Java打包鏡像部署,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • SpringBoot整合Shiro的環(huán)境搭建教程

    SpringBoot整合Shiro的環(huán)境搭建教程

    這篇文章主要為大家詳細(xì)介紹了SpringBoot整合Shiro的環(huán)境搭建教程,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解一下
    2022-12-12
  • Java基于UDP協(xié)議實(shí)現(xiàn)簡(jiǎn)單的聊天室程序

    Java基于UDP協(xié)議實(shí)現(xiàn)簡(jiǎn)單的聊天室程序

    這篇文章主要為大家詳細(xì)介紹了Java基于UDP協(xié)議實(shí)現(xiàn)簡(jiǎn)單的聊天室程序的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 詳解JavaScript中的函數(shù)聲明和函數(shù)表達(dá)式

    詳解JavaScript中的函數(shù)聲明和函數(shù)表達(dá)式

    這篇文章主要介紹了詳解JavaScript中的函數(shù)聲明和函數(shù)表達(dá)式,是JS入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-08-08
  • Java內(nèi)存模型之happens-before概念詳解

    Java內(nèi)存模型之happens-before概念詳解

    happens-before原則非常重要,它是判斷數(shù)據(jù)是否存在競(jìng)爭(zhēng)、線(xiàn)程是否安全的主要依據(jù),依靠這個(gè)原則,我們解決在并發(fā)環(huán)境下兩操作之間是否可能存在沖突的所有問(wèn)題。下面我們就一個(gè)簡(jiǎn)單的例子稍微了解下happens-before知識(shí),感興趣的朋友一起看看吧
    2021-06-06
  • Idea安裝Eslint插件提示:Plugin NativeScript was not installed的問(wèn)題

    Idea安裝Eslint插件提示:Plugin NativeScript was not installed的問(wèn)題

    這篇文章主要介紹了Idea安裝Eslint插件提示:Plugin NativeScript was not installed的問(wèn)題,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評(píng)論