首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Spring MVC 根路徑無法映射到登入頁解決方案

     編輯:程式設計綜合問答

Spring MVC 訪問 localhost:8080/ 自動導向登入頁

使用 Maven Jetty 外掛啟動專案時,訪問根路徑 https://localhost:8080/ 出現 No mapping found for HTTP request with URI [/] in DispatcherServlet 錯誤,無法自動跳轉到登入頁。

問題原因

DispatcherServlet 沒有對應根路徑 / 的處理器映射,且預設歡迎頁面機制未生效。

解決方案:配置 mvc:default-servlet-handler

在 Spring MVC 配置檔中新增:

<!-- 將沒有 mapping 的 URL 交給預設的 Servlet 處理 -->
<mvc:default-servlet-handler/>

配置 web.xml 歡迎頁面

<welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
    <welcome-file>login.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

完整運作流程

  1. 使用者訪問 https://localhost:8080/
  2. DispatcherServlet 發現無對應映射
  3. mvc:default-servlet-handler 將請求轉交給容器預設 Servlet
  4. 預設 Servlet 根據 welcome-file-list 找到 login.jsp
  5. 自動導向 https://localhost:8080/login.jsp

替代方案:Controller 導向

@Controller
public class HomeController {
    @RequestMapping("/")
    public String home() {
        return "redirect:/login"; // 或 return "login";
    }
}

配置說明

  • mvc:default-servlet-handler:啟用靜態資源處理與預設 Servlet 轉發
  • welcome-file-list:Servlet 容器層面的預設頁面機制
  • 兩者結合才能完美解決根路徑導向問題

這是 Spring MVC 專案部署時常見的配置問題,正確設定後即可實現根路徑自動跳轉登入頁。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved