当前位置: 首页 > news >正文

做炭化料的网站肃州区建设局网站

做炭化料的网站,肃州区建设局网站,坪山医院网站建设,html 门户网站模板Spring MVC 入门:构建 Web 应用的核心框架 一个基于 Spring 框架的强大 Web 开发模块。作为 Java 企业开发的热门选择,Spring MVC 以其灵活性、模块化和与 Spring 生态的无缝集成,深受开发者喜爱。本文将带你从零开始,基于 XML 配…

Spring MVC 入门:构建 Web 应用的核心框架

一个基于 Spring 框架的强大 Web 开发模块。作为 Java 企业开发的热门选择,Spring MVC 以其灵活性、模块化和与 Spring 生态的无缝集成,深受开发者喜爱。本文将带你从零开始,基于 XML 配置方式搭建一个简单的 Spring MVC 项目,帮助初学者快速上手,同时为有经验的开发者提供复习和进阶建议。

Spring MVC 基于 MVC(Model-View-Controller)设计模式,适合构建 RESTful API 或传统的 Web 应用。本文基于 Spring 5.x(兼容 Spring 6),使用 Maven 构建,涵盖控制器、视图解析和静态资源处理等核心概念。让我们一步步实现一个简单的用户查询页面!

前置准备

开始之前,请确保开发环境准备好:

  • JDK:推荐 JDK 8 或更高(本文使用 JDK 17 测试通过)。
  • Maven:用于依赖管理,确保配置好环境变量。
  • IDE:IntelliJ IDEA 或 Eclipse,方便代码调试。
  • Web 服务器:内置 Tomcat 或 Jetty(本文用 Tomcat 9)。
  • 项目结构:创建一个 Maven Web 项目,目录如下:
    src
    ├── main
    │   ├── java
    │   │   └── com.example
    │   │       ├── controller
    │   │       ├── model
    │   │       └── service
    │   ├── resources
    │   │   └── applicationContext.xml  // Spring 配置文件
    │   └── webapp
    │       ├── WEB-INF
    │       │   ├── views              // JSP 视图
    │       │   └── web.xml           // Servlet 配置
    │       └── static                // 静态资源(CSS, JS)
    └── test└── java
    

在 IDE 中创建 Maven Web 项目(archetype: maven-archetype-webapp),然后按以下步骤配置。

步骤 1: 引入 Maven 依赖

Spring MVC 需要核心的 spring-webmvc 模块,以及 Servlet API 支持。我们还引入 spring-context 确保 IoC 容器功能。以下是 pom.xml 配置:

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>spring-mvc-demo</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><dependencies><!-- Spring MVC 核心依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.39</version></dependency><!-- Spring 核心依赖:IoC 容器 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.39</version></dependency><!-- Servlet API:Web 应用必需 --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency><!-- JSP 支持:视图渲染 --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency></dependencies><build><plugins><!-- Maven Tomcat 插件:运行 Web 应用 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8080</port><path>/</path></configuration></plugin></plugins></build>
</project>

说明

  • spring-webmvc:包含 DispatcherServlet、控制器等核心组件。
  • javax.servlet-api:Servlet 规范,设为 provided 避免打包到 WAR。
  • jstl:支持 JSP 页面动态渲染。
  • Tomcat 插件:便于本地运行,执行 mvn tomcat7:run 启动。
  • 版本提示:Spring 6.x 需 JDK 17+,如用老项目,保持 5.x。

步骤 2: 配置 Web.xml 和 Spring MVC

Spring MVC 的核心是 DispatcherServlet,它拦截请求并分发到控制器。我们需要配置 web.xml 和 Spring MVC 配置文件。

配置 web.xml

src/main/webapp/WEB-INF/web.xml 中配置 DispatcherServlet:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!-- 配置 DispatcherServlet --><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/</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>

要点

  • DispatcherServlet:Spring MVC 前端控制器,处理所有请求。
  • contextConfigLocation:指定 Spring 配置文件路径。
  • CharacterEncodingFilter:解决 POST 请求中文乱码问题。

配置 Spring MVC(applicationContext.xml)

