最新国产好看的视频,伊人天堂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 {
        // 在請求處理之前調(diào)用,可以記錄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 {
        // 在請求處理之后調(diào)用,但在視圖渲染之前
    }
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
        // 在整個請求完成后調(diào)用,可以進(jìn)行一些清理工作
    }
    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 類實現(xiàn)了 HandlerInterceptor 接口,其中的 preHandle 方法在請求處理之前被調(diào)用。在該方法中,我們獲取了請求者的IP地址,并進(jìn)行了簡單的打印??梢愿鶕?jù)需要,將這些信息記錄到日志文件或其他存儲設(shè)備中。

接下來,需要將這個攔截器注冊到Spring應(yīng)用中。在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());
    }
}

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

相關(guān)文章

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

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

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

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

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

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

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

    springtask 的使用方法和 cron 表達(dá)式解析

    這篇文章主要介紹了springtask 的使用方法和 cron 表達(dá)式解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    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事務(wù)源碼從注解到數(shù)據(jù)庫的全解析

    SpringBoot事務(wù)源碼從注解到數(shù)據(jù)庫的全解析

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

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

    在Windows上設(shè)置JAVA_HOME環(huán)境變量,以便管理和使用JDK,同時對開發(fā)工具和應(yīng)用至關(guān)重要,本文詳細(xì)介紹了如何設(shè)置JAVA_HOME環(huán)境變量,包括下載JDK、查找安裝路徑、設(shè)置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入門簡單實例,對于初學(xué)Android的朋友有一定的借鑒價值,需要的朋友可以參考下
    2014-08-08

最新評論

渑池县| 汉沽区| 九龙城区| 克拉玛依市| 八宿县| 安多县| 合作市| 安多县| 南投县| 买车| 广东省| 逊克县| 防城港市| 邵东县| 城步| 六安市| 长治县| 乳山市| 海兴县| 贵溪市| 南漳县| 得荣县| 安顺市| 荃湾区| 甘谷县| 大连市| 临邑县| 建德市| 绥中县| 库车县| 恩平市| 德州市| 麻城市| 汽车| 安陆市| 达拉特旗| 泌阳县| 西吉县| 共和县| 南宫市| 商城县|