開始以為是 web.xml 中 servlet-mapping 的 url-pattern 配置有問題,修改了沒用。后來索性刪除整個 web.xml 文件,改用注解配置 Servlet,但還是沒用。doGet 方法總是被調用兩次。網絡搜索看到有人也遇到此問題,大多是講 url-pattern 配置的問題,最終在這里找到答案: https://stackoverflow.com/questions/322702/servlet-being-called-twice
其中一條回答說是因為 Chrome 瀏覽器中安裝的 html 驗證插件導致再次請求 servlet。於是我在 Edge 瀏覽器里測試,發現 doGet 方法只被調用一次,證明了 chrome 瀏覽器的問題,經過逐個排查,發現是安裝的一個用於下載音視頻的插件 Total Downloader Pro - videos, mp3, photos... 導致的問題。