src/main/resources/applicationContext.xml 中配置 MVC 组件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 扫描控制器包 --><context:component-scan base-package="com.example.controller"/><!-- 启用 MVC 注解支持 --><mvc:annotation-driven/><!-- 视图解析器:JSP --><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/"/><property name="suffix" value=".jsp"/></bean><!-- 静态资源处理 --><mvc:resources mapping="/static/**" location="/static/"/>
</beans>

解析

  • <context:component-scan>:扫描 @Controller 注解的类。
  • <mvc:annotation-driven>:启用 @RequestMapping 等注解。
  • InternalResourceViewResolver:将逻辑视图名映射为 JSP 文件(如 user 映射为 /WEB-INF/views/user.jsp)。
  • <mvc:resources>:允许访问 /static/ 下的 CSS、JS 等。

步骤 3: 创建模型和控制器

模型类

定义简单的 User 模型(com.example.model.User):

package com.example.model;public class User {private String name;private int age;public User(String name, int age) {this.name = name;this.age = age;}// Getters and Setterspublic String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

控制器类

创建 UserControllercom.example.controller.UserController)处理请求:

package com.example.controller;import com.example.model.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;@Controller
@RequestMapping("/user")
public class UserController {@RequestMapping(value = "/list", method = RequestMethod.GET)public String listUsers(Model model) {// 模拟数据User user = new User("Alice", 25);model.addAttribute("user", user);return "user"; // 映射到 /WEB-INF/views/user.jsp}
}

说明

  • @Controller:标记为 Spring MVC 控制器。
  • @RequestMapping:映射 URL(如 /user/list)。
  • Model:传递数据到视图。

步骤 4: 创建 JSP 视图

src/main/webapp/WEB-INF/views/user.jsp 创建视图:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>User List</title><link rel="stylesheet" href="/static/css/style.css"/>
</head>
<body><h2>User Information</h2><p>Name: ${user.name}</p><p>Age: ${user.age}</p>
</body>
</html>

静态资源(可选)

src/main/webapp/static/css/style.css 添加样式:

body {font-family: Arial, sans-serif;margin: 20px;
}
h2 {color: #333;
}

步骤 5: 运行和测试

  1. 执行 mvn clean install 编译项目。
  2. 运行 mvn tomcat7:run 启动 Tomcat。
  3. 访问 http://localhost:8080/user/list,应显示:
    User Information
    Name: Alice
    Age: 25
    

调试技巧

  • 404 错误:检查 web.xml 的 URL 映射或控制器路径。
  • JSP 不渲染:确认视图解析器路径和 JSP 文件位置。
  • 日志:添加 log4j 依赖查看详细日志。

进阶与最佳实践

  • 注解优先:现代项目用 @RestController 替代 JSP,适合 REST API。
  • Spring Boot 简化:用 @SpringBootApplication 自动配置,省去 XML。
  • 拦截器:添加 HandlerInterceptor 处理认证、日志等。
  • 异常处理:用 @ControllerAdvice 统一处理异常。
  • 资源推荐:Spring 官网、书籍《Spring in Action》。实践多做 RESTful 示例。

总结

通过这个 Spring MVC 示例,你学会了配置 DispatcherServlet、控制器、视图解析器,并实现了一个简单的 Web 页面。XML 配置虽然稍显繁琐,但能帮助你理解 Spring MVC 的核心机制。

http://www.dtcms.com/a/413485.html

相关文章:

  • 烟台网站制作工具做网站常用工具
  • 广州企业网站设计制作网站建设费怎么入账
  • 怎么做博客网站工业设计专业世界排名
  • 店招搜索栏在那个网站上可以做福州做网站公司排名
  • 网站栏目text-indent:2em wordpress
  • 开发网站的财务分析中山古镇做网站
  • 编程的网站都有哪些随手app广告怎么关闭
  • 做企业网站要注意什么广西北海联友建设网站管理
  • 用jsp做网站一般会用到什么品牌战略咨询
  • phpcms 安装官网的教程更换域名后网站图片还是无法显示网站开发用什么软件编程
  • 无锡企业网站之梦系统怎么修改网站标头图片
  • 哪个网站论文多高端网站制作
  • 5188站长平台电话交换机ip地址
  • 网站建设网云龙网站开发
  • 北京企业vi设计公司快照首页排名优化服务
  • 1网站建设的目标是什么意思好的网站建设网站
  • 在线做的网站盘州电子商务网站建设
  • 网站制作简介网站名称图标如何做才能显示
  • 做公司网站需要wordpress如何导入
  • 株洲网站建设制作电子商务网站总体规划的内容
  • 湖南3合1网站建设价格广告商网站建设
  • 服务器怎么做网站电子商务网站建设利益分析
  • 模板网站建设教程视频教程网站建设没有业务怎么办
  • 不用源码做网站网页制作用什么工具
  • 上饶市住房和城乡建设部网站seo 怎么建设网站外链
  • 淘宝客 网站 建站店铺设计方案
  • 韶关市建设与房地产信息网站学做美食去哪个网站好
  • 做网站延期交付了做企业网站要注意什么
  • 网站开发 360浏览器seopeixun com cn
  • 织梦做网站需要钱吗wordpress 加广告位