Spring MVC应用的开发步骤

本文介绍了Spring MVC应用的开发步骤,包括在web.xml中配置核心控制器DispatcherServlet处理HTTP请求,根据请求方式定义视图页面或编写提交请求脚本,定义处理请求的控制器类,还说明了配置控制器类的方法,以及处理请求的底层机制和两种确定控制器实例的方式。

Spring MVC应用的开发步骤

下面简单介绍Spring MVC应用的开发步骤。
① 在web.xml文件中配置核心控制器DispatcherServlet处理所有的HTTP请求。
由于Web应用是基于请求/响应架构的,所以不管使用哪种MVC Web框架,都需要在web.xml文件中配置该框架的核心Servlet或Filter,这样才可以让该框架介入Web应用中。
例如,开发Spring MVC应用的第1步就是在web.xml文件中增加如下配置片段:
在这里插入图片描述

② 如果需要以POST方式提交请求,则定义包含表单数据的视图页面,将该表单的action属性指定为请求提交的地址。
如果只是以GET方式发送请求,则无须经过这一步,只需定义一个超链接,将该链接的href属性指定为请求提交的地址即可。

如果以异步方式提交请求

(比如jQuery、Angular、Vue等),则需要使用JS(或TS)编写提交请求的脚本。
③ 定义处理请求的控制器类,该类通常需要使用@Controller注解修饰。

在Spring 2.5之前,Spring MVC要求Controller组件必须实现Controller接口,并实现该接口中的handleRequest(HttpServletRequest,HttpServletResponse)方法来处理请求,那时候的Spring MVC框架大致相当于Struts 1的层次,其设计糟糕到不忍卒视,因此本书不打算介绍那种方式。
这一步也是所有MVC框架中必不可少的,因为这个控制器类就是MVC中的C,它负责调用后端Service组件的方法来处理HTTP请求

Controller并不能直接接收HTTP请求啊,它怎么能够处理该请求呢?MVC框架的底层机制是,当核心控制器(DispatcherServlet)接收到HTTP请求后,通常会对该请求进行简单的预处理,例如解析、封装参数等,然后通过反射来创建Controller实例,并调用Controller的指定方法(由@RequestMapping注解或其变体修饰的方法)来处理请求。
这里又产生了一个问题:当DispatcherServlet拦截HTTP请求后,它如何知道创建哪个控制器的实例呢?有两种解决方法。

利用XML配置文件

。比如Struts 2或Spring 2.5之前的Spring MVC框架,都要求在XML文件中配置/abc请求对应于调用哪个类的哪个方法,这样就可以让MVC框架知道要创建哪个控制器的实例了。
➢ 利用注解。现在的Spring MVC只要使用@Controller修饰控制器类,并使用@ReRequestMapping或其变体修饰处理方法,即可让MVC框架知道创建哪个控制器的实例,并调用哪个方法来处理用户请求。
根据上面的介绍不难发现,在Spring MVC框架中,控制器实际上由两个部分组成,即:拦截所有HTTP请求和处理请求的通用代码都由核心控制器DispatcherServlet完成,而实际的业务控制(诸如调用Service组件的方法、返回处理结果等)则由自定义的Controller处理——因此,Controller也被称为业务控制器。

配置控制器类

,也就是配置某个请求由哪个类的哪个方法负责处理。
现在的Spring MVC只要使用@Controller修饰控制器类,并使用@RequestMapping注解或其变体修饰处理方法即可。例如如下代码片段:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr Robot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值