博客
关于我
SpringMVC
阅读量:597 次
发布时间:2019-03-11

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

SpringMVC开发指南

一、SpringMVC概述

SpringMVC 是一个基于MVC模式的、高效的JavaWeb开发框架。它不仅支持MVC(Model-View-Controller)模式,还能无缝集成Spring框架,提升开发效率。MVC模式的核心在于解耦业务逻辑、前端展示和数据处理,使系统结构更清晰。

MVC框架组成

  • Model(实体类):承接数据,作为数据层模块。
  • View(视图):定义展示页面,使用HTML或JSP。
  • Controller(控制器):根据请求处理业务逻辑,返回数据或 ModelAndView。

Controller在SpringMVC中的实现方案有三种:

  • 传统实现:基于Spring的UserController继承UserServlet。
  • Struts compatibiitity:支持Struts的UserAction。
  • Spring MVC:直接实现Controller接口或使用注解。

二、SpringMVC入门

SpringMVC基于Spring框架运行,核心是IOC/DI容器。启动项目前需要配置Spring环境。但是,SpringMVC是一个Spring模块,无需单独下载安装。

环境搭建

  • jar包导入:将以下Spring相关jar包引入项目依赖:

    • com.springsource.org.apache.commons.logging-1.1.1.jar
    • spring-beans-4.1.2.RELEASE.jar
    • spring-context-4.1.2.RELEASE.jar
    • spring-core-4.1.2.RELEASE.jar
    • spring-expression-4.1.2.RELEASE.jar
    • spring-aop-4.1.2.RELEASE.jar
    • spring-web-4.1.2.RELEASE.jar
    • spring-webmvc-4.1.2.RELEASE.jar
  • 配置文件

    • applicationContext.xml:文件路径类似classpath:applicationContext.xml
    • web.xml:配置SpringMVC的核心控制器。

三、开发实践

Controller实现

  • 接口实现:实现Controller接口,使用DispatcherServlet处理请求。
  • 注解支持:通过@Controller注解直接管理Bean,路径配置使用@RequestMapping
  • 注解全支持:启用<mvc:annotation-driven />,扫描包内所有Controller。

视图解析

  • 默认视图解析器配置路径为/WEB-INF/jsps/

  • 静态资源映射:所有资源文件自动映射到/static目录。

JSON数据返回

  • JSON格式:返回标准JSON数据,比如{"name":"张三", "age":30}
  • 乱码处理:确保返回JSON数据使用UTF-8编码。
  • 日期格式化:使用@JsonFormat@DateTimeFormat注解处理日期格式。

参数接收

  • 模型参数:使用@RequestParam接收前台参数,支持默认值。
  • 对象绑定:将前台参数绑定到Java对象,实现动态数据处理。
  • 路径参数:使用@PathVariable接收URL参数。

四、数据处理

数据传递

  • ModelAndView模型:通过ModelAndView返回数据和视图路径。
  • request方法:通过HttpServletRequestHttpServletResponse传递数据。
  • 返回类型:返回POJO对象,确保序列化过程正确。

请求转换

  • 转发:使用forward方法转入新URL。
  • 重定向:通过redirect方法实现永久跳转。

文件处理

  • 文件上传:使用MultipartFile接收文件附件,注意文件大小限制。
  • 文件下载:通过Response Salvage实现文件下载,设置文件名和 MIME 类型。

五、拦截器机制

  • 拦截器创建:实现HandlerInterceptor接口,覆盖生命周期方法。
  • 拦截器配置

拦截器适用于日志记录、权限验证、数据过滤等场景。

六、工作流程说明

  • 请求处理:客户端请求提交至DispatcherServlet
  • 控制器查询DispatcherServlet定位处理请求的Controller
  • 业务处理:Controller执行业务逻辑,返回ModelAndView
  • 视图渲染DispatcherServlet解析ModelAndView,返回最终响应。
  • 转载地址:http://mystz.baihongyu.com/

    你可能感兴趣的文章
    nuget.org 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
    查看>>
    Nuget~管理自己的包包
    查看>>
    NuGet学习笔记001---了解使用NuGet给net快速获取引用
    查看>>
    nullnullHuge Pages
    查看>>
    NullPointerException Cannot invoke setSkipOutputConversion(boolean) because functionToInvoke is null
    查看>>
    Numix Core 开源项目教程
    查看>>
    NumPy 或 Pandas:将数组类型保持为整数,同时具有 NaN 值
    查看>>
    numpy 或 scipy 有哪些可能的计算可以返回 NaN?
    查看>>
    numpy 数组 dtype 在 Windows 10 64 位机器中默认为 int32
    查看>>
    numpy 数组与矩阵的乘法理解
    查看>>
    NumPy 数组拼接方法-ChatGPT4o作答
    查看>>
    numpy 用法
    查看>>
    Numpy 科学计算库详解
    查看>>
    Numpy.fft.fft和numpy.fft.fftfreq有什么不同
    查看>>
    Numpy.ndarray对象不可调用
    查看>>
    Numpy如何使用np.umprod重写range函数中i的python
    查看>>
    numpy数组替换其中的值(如1替换为255)
    查看>>
    numpy数组索引-ChatGPT4o作答
    查看>>
    numpy转PIL 报错TypeError: Cannot handle this data type
    查看>>
    NutzCodeInsight 2.0.7 发布,为 nutz-sqltpl 提供友好的 ide 支持
    查看>>