Spring MVC

本文深入解读Spring MVC的核心架构,详细阐述DispatcherServlet如何接收请求并委托给HandlerMapping、HandlerAdapter和ViewResolver等组件进行处理,直至最终响应用户。包括配置解析、流程步骤、关键组件及其实现方式,旨在为开发者提供全面的Spring MVC理解与实践指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring mvc 入门
    DispatcherServlet     处理映射器  handler mapping  页面控制器动作为Controller 接口

核心架构 具体流程 步骤。
1 首先用户发送请求,DispatcherServlet 前端控制器收到请求后自己不进行处理,而是委托其他的解析器进行处理
2 DiaspatcherServlet——》HandlerMapping, HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器)对象,通过这种策略模式,很容易添加新的映射策略
3 DiaspatcherServlet--》HandlerAdapter,HandlerAdapter将会把处理器包装为适配器从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器
4HandlerAdapter-->处理功能处理方法的调用,HandlerAdapter将会根据失陪的结果调用真正的处理其的功能处理方法,完成功能处理,并返回一个ModelAndView对象(包含模型数据,逻辑视图名)
5ModelAndView 名字 ViewResolver 将会把逻辑视图解析为具体的View 通过这种模式 很容易 更换技术。
6  View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此很容易支持其他视图技术
7返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束
   

web。xml 中配置

    <servlet> 
        <servlet-name>servlet</servlet-name> 
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
        <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>servlet</servlet-name> 
        <url-pattern>/</url-pattern> 
    </servlet-mapping> 
BeanNameUrlHandlerMapping:表示将请求的URL和Bean名字映射

load-on-startup:表示启动容器时初始化一个Servlet
url-pattern 表示 处理请求的地址

HandlerMapping,HandlerAdapter 配置在 WEB-INF/servlet-servlet.xml文件中

<!-- HandlerMapping --> 
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> 
      
    <!-- HandlerAdapter --> 
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

SimpleControllerHandlerAdapter:表示所有实现了org.springframework.web.servlet.mvc.Controller接口的Bean可以作为Spring Web MVC中的处理器 以简单的形式 作为Controller


具体配置在WEB-INF/servlet-servlet.xml文件中

    <!-- ViewResolver --> 
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
        <property name="prefix" value="/WEB-INF/jsp/"/> 
        <property name="suffix" value=".jsp"/> 
    </bean> 

前缀名和后缀名

public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception { 
           //1、收集参数、验证参数 
           //2、绑定参数到命令对象 
           //3、将命令对象传入业务对象进行业务处理 
           //4、选择下一个页面 
           ModelAndView mv = new ModelAndView(); 
           //添加模型数据 可以是任意的POJO对象 
           mv.addObject("message", "Hello World!"); 
           //设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面 
           mv.setViewName("hello"); 
           return mv; 
        } 
我们需要将其添加到Spring配置文件 让其接受Spring IoC容器管理


  <bean name="/hello" class="cn.javass.chapter2.web.controller.HelloWorldController"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值