千家信息网

SpringMVC有什么作用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇"SpringMVC有什么作用"除了程序员外大部分人都不太理解,今天小编为了让大家更加理解"SpringMVC有什么作用",给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,
千家信息网最后更新 2026年11月03日SpringMVC有什么作用

这篇"SpringMVC有什么作用"除了程序员外大部分人都不太理解,今天小编为了让大家更加理解"SpringMVC有什么作用",给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起来看看具体内容吧。

1、SpringMVC 详细介绍

通过入门实例,我们大概知道 SpringMVC 的作用,那么它到底是什么呢?

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

与之相反的是基于组件的、事件驱动的Web框架,如Tapestry、JSF等,在此就不介绍了。

Spring Web MVC也是服务到工作者模式的实现,但进行可优化。前端控制器是DispatcherServlet;应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。

2、SpringMVC 处理请求流程

第一步:用户发送请求到前端控制器(DispatcherServlet)。

第二步:前端控制器请求 HandlerMapping 查找 Handler,可以根据 xml 配置、注解进行查找。

第三步: 处理器映射器 HandlerMapping 向前端控制器返回 Handler

第四步:前端控制器调用处理器适配器去执行 Handler

第五步:处理器适配器执行 Handler

第六步:Handler 执行完成后给适配器返回ModelAndView

第七步:处理器适配器向前端控制器返回 ModelAndView

ModelAndView 是SpringMVC 框架的一个底层对象,包括Model 和 View

第八步:前端控制器请求试图解析器去进行视图解析

根据逻辑视图名来解析真正的视图。

第九步:试图解析器向前端控制器返回 view

第十步:前端控制器进行视图渲染

就是将模型数据(在 ModelAndView 对象中)填充到 request 域

第十一步:前端控制器向用户响应结果

下面我们对上面出现的一些组件进行解释:

1、前端控制器DispatcherServlet(不需要程序员开发)。  作用:接收请求,响应结果,相当于转发器,中央处理器。有了DispatcherServlet减少了其它组件之间的耦合度。2、处理器映射器HandlerMapping(不需要程序员开发)。  作用:根据请求的url查找Handler。3、处理器适配器HandlerAdapter(不需要程序员开发)。  作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler。4、处理器Handler(需要程序员开发)。  注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler5、视图解析器ViewResolver(不需要程序员开发)。  作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)6、视图View(需要程序员开发jsp)。  注意:View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf…)ps:不需要程序员开发的,需要程序员自己做一下配置即可。

可以总结出:需要我们开发的工作只有处理器 Handler 的编写以及视图比如JSP页面的编写。可能你还对诸如前端控制器、处理器映射器等等名词不太理解,那么接下来我们对其进行详细的介绍。

3、配置前端控制器

在 web.xml 文件中进行如下配置:

  SpringMVC_01        springmvc    org.springframework.web.servlet.DispatcherServlet                contextConfigLocation        classpath:springmvc.xml             springmvc        *.do  

4、配置处理器适配器

在 springmvc.xml 文件中配置。用来约束我们所需要编码的 Handler类。

第一种配置:编写 Handler 时必须要实现 Controller

我们可以查看源码: 

第二种配置:编写 Handler 时必须要实现HttpRequestHandler

5、编写 Handler

在 springmvc.xml 文件中配置。通俗来讲,就是请求的 URL 到我们这里所编写的 Handler 类的某个方法进行一些业务逻辑处理。

我们在上面讲解了两个处理器适配器来约束 Handler,那么我们就通过上面两种配置分别编写两个 Handler

第一种:实现Controller 接口

package com.ys.controller; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller; public class HelloController implements Controller{     @Override    public ModelAndView handleRequest(HttpServletRequest request,            HttpServletResponse response) throws Exception {        ModelAndView modelView = new ModelAndView();        //类似于 request.setAttribute()        modelView.addObject("name","张三");        modelView.setViewName("/WEB-INF/view/index.jsp");        return modelView;    } }

第二种:实现HttpRequestHandler 接口

package com.ys.controller; import java.io.IOException; import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; import org.springframework.web.HttpRequestHandler; public class HelloController2 implements HttpRequestHandler{     @Override    public void handleRequest(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        request.setAttribute("name", "张三");        request.getRequestDispatcher("/WEB-INF/view/index.jsp").forward(request, response);    } }

总结:通常我们使用第一种方式来编写 Handler ,但是第二种没有返回值,我们可以通过 response 修改相应内容,比如返回 json 数据。

response.setCharacterEncoding("utf-8");response.setContentType("application/json;charset=utf-8");response.getWriter().write("json字符串");

所以具体使用哪一种根据实际情况来判断。

5、配置处理器映射器

在 springmvc.xml 文件中配置。通俗来讲就是请求的 URL 怎么能被 SpringMVC 识别,从而去执行我们上一步所编写好的 Handler

第一种方法:

    

这样配置的话,那么请求的 URL,必须为 http://localhost:8080/项目名/hello.do  

第二种方法:

                           hello1            hello2            

这种配置请求的 URL可以为 http://localhost:8080/项目名/hello1.do,或者http://localhost:8080/项目名/hello2.do

总结:上面两种处理器映射器配置可以并存,前端控制器会正确的去判断 url 用哪个 Handler 去处理。

6、配置视图解析器

第一种配置:

如果这样配,那么在 Handler 中返回的必须是路径+jsp页面名称+".jsp" 

第二种配置:

                                        

如果这样配,那么在 Handler 中只需要返回在 view 文件夹下的jsp 页面名就可以了。

7、DispatcherServlet.properties

上面我们讲解了各种配置,可能有人会问这么多配置,万一少配置了一样,那不就不能运行了,那我们能不能不配置呢?答案是肯定的,SpringMVC 给我们提供了一个DispatcherServlet.properties 文件。系统会首先加载这里面的配置,如果我们没有配置,那么就默认使用这个文件的配置;如果我们配置了,那么就优先使用我们手动配置的。  

在 SpringMVC 运行之前,会首先加载DispatcherServlet.properties 文件里面的内容,那么我们来看看这里面都是什么。

我们可以从上面得出,如果我们不手动进行各种配置,那么也有会默认的

①、处理器适配器默认:org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter

②、处理器映射器默认:org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping

③、视图解析器默认:org.springframework.web.servlet.view.InternalResourceViewResolver

感谢您的阅读,希望您对"SpringMVC有什么作用"这一关键问题有了一定的理解,具体使用情况还需要大家自己动手实验使用过才能领会,快去试试吧,如果想阅读更多相关知识点的文章,欢迎关注行业资讯频道!

配置 处理 处理器 控制器 控制 前端 视图 开发 文件 程序 程序员 适配器 适配 作用 射器 内容 就是 接口 数据 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中智农互联网科技 亿人帮互联网科技有限公司 为想互联网科技怎么样 互联网科技公司华为 期待互联网科技 小马过河互联网科技 大白互联网科技 互联网科技教育视频 厦门千工互联网科技有限公司 青岛科技大学互联网大赛研究生 深圳市罗太互联网科技有限公司 朱啸虎曾投资哪些互联网科技企业 工业互联网山东科技大学 怎样加入科技互联网 互联网金融科技公司的优势 智帮互联网科技公司最近动向 东营紫格互联网科技 银川新华互联网科技学校是国营吗 互联网科技职业技能培训学校 现代科技的标志之一的互联网 互联网与科技 深圳九邦互联网科技有限公司 科技创新互联网企业 奇士达互联网科技 时间互联网络科技 互联网和高科技公司 互联网科技与大数据专业 健康食品互联网创新科技园项目 威龙国际互联网科技公司 伊宁互联网科技做什么的
0