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

SpringMVC 入門完整實戰:從零構建第一個 MVC 應用

     編輯:Java 綜合教學

什麼是 SpringMVC?

MVC 全稱 Model-View-Controller,旨在將數據、視圖、業務邏輯解耦。Spring MVC 是 Spring Framework 後續產出的 MVC 框架,運行依賴 Spring 核心 Jar 包。

核心設計原理:圍繞 DispatcherServlet

Spring MVC 請求處理流程核心是 DispatcherServlet,它負責將請求分發給特定的 Controller。簡化流程如下:

  1. 用戶發起請求
  2. DispatcherServlet 接收並委派給 HandlerMapping 尋找對應 Controller
  3. Controller 處理業務邏輯,返回 ModelAndView
  4. DispatcherServlet 交給 ViewResolver 解析視圖
  5. 渲染視圖並返回響應

手把手搭建第一個 SpringMVC 專案

1. 專案結構與依賴

將 Spring 相關 Jar 包放入 WEB-INF/lib 目錄。

2. 配置 web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app ... version="3.0">
    <display-name>SpringMVC</display-name>
    <servlet>
        <servlet-name>mySpring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>mySpring</servlet-name>
        <url-pattern>*.ms</url-pattern>
    </servlet-mapping>
    <!-- 編碼過濾器 -->
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

3. 配置 DispatcherServlet 專屬上下文:mySpring-servlet.xml

檔案命名規則:[servlet-name]-servlet.xml,置於 WEB-INF 下。

<beans ...>
    <!-- HandlerMapping & HandlerAdapter -->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
    <!-- Controller -->
    <bean name="/testSpring.ms" class="com.my.spring.TestSpring"/>
    <!-- ViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.InternalResourceView"/>
        <property name="prefix" value="/view/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

4. 編寫視圖頁面

welcome.jsp - 輸入表單:

<form action="testSpring.ms">
    input your words: <input type="text" name="words"/>
    <input type="submit" value="提交">
</form>

result.jsp - 顯示結果:

${myValue}

5. 實現 Controller

package com.my.spring;
public class TestSpring extends AbstractController {
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
        String value = request.getParameter("words");
        Map<String, String> model = new HashMap<>();
        model.put("myValue", value);
        return new ModelAndView("result", model);
    }
}

關鍵點:必須繼承 org.springframework.web.servlet.mvc.AbstractController 或實現 Controller 接口,切勿誤用 portlet 包下的同名類。

常見坑位與解決方案

  1. 找不到 HttpServlet:專案缺少 servlet-api.jar,加入即可。
  2. Tomcat 啟動失敗:檢查 web.xml 語法是否正確。
  3. Portlet 類無法解析:缺少 portlet 包,或將 import 改為 org.springframework.web.servlet.*。
  4. JSTL 標籤報錯:下載標準標籤庫 Jar 包。

參考資源

  • SpringMVC + MySQL 實戰案例
  • SpringMVC 入門指南
  • StackOverflow 相關討論
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved