博客
关于我
Java的Web应用框架Spring MVC开发的详细步骤
阅读量:473 次
发布时间:2019-03-06

本文共 3711 字,大约阅读时间需要 12 分钟。

以下是优化后的内容:


Spring MVC环境搭建指南

Spring MVC 是一个基于 Java 的 Web 应用框架,适合构建灵活且易于维护的 Web 应用程序。本文将详细指导如何在开发环境中搭建 Spring MVC 项目。

一、环境搭建

1. 创建 Maven 项目

  • 打开你喜欢的 IDE(如 IntelliJ IDEA 或 Eclipse),创建一个新的 Maven 项目。

  • pom.xml 文件中添加 Spring MVC 相关依赖。主要包括:

    • spring-webmvc
    • javax.servlet-api
    • 等其他必要的依赖。
    org.springframework
    spring-webmvc
    5.3.23
    javax.servlet
    javax.servlet-api
    3.1.0
  • 添加 Tomcat 或其他 Web 服务器的依赖(如果需要)。

  • 2. 配置 web.xml 或使用 Java 配置

    方法一:传统 web.xml 配置

  • 创建 WEB-INF/web.xml 文件。

  • 配置 DispatcherServlet,这是 Spring MVC 的核心组件,负责接收和分发 HTTP 请求。

    dispatcher
    org.springframework.web.servlet.DispatcherServlet
    contextConfigLocation
    /WEB-INF/spring-mvc.xml
    1
    dispatcher
    /
  • 方法二:Java 配置(Servlet 3.0+)

  • 创建一个实现 WebApplicationInitializer 接口的类,例如 WebInitializer

  • 在类中使用 AnnotationConfigWebApplicationContext 加载 Spring 配置类,并注册 DispatcherServlet

    import org.springframework.context.annotation.AnnotationConfigWebApplicationContext;
    import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
    public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class
    [] getRootConfigClasses() {
    return null;
    }
    @Override
    protected Class
    [] getServletConfigClasses() {
    return new Class
    [] { AppConfig.class };
    }
    @Override
    protected String[] getServletMappings() {
    return new String[] { "/" };
    }
    }
  • 3. 创建 Spring 配置文件

  • WEB-INF 目录下创建 spring-mvc.xml 文件。

  • 配置组件扫描,确保 Spring 能够找到你的控制器类。

  • 二、创建控制器

    1. 定义控制器类

  • 创建一个 Java 类,使用 @Controller 注解标记为 Spring MVC 控制器。

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    @Controller
    public class HelloController {
    @RequestMapping("/hello")
    public String sayHello() {
    return "hello";
    }
    }
  • 2. 处理请求参数

  • 使用 @RequestParam 注解接收请求参数。

    @RequestMapping("/add")
    public String addNumbers(@RequestParam("num1") int num1,
    @RequestParam("num2") int num2) {
    int result = num1 + num2;
    return "result";
    }
  • 使用路径变量。

    @RequestMapping("/user/{id}")
    public String getUserById(@PathVariable("id") int id) {
    return "user";
    }
  • 三、创建视图

    1. 选择视图技术

    Spring MVC 支持多种视图技术,如 JSP、Thymeleaf、FreeMarker 等。这里以 JSP 为例。

  • WEB-INF/views 目录下创建 hello.jsp 文件。

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    Hello Page

    Hello, Spring MVC!

  • 2. 配置视图解析器

  • spring-mvc.xml 中配置 InternalResourceViewResolver。

  • 或者在 Java 配置类中配置视图解析器。

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.view.InternalResourceViewResolver;
    @Configuration
    public class AppConfig {
    @Bean
    public InternalResourceViewResolver viewResolver() {
    InternalResourceViewResolver resolver = new InternalResourceViewResolver();
    resolver.setPrefix("/WEB-INF/views/");
    resolver.setSuffix(".jsp");
    return resolver;
    }
    }
  • 四、运行和测试

    1. 部署应用程序

  • 将项目部署到 Web 服务器(如 Tomcat、Jetty 等)。
  • 在 IDE 中配置服务器,添加项目到服务器。
  • 2. 测试应用程序

  • 启动 Web 服务器。
  • 在浏览器中输入 URL(如 http://localhost:8080/your-application-context-root/hello),访问应用程序。

  • 通过以上步骤,你可以成功搭建一个 Spring MVC 的 Web 应用程序,并通过控制器和视图实现功能开发。

    转载地址:http://hdzdz.baihongyu.com/

    你可能感兴趣的文章
    python 列表生成式
    查看>>
    Python 列表解析 大文件
    查看>>
    python 列表转字典方法
    查看>>
    Python 列表(List)概述-ChatGPT4o作答
    查看>>
    Python网络爬虫基础进阶到实战教程
    查看>>
    Python 初学者需要知道的四条建议
    查看>>
    Python 判断字符串是否包含子字符串
    查看>>
    python 判断当前时间是否为零点
    查看>>
    python 利用pandas读取本地中CSV文件的指定列 列名重命名 并保存回本地
    查看>>
    python 利用pyspark读取HDFS中CSV文件的指定列 列名重命名 并保存回HDFS
    查看>>
    python 利用pyttsx3文字转语音
    查看>>
    python 利用已有Ner模型进行数据清洗合并
    查看>>
    python 到大数据开发工程师_如何成为一个大数据开发工程师?
    查看>>
    python 加密解密(base64, AES)
    查看>>
    Python 包管理器和 Node.js
    查看>>
    Python 单词字母顺序不变且所有倒排
    查看>>
    python 启动提示IDLE's subprocess didn't make conne...
    查看>>
    python 命令接口_实现“[命令][操作][参数]”样式的命令行接口?
    查看>>
    Python 和 OpenCV.如何检测图像中的所有(填充)圆形/圆形对象?
    查看>>
    Python 和 RabbitMQ - 聆听来自多个渠道的消费事件的最佳方式?
    查看>>