`
wuxiaozeng2440
  • 浏览: 27284 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

springMVC工作原理以及简单实现

 
阅读更多

Spring的MVC框架主要由DispatcherServlet、处理器映射(HandlerMapping)、处理器(Controller)、视图解析器(ViewResolver)、视图(View)组成。DispatcherServlet是整个Spring MVC的核心。它负责接收HTTP请求组织协调Spring MVC的各个组成部分。其主要工作有以下三项:

1)截获符合特定格式的URL请求。

2)初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久化层的WebApplicationContext建立关联。

3)初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。

        1.工作流程

①当用户在浏览器中点击一个链接或者提交一个表单时,那么就会产生一个请求(request)。当请求离开浏览器时,它会携带用户请求的信息(比如说请求的URL信息,用户名,密码什么的)。

        ②请求的第一站到达的是Spring的DispatcherServlet,它是一个前端控制器,工作是将用户的请求委托给其他的组件(这里是交给Spring MVC的控制器)去处理。这里DispatcherServlet要决定将请求传给哪一个控制器(Controller)去处理,那么这时就需要处理器映射(Handler Mapping)了。处理器映射会看请求的URL信息,然后决定将请求交给哪一个控制器去处理。比如说有两个控制器ControllerA和ControllerB,分别处理后缀名为.html和.jsp送来的请求,那么当请求者的后缀名为.html时,那么DispatcherServlet就将请求交给ControllerA进行处理。

        ③当选择了一个合适的控制器后,DispatcherServlet就会将请求交给这个控制器去处理。在这个控制器上,用户的请求将会将用户提交的一些信息交由控制器处理并等待。然而设计的比较好的控制器本身对信息做很少的处理或者根本不做处理,而是将业务逻辑交给一个或多个服务器对象(Model)去处理。

        ④当控制器对用户请求所携带的信息进行处理(或交给模型层处理)后,经常会产生一些其他的需要返回给浏览器进行显示的数据。这些原始数据直接显示出来显然是不友好的,那么就需要视图(View)来对这些数据进行显示了。控制器的最后一件事就是将模型数据打包,并且指定产生输出的视图的特定名称,然后它将模型、视图名称以及request请求一起发送给DispatcherServlet。所以控制器并没有与视图进行耦合,因为传递给DispatcherServlet的视图名称并不是某一个指定的特殊的文件名称(如后缀名一定是JSP或其他什么名称),它只要是一个可以产生输出和展示结果的逻辑名称就可以了。

        ⑤DispatcherServlet会向一个视图解析器(ViewResolver)进行请求,视图解析器可以将逻辑视图名称映射到一个特定的视图显示文件上面。

        ⑥现在DispatcherServlet知道哪一个视图文件可以显示结果了。该视图将会利用模板数据产生输出,这些输出通过response对象返回给客户端进行显示。

 

        2.Spring MVC的一个简单实现(视图是通过Velocity模板进行显示)

        ①配置DispatcherServlet(必须在web应用的web.xml里面进行配置):

<!-- 这里设置spring-mvc.xml的位置,spring-mvc.xml配置了Handler Mapping,Controller和ViewResolver等。-->  

<servlet>

<servlet-name>springServlet</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/spring-mvc.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>springServlet</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

 

②配置spring-mvc.xml:

<!-- 自动扫描且只扫描@Controller -->

    <context:component-scan base-package="com.springmvc.test"/>

 

<!-- 将无法mapping到Controller的path交给default servlet handler处理 -->

<mvc:default-servlet-handler />

 

<!-- 如果视图的后缀名是jsp,则视图默认视图解析器可以如下配置 --> 

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/views/" />

<property name="suffix" value=".jsp" />

</bean>

 

③控制器HelloController.java:

 

 

分享到:
评论

相关推荐

    SpringMVC的代码简单实现

    但这个例子足以让我们理解SpringMVC的工作原理,以及如何利用Java的元注解和反射能力来构建类似的功能。通过这种方式,开发者可以更深入地了解SpringMVC的内部运作,从而更好地优化和定制自己的Web应用程序。

    手写简易版SpringMVC,探索SpringMVC原理

    这是一项很好的练习,能够加深对SpringMVC工作原理的认识,并提高我们的编程能力。 在实际开发中,SpringMVC提供了许多开箱即用的功能,如注解驱动的控制器、数据绑定、类型转换、本地化和主题支持等。这些功能极大...

    SpringMVC简单源码实现

    在这个"SpringMVC简单源码实现"中,我们将会深入探讨SpringMVC的核心机制,包括请求处理、模型视图解析以及依赖注入等方面。 1. **请求处理流程**: 当一个HTTP请求到达SpringMVC应用时,它首先由前端控制器`...

    SpringMVC工作原理1

    在SpringMVC的工作流程中,各个组件协同工作,使得Web应用程序能够高效地处理用户请求并呈现响应结果。 1. 用户发送请求至前端控制器DispatcherServlet。这是SpringMVC流程的起点,用户发起HTTP请求到达服务器,...

    老司机带你分析SpringMVC框架设计原理与实现

    在深入探讨SpringMVC框架的设计原理与实现细节之前,我们先来明确一下SpringMVC的基本概念及其...无论是对于初学者还是资深开发者而言,在理解和掌握SpringMVC的工作原理后,都能够更加得心应手地进行Web应用开发工作。

    SpringMVC框架简单实现

    在本项目中,"panda-springmvc"是一个简易版的SpringMVC框架实现,旨在帮助理解其核心概念和工作流程。 首先,让我们深入了解一下SpringMVC的核心组件: 1. **DispatcherServlet**:这是SpringMVC的前端控制器,...

    SpringMVC工作原理及介绍

    SpringMVC的显著优势在于它的简单易用,它是一个轻量级的框架,可以不需要依赖特定的接口和类就能快速上手。此外,SpringMVC可以无缝地与Spring框架集成,这意味着开发者可以利用Spring的依赖注入(IoC)和面向切面...

    springmvc框架的用户登录注册的简单实现

    在本例中,"springmvc框架的用户登录注册的简单实现"提供了一个初学者友好的教程,帮助学习者了解如何使用 Spring MVC 实现基本的用户登录和注册功能。 首先,我们来了解一下 MVC 设计模式。MVC 将应用程序分为三个...

    SpringMVC——执行原理及简单配置实现.docx

    本文将深入探讨SpringMVC的执行原理及其简单配置实现。 首先,SpringMVC的执行流程始于客户端发起HTTP请求。这个请求被DispatcherServlet(前置控制器)拦截,它是整个SpringMVC框架的核心,负责接收和分发请求。...

    springmvc实现的简单用户管理系统

    本项目是使用SpringMVC实现的一个简单的用户管理系统,非常适合初学者学习和理解SpringMVC的工作原理。 1. **SpringMVC基本架构** SpringMVC的核心组件包括DispatcherServlet(前端控制器)、HandlerMapping...

    SpringMVC实现简单登录配置

    在本文中,我们将深入探讨如何使用SpringMVC框架来实现一个简单的登录配置。...这个基础示例可以帮助理解SpringMVC的工作原理,但实际项目中,登录验证通常会涉及更复杂的安全机制,如Spring Security。

    SpringMVC项目一之项目搭建实现简单登录

    通过查看这些源码,可以更好地理解SpringMVC项目的工作原理和实现细节。 总结,搭建一个SpringMVC项目并实现简单登录涉及了项目配置、MVC组件的理解、用户输入的处理以及安全性的考虑。这是一个基础但重要的步骤,...

    springMVC+dwr技术实现消息推送实例

    通过这个实例,你可以了解到如何利用SpringMVC处理业务逻辑,以及如何借助DWR实现从服务器到客户端的实时消息推送。理解这两个技术的结合,对于构建现代、交互性强的Web应用是非常有价值的。同时,这也是对传统HTTP...

    手动实现springmvc的简单功能

    手动实现Spring MVC的功能,可以让我们深入理解其工作原理,从而更好地运用和定制该框架。下面将详细介绍如何手动实现Spring MVC的一些核心功能。 1. **DispatcherServlet**:Spring MVC 的入口点,它是Servlet的一...

    springmvc注解简单实例

    Spring MVC 是一款强大的Java Web开发框架,用于构建高效、可维护的Web应用程序。在这个"springmvc注解简单...这个"springmvc注解简单实例"为我们提供了一个很好的起点,帮助我们深入了解Spring MVC框架的工作原理。

    springmvc简单的登陆

    Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用于构建 MVC(Model-View-Controller)...这个项目对于初学者来说是很好的实践,可以深入理解 Spring MVC 的基本架构和工作原理。

    自主实现的简易SpringMVC

    SpringMVC是Java Web开发中广泛使用...这为初学者理解SpringMVC的工作原理提供了一个良好的起点。实际应用中,SpringMVC还有更多高级特性,如拦截器、AOP(面向切面编程)、异步处理等,这些在简易实现中可能并未涉及。

    SpringMVC实现的简单的增删改查

    1. **SpringMVC工作原理**:SpringMVC基于Model-View-Controller设计模式,其中Controller处理HTTP请求,Model代表业务数据,View负责渲染视图。请求到达DispatcherServlet,它根据配置的映射规则将请求分发到对应的...

    一个简单的springMVC入门项目

    通过这个入门项目,新手能够理解SpringMVC的工作原理,熟悉MVC架构,并学习如何创建基本的Web应用。实际操作这些代码将有助于加深对SpringMVC的理解,同时也能锻炼解决问题的能力。对于想要学习或提升SpringMVC技能...

    SpringMVC结合ajaxfileupload.js实现文件无刷新上传

    首先,我们需要理解SpringMVC的工作原理。SpringMVC是一个模型-视图-控制器(MVC)架构模式的实现,它允许开发者将业务逻辑、数据处理和用户界面分离,从而简化开发流程。在文件上传的场景中,SpringMVC通过...

Global site tag (gtag.js) - Google Analytics