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

空指針HttpSession異常之SpringBoot集成WebSocket的方法

 更新時(shí)間:2025年01月15日 10:33:47   作者:續(xù)寫(xiě)少年  
文章介紹了在Spring?Boot中集成WebSocket時(shí)遇到的HttpSession為空的問(wèn)題,并探討了三種解決方法,方法一涉及域名配置,方法二通過(guò)監(jiān)聽(tīng)創(chuàng)建Session,而方法三是從request中獲取session并存入數(shù)據(jù),感興趣的朋友一起看看吧

異??赡苄裕?/h2>
  • 404 : 請(qǐng)檢查攔截器是否將請(qǐng)求攔截
  • WebSocket握手期間HttpSession為空

HttpSession為空

方法一 :

網(wǎng)上參考大量的文檔,有說(shuō)跟前端請(qǐng)求域名有關(guān)系的。 反正對(duì)我來(lái)說(shuō),沒(méi)啥用無(wú)法連接。

需使用 localhost,不能使用127.0.01 

    var host = window.location.host;
    var url = "ws://"+host+"/chatRoom/null";

方法二 :可以解決

添加監(jiān)聽(tīng)配置 ,采用spring boot自動(dòng)裝配的方式,創(chuàng)建一個(gè)Session。

因?yàn)槲倚枰嫒霐?shù)據(jù),所以對(duì)我而言,不太ok。

其他原因看:WebSocket獲取httpSession空指針異常的解決辦法

http://www.dbjr.com.cn/program/334258vi3.htm

@WebListener
public class RequestListener implements ServletRequestListener {
    @Override
    public void requestDestroyed(ServletRequestEvent servletRequestEvent) {
    }
    @Override
    public void requestInitialized(ServletRequestEvent servletRequestEvent) {
        ((HttpServletRequest)servletRequestEvent.getServletRequest()).getSession();
    }
}

雖然有Session了,還是連接不上!

方法三 :成功解決

靈感 : 方法2通過(guò)監(jiān)聽(tīng)創(chuàng)建Session。監(jiān)聽(tīng)最牛逼的不應(yīng)該是攔截器或者過(guò)濾器。

可以從攔截器中獲取到我需要的數(shù)據(jù),在request里面配置,應(yīng)該更好。從request中g(shù)etSession,存點(diǎn)東西進(jìn)去試試。

@WebFilter(urlPatterns = "/*")
public class ArticleFilter implements Filter {
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{
        long start = System.currentTimeMillis();
        // 存入session
        System.out.println("存入session");
        ((HttpServletRequest) request).getSession().setAttribute("name", 123);
        // 封裝請(qǐng)求信息存儲(chǔ)到請(qǐng)求上下文
        chain.doFilter(request, response);
        long end = System.currentTimeMillis();
        System.out.println("請(qǐng)求耗時(shí):" + (end - start) + "ms");
    }
}

到此這篇關(guān)于空指針:HttpSession異常,SpringBoot集成WebSocket的文章就介紹到這了,更多相關(guān)SpringBoot集成WebSocket內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringCloud整合Consul的實(shí)現(xiàn)

    SpringCloud整合Consul的實(shí)現(xiàn)

    這篇文章主要介紹了SpringCloud整合Consul的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Kotlin this詳解及實(shí)例

    Kotlin this詳解及實(shí)例

    這篇文章主要介紹了Kotlin this詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • java雙色球機(jī)選法程序解析

    java雙色球機(jī)選法程序解析

    這篇文章主要為大家詳細(xì)解析了java雙色球機(jī)選法程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • java序列化的種類和使用場(chǎng)景詳解

    java序列化的種類和使用場(chǎng)景詳解

    本文詳細(xì)介紹了序列化的概念、Java內(nèi)置序列化、自定義序列化、第三方序列化框架(如Kryo、Protobuf)以及在分布式系統(tǒng)和RPC框架中的應(yīng)用,通過(guò)比較不同序列化方式的優(yōu)缺點(diǎn),指導(dǎo)開(kāi)發(fā)者選擇合適的序列化方案,以確保系統(tǒng)的性能、安全性和可維護(hù)性
    2025-01-01
  • 解決springboot沒(méi)有啟動(dòng)標(biāo)識(shí),啟動(dòng)類也沒(méi)有啟動(dòng)標(biāo)識(shí)的問(wèn)題

    解決springboot沒(méi)有啟動(dòng)標(biāo)識(shí),啟動(dòng)類也沒(méi)有啟動(dòng)標(biāo)識(shí)的問(wèn)題

    這篇文章主要介紹了解決springboot沒(méi)有啟動(dòng)標(biāo)識(shí),啟動(dòng)類也沒(méi)有啟動(dòng)標(biāo)識(shí)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • mybatis模糊查詢、分頁(yè)和別名配置的方法

    mybatis模糊查詢、分頁(yè)和別名配置的方法

    這篇文章主要介紹了mybatis模糊查詢、分頁(yè)和別名配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java程序控制邏輯—流程控制

    Java程序控制邏輯—流程控制

    這篇文章主要介紹了Java程序的控制邏輯流程控制,流程控制中最基本的就是條件執(zhí)行,也就是說(shuō),一些操作只能在某些條件滿足的情況下才執(zhí)行,在一些條件下執(zhí)行某種操作,在另外一些條件下執(zhí)行另外的操作,需要的朋友可以參考一下
    2022-01-01
  • Springboot整合logback多節(jié)點(diǎn)日志文件加端口號(hào)區(qū)分的操作方法

    Springboot整合logback多節(jié)點(diǎn)日志文件加端口號(hào)區(qū)分的操作方法

    這篇文章主要介紹了Springboot整合logback多節(jié)點(diǎn)日志文件加端口號(hào)區(qū)分的操作方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • Springboot 使用maven release插件執(zhí)行版本管理及打包操作

    Springboot 使用maven release插件執(zhí)行版本管理及打包操作

    maven-release-plugin 可用于構(gòu)建release版本項(xiàng)目,實(shí)現(xiàn)自動(dòng)打tag、遞增版本號(hào)、分發(fā)release版本jar包至倉(cāng)庫(kù),接下來(lái)通過(guò)本文給大家介紹Springboot 使用maven release插件執(zhí)行版本管理及打包操作,需要的朋友可以參考下
    2022-03-03
  • 淺析SpringBoot中使用thymeleaf找不到.HTML文件的原因

    淺析SpringBoot中使用thymeleaf找不到.HTML文件的原因

    這篇文章主要介紹了SpringBoot中使用thymeleaf找不到.HTML文件的原因分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評(píng)論