在MVC层次结构中,SpringMVC是一个集合了View、Model和Controller层的框架。之前工作的单位中使用的SSH框架组合,Struct负责Controller,负责控制前台Http请求的接收、转发、过滤等,Spring负责后台类的创建注入等管理,Hibernate负责数据持久化。而现在,SpringMVC接管了Struct和Spring的工作,Hibernate的工作也可以由mybatis来接收,当然这是另外的话题了。
为工程添加上springMVC框架的方法是,写在web.xml中。
代码1 <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:spring/11.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>
在SpringMVC中,View是一些模板文件,扩展名为vm,此类文件和传统html、css文件无任何区别,所有前端代码均可有效运行。vm文件的springmvc配置如下,很容易根据配置看出它的意义所在。
代码2 <bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer"> <property name="resourceLoaderPath"> <value>/WEB-INF/views/,/WEB-INF/test/,/WEB-INF/view/test/</value> </property> <property name="configLocation"> <value>classpath:velocity.properties</value> </property> </bean> <bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"> <property name="toolboxConfigLocation" value="/WEB-INF/test1.xml" /> <property name="suffix" value=".vm" /> <property name="contentType" value="text/html;charset=UTF-8" /> </bean>
前后端的交互是通过在vm中调用Controller中的方法来进行的,可以通过注解@RequestMapping为每一个Controller及其内部的方法指定一个路径,那么vm中的请求就是两者路径的拼接。
代码3 //类的注解 @Controller @RequestMapping("/t/mv") public class UserMobileVerifyController //方法注解,GET方法(restful风格) @RequestMapping(value = "/m", method=RequestMethod.GET) @ResponseBody public boolean v(HttpServletRequest request, Model model){ //方法注解,POST方法(restful风格) @RequestMapping(value = "/l", method=RequestMethod.POST) @ResponseBody public String s(@RequestBody LoginCodeReqBean loginCodeReqBean, Model model){
如果请求上图的v,那么就使用“ip:port/t/mv/m”,同理,如果请求sendLogincode,那么就使用“ip:port/t/mv/l”。
因为上面用到了注解,所以当然要在配置文件里加上(需要解释一下@Responsebody这个注解,如果加上了,那么返回结果所见即所得,即返回的是1,前端拿到的也就是1;而去掉这个注解,这个方法就是在控制跳转了,譬如返回的是404,那么前端会跳转到404.vm【这部分的原理是在上面的vm配置里面】。在没有注解的情况下,得到结果的方法是将数据写在model中,譬如:model.addAttribute("v",2),那么在前端vm中在script文件中“$!v”即可得到2的这个结果):
代码4 //简洁,但不够灵活 <mvc:annotation-driven /> //等同于上句话,控制的更加精细 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" /> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter" > <property name="supportedMediaTypes"> <list> <value>application/json;charset=UTF-8</value> <value>text/json;charset=UTF-8</value> </list> </property> </bean> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/> </list> </property> </bean>
需要解释下的是 messageConverters的配置,如果注意代码3中的s方法就可以看到,参数里面有个类LoginCodeReqBean,但其实前台传入的只是一个json字符串,是messageConverters配置的转换类将json字符串转换为了类LoginCodeReqBean。可以看到messageConverters是个list,所以可以配置多个转换类,一种转换失败则会尝试使用下一个。
相关推荐
Spring、SpringMVC和Mybatis是Java开发中最常用的三大开源框架,它们的整合使用,通常被称为SSM框架。这个框架组合提供了完整的后端服务解决方案,包括依赖注入(DI)、面向切面编程(AOP)、模型-视图-控制器(MVC...
SpringMVC是Spring框架的一个模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。这个“springMVC练手代码”压缩包包含的资源可以帮助初学者或开发者深入了解并实践SpringMVC的基本操作和核心概念。 首先...
SpringMVC是一款强大的Java web开发框架,用于构建高效、可维护的Web应用程序。在这个"SpringMVC demo 完整源码实例下载"中,我们能够深入理解并学习SpringMVC的核心概念和实际应用。 首先,SpringMVC是Spring框架...
【狂神SpringMVC配套课程代码】一共8个模块,大概可以看我的博客,都是自己学配套整理的 欢迎大家作为学习SpringMVC的参考!! 下面附上狂神B站课程网址,和我的博客笔记(共8章) 狂神老师B站课程:...
SpringMVC是一个强大的Java Web开发框架,由Spring社区开发,它是Spring生态系统的重要组成部分,主要用于构建后端服务。SpringMVC以其灵活的配置、高度模块化和优秀的性能深受开发者喜爱。在这个"springmvc实战项目...
### SpringMVC基础知识详解 #### 一、SpringMVC简介 **SpringMVC**是Spring框架中的一个重要组成部分,主要用于Web应用程序的开发。它遵循MVC(Model-View-Controller)设计模式,帮助开发者构建清晰、可维护的Web...
SpringMVC 是一款基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的重要组成部分,主要用于构建 MVC(Model-View-Controller)模式的 Web 应用程序。本教程将深入探讨 SpringMVC 的核心概念、配置以及实际应用。...
SpringMVC和SQLiteJDBC是两个在Java开发中常见的组件,它们分别用于构建Web应用程序和服务端数据存储。这里我们详细探讨这两个技术以及它们如何协同工作。 **SpringMVC** SpringMVC是Spring框架的一个模块,专门...
本教程将详细阐述如何使用四个关键组件——Maven、SpringMVC、MyBatis和Log4j——来搭建一个强大的Web应用框架,旨在提高开发效率并优化项目管理。 **Maven** 是一个流行的项目管理和综合工具,它通过统一的构建...
【SpringMVC】 SpringMVC是Spring框架的一部分,它是一个用于构建Web应用程序的轻量级、模型-视图-控制器(MVC)架构。SpringMVC通过将业务逻辑、控制逻辑和显示逻辑分离,提高了代码的可维护性和可测试性。在...
SpringMVC、Hibernate和Spring是Java开发中三大核心框架,它们各自负责应用程序的不同层面:SpringMVC用于处理HTTP请求和响应,Hibernate则是持久层框架,负责数据库操作,而Spring作为全能容器,提供依赖注入和面向...
SpringMVC和MyBatis是Java Web开发中的两个核心框架,它们在构建高效、模块化的应用程序方面发挥着重要作用。SpringMVC是Spring框架的一部分,主要负责处理HTTP请求和响应,而MyBatis则是一个轻量级的持久层框架,...
**SpringMVC 入门小程序详解** SpringMVC是Spring框架的一个重要模块,它是一个用于构建Web应用程序的轻量级、模型-视图-控制器(MVC)框架。本入门程序旨在帮助初学者理解并掌握SpringMVC的基本概念和工作流程,...
SpringMVC和Mybatis是Java开发中非常流行的两个框架,它们在企业级Web应用开发中起着关键作用。SpringMVC作为Spring框架的一部分,主要负责处理HTTP请求和响应,而Mybatis则是一个轻量级的持久层框架,专注于数据库...
SpringMVC 拦截器项目是一个典型的 Web 应用开发示例,它利用 SpringMVC 框架中的拦截器(Interceptor)机制来实现特定的功能,如权限控制、日志记录、性能统计等。SpringMVC 是 Spring 框架的一部分,专为构建基于 ...
《尚硅谷SpringMVC部分全套教学文档笔记》涵盖了SpringMVC框架的核心概念和技术,通过一系列章节深入浅出地讲解了SpringMVC的各个方面。以下是基于这些文档内容的详细知识点总结: 1. **SpringMVC概述与HelloWorld*...
Java基于Spring+SpringMVC+MyBatis实现的学生信息管理系统源码,SSM+Vue的学生管理系统。 Java基于Spring+SpringMVC+MyBatis实现的学生信息管理系统源码,SSM+Vue的学生管理系统。 Java基于Spring+SpringMVC+...
SpringMVC是Spring框架的一部分,专门用于构建Web应用程序的模型-视图-控制器(MVC)架构。在本文中,我们将深入探讨SpringMVC 5.0版本的关键特性、使用方法以及它如何增强Web开发的效率。 首先,SpringMVC 5.0是...
在本项目中,我们主要探讨的是如何将SpringMVC、MyBatis、PostgreSQL数据库以及Maven构建工具进行有效的整合,以实现一个高效且模块化的Web应用开发环境。以下是关于这些技术及其整合的关键知识点的详细说明: **1....