最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot如何獲取請求者的ip地址

 更新時間:2024年07月18日 11:32:26   作者:禾火.  
在Spring框架中,可以使用攔截器(Interceptor)來監(jiān)聽每個控制器(Controller)的請求,并記錄請求者的IP地址,這篇文章主要介紹了springboot如何獲取請求者的ip地址,需要的朋友可以參考下

在Spring框架中,可以使用攔截器(Interceptor)來監(jiān)聽每個控制器(Controller)的請求,并記錄請求者的IP地址。

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class IpLoggingInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        // 在請求處理之前調用,可以記錄IP地址等信息
        String clientIpAddress = getClientIpAddress(request);
        System.out.println("IP地址:" + clientIpAddress);
        return true;
    }
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throws Exception {
        // 在請求處理之后調用,但在視圖渲染之前
    }
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
        // 在整個請求完成后調用,可以進行一些清理工作
    }
    private String getClientIpAddress(HttpServletRequest request) {
        String ipAddress = request.getHeader("X-Forwarded-For");
        if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getHeader("Proxy-Client-IP");
        }
        if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getHeader("WL-Proxy-Client-IP");
        }
        if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
            ipAddress = request.getRemoteAddr();
        }
        return ipAddress;
    }
}

上述代碼中的 IpLoggingInterceptor 類實現了 HandlerInterceptor 接口,其中的 preHandle 方法在請求處理之前被調用。在該方法中,我們獲取了請求者的IP地址,并進行了簡單的打印??梢愿鶕枰?,將這些信息記錄到日志文件或其他存儲設備中。

接下來,需要將這個攔截器注冊到Spring應用中。在Spring Boot項目中,可以使用WebMvcConfigurer來注冊攔截器。

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new IpLoggingInterceptor());
    }
}

到此這篇關于springboot如何獲取請求者的ip地址的文章就介紹到這了,更多相關springboot請求者的ip地址內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java中Spring事務失效的8個常見案例和解決方案

    java中Spring事務失效的8個常見案例和解決方案

    本文分析了8種Spring事務失效問題及解決方案,涵蓋注解應用、方法調用、異常處理、數據庫支持、傳播行為、類管理與事務管理器配置等,強調正確配置對數據一致性的重要性
    2025-06-06
  • 多個版本JAVA切換的簡單步驟記錄

    多個版本JAVA切換的簡單步驟記錄

    在工作中或者學習過程中,有一些特殊情況我們需要來切換java版本來做比較,比如一些新特性等等的相關資料,這篇文章主要介紹了多個版本JAVA切換的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2024-09-09
  • Java并發(fā)系列之JUC中的Lock鎖與synchronized同步代碼塊問題

    Java并發(fā)系列之JUC中的Lock鎖與synchronized同步代碼塊問題

    這篇文章主要介紹了Java并發(fā)系列之JUC中的Lock鎖與synchronized同步代碼塊,簡單介紹了lock鎖及鎖的底層知識,結合案例給大家介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • springtask 的使用方法和 cron 表達式解析

    springtask 的使用方法和 cron 表達式解析

    這篇文章主要介紹了springtask 的使用方法和 cron 表達式解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • 詳解Jackson的基本用法

    詳解Jackson的基本用法

    Java生態(tài)圈中有很多處理JSON和XML格式化的類庫,Jackson是其中比較著名的一個。雖然JDK自帶了XML處理類庫,但是相對來說比較低級,使用本文介紹的Jackson等高級類庫處理起來會方便很多
    2021-06-06
  • springboot?如何添加webapp文件夾

    springboot?如何添加webapp文件夾

    這篇文章主要介紹了springboot?如何添加webapp文件夾,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • SpringBoot事務源碼從注解到數據庫的全解析

    SpringBoot事務源碼從注解到數據庫的全解析

    本文深度解析SpringBoot事務源碼:從@Transactional注解觸發(fā)AOP代理,到TransactionInterceptor攔截,本文結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2026-03-03
  • 在Windows上設置JAVA_HOME環(huán)境變量方式

    在Windows上設置JAVA_HOME環(huán)境變量方式

    在Windows上設置JAVA_HOME環(huán)境變量,以便管理和使用JDK,同時對開發(fā)工具和應用至關重要,本文詳細介紹了如何設置JAVA_HOME環(huán)境變量,包括下載JDK、查找安裝路徑、設置JAVA_HOME和Path環(huán)境變量的步驟
    2026-05-05
  • Java中\(zhòng)n和\r區(qū)別

    Java中\(zhòng)n和\r區(qū)別

    本文主要介紹了Java中\(zhòng)n和\r區(qū)別。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Android入門簡單實例

    Android入門簡單實例

    這篇文章主要介紹了Android入門簡單實例,對于初學Android的朋友有一定的借鑒價值,需要的朋友可以參考下
    2014-08-08

最新評論

华阴市| 鄯善县| 屏山县| 蒲城县| 天水市| 峨边| 东方市| 潼关县| 新和县| 灵川县| 禹州市| 农安县| 革吉县| 焉耆| 怀化市| 桑日县| 安远县| 木兰县| 工布江达县| 石门县| 额济纳旗| 巴彦淖尔市| 新乐市| 阳谷县| 饶河县| 陇南市| 佛教| 荥经县| 永兴县| 沈阳市| 和林格尔县| 济南市| 彭阳县| 通许县| 胶南市| 白银市| 龙里县| 章丘市| 施甸县| 九台市| 那坡县|