spring mvc 有哪些组件?

Spring MVC(Model-View-Controller)框架由多个关键组件组成,这些组件协同工作,实现从请求到响应的完整流程。以下是 Spring MVC 的主要组件:

  1. DispatcherServlet

    • 前端控制器(Front Controller),负责接收所有的 HTTP 请求,并将其分发给适当的处理器。
    • 配置在 web.xml 中。
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
  2. Handler Mapping

    • 处理器映射器,用于根据请求 URL 找到对应的处理器(Controller)。
    • 常见的实现包括 RequestMappingHandlerMappingSimpleUrlHandlerMapping 等。
  3. Controller

    • 控制器,是处理具体请求的组件。使用 @Controller 注解标识。
    • 控制器中的方法使用 @RequestMapping 注解来映射请求 URL。
    @Controller
    public class MyController {
        @RequestMapping("/hello")
        public String handleRequest(Model model) {
            model.addAttribute("message", "Hello, World!");
            return "helloView";
        }
    }
    
  4. Handler Adapter

    • 处理器适配器,负责调用处理器中的处理方法。
    • 常见的实现包括 RequestMappingHandlerAdapterHttpRequestHandlerAdapter 等。
  5. ModelAndView

    • 用于封装模型数据和视图信息的对象。控制器方法返回 ModelAndView 对象,包含视图名和模型数据。
  6. View Resolver

    • 视图解析器,根据视图名解析为实际的视图对象(例如 JSP、Thymeleaf 模板)。
    • 常见的实现包括 InternalResourceViewResolverThymeleafViewResolver 等。
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    
  7. View

    • 视图对象,负责将模型数据渲染为最终的 HTML 响应。
    • 视图可以是 JSP、Thymeleaf 模板、FreeMarker 模板等。
  8. Model

    • 用于存储控制器处理方法中的数据。
    • Model 接口和 ModelMap 类是常用的模型数据存储方式。
  9. HandlerExceptionResolver

    • 异常解析器,用于处理控制器方法中抛出的异常,并将其转换为适当的视图或响应。
    • 常见的实现包括 SimpleMappingExceptionResolverDefaultHandlerExceptionResolver 等。
  10. LocaleResolver

    • 负责解析用户请求的区域设置(Locale),用于国际化。
    • 常见的实现包括 AcceptHeaderLocaleResolverSessionLocaleResolver 等。
  11. ThemeResolver

    • 负责解析用户请求的主题(Theme),用于界面风格的动态切换。
    • 常见的实现包括 FixedThemeResolverSessionThemeResolver 等。
  12. MultipartResolver

    • 处理文件上传请求,将上传的文件解析为 MultipartFile 对象。
    • 常见的实现包括 CommonsMultipartResolverStandardServletMultipartResolver 等。
  13. Flash Attributes

    • 用于在重定向请求之间传递临时数据。
    • 通过 RedirectAttributes 接口进行处理。
  14. Session Attributes

    • 用于在用户会话期间存储模型数据。
    • 使用 @SessionAttributes 注解来标识需要存储在会话中的属性。

这些组件在 Spring MVC 中相互协作,提供了一个灵活且强大的框架,用于构建基于 Web 的应用程序。每个组件都可以根据需求进行定制和扩展,以满足特定的应用场景。

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

伟主教

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

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

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

打赏作者

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

抵扣说明:

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

余额充值