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

Spring MVC 快速入門:從零構建 Hello World 應用

     編輯:Java 相關知識

核心概念

請求 /hello.do → DispatcherServlet → HelloController → hello.jsp 渲染 → 瀏覽器。JSP 僅作視圖模板,僅含 HTML、JSTL <c:forEach>、<c:if>,無 Java 代碼。

web.xml 關鍵配置

<web-app version="2.4" ...>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/database.xml /WEB-INF/applicationContext.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <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>*.do</url-pattern></filter-mapping>
  <servlet>
    <servlet-name>ideawu</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping><servlet-name>ideawu</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>
  <jsp-config>...</jsp-config>
</web-app>
  • DispatcherServlet 名為 ideawu,對應配置文件 ideawu-servlet.xml。
  • 所有 *.do 請求進入 Spring MVC。
  • 編碼過濾器解決中文亂碼,建議全專案統一 UTF-8。

ideawu-servlet.xml

<beans>
  <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
  </bean>
  <bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
      <props><prop key="/hello.do">helloController</prop></props>
    </property>
  </bean>
  <bean id="helloController" class="com.ideawu.HelloController"/>
</beans>
  • InternalResourceViewResolver:邏輯視圖名 hello → /WEB-INF/jsp/hello.jsp。
  • SimpleUrlHandlerMapping:URL 到 Controller 的映射。

applicationContext.xml / database.xml / jdbc.properties

<!-- applicationContext.xml -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations"><list><value>/WEB-INF/jdbc.properties</value></list></property>
</bean>

<!-- database.xml (註釋掉的範例) -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  <property name="driverClassName" value="${jdbc.driverClassName}"/>
  <property name="url" value="${jdbc.url}"/>
  <property name="username" value="${jdbc.username}"/>
  <property name="password" value="${jdbc.password}"/>
</bean>

<!-- jdbc.properties -->
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8
jdbc.username=test
jdbc.password=12345

Controller 與 View

// HelloController.java
package com.ideawu;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.*;

public class HelloController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
        req.setAttribute("hello_1", "你好啊,Spring!");
        req.setAttribute("hello_2", "Hello World!");
        return new ModelAndView("hello"); // 邏輯視圖名
    }
}
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>
<html><head><title>Hello World!</title></head><body>
  <h2>${hello_1}</h2>
  <h2>${hello_2}</h2>
</body></html>

部署驗證

解壓至 Tomcat webapps,訪問 https://localhost:8080/spring/hello.do 即見輸出。

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