SpringMVC组件介绍及配置(一个中心和三个基本点)

  • 前端控制器 DispatcherServlet中心

它是整个流程控制的中心。有它来调用其他组件处理用户请求。
设计它的初衷是为了降低组件之间的耦合性。

  • HandleMapping处理器映射器

负责根据用户的url请求找到Handle即处理器
springmvc提供了不同的映射器实现机制:配置文件防水。实现接口方式,注解方式等。
@RequestMapping(),采用注解方式是目前企业中最为流行的方式

  • Handle处理器

Handle是继前端控制器之后的后端控制器,在前端控制器调配下Handle对具体的用户请求进行处理
因为Handle一般处理的都是业务上的请求,所以他一般都是开发人员完成的

  • HandleAdapter:处理器适配器

通过HandleAdapter对处理器进行解析执行。主要是适配器模式的匹配

  • ViewResovler视图解析器

ViewResovler负责将处理的结果生成View视图

  • View 视图

SpringMVC提供了很多个View视图,如jstlView、freemarkerView、pdfView等

  • 说明

在springmvc各个组件中,处理器适配器、处理器映射器、视图解析器称之为SpringMVC的三大组件。可以认为是:一个中心、三个基本点。需要用户开发的组件有:handle、view

配置相关的组件

  • 配置处理器适配器、处理器映射器

通过查找DispatcherServlet.properties文件发现,建议你配置如下两个类

<!--配置处理器映射器-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
<!--配置处理器适配器-->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>

此时这两个组件就交给了Spring容器管理

注解驱动

在springMVC中,提供了使用注解驱动来加载处理器适配器、处理器映射器组件

<!--配置注解驱动 涵盖了处理器映射器和处理器适配器-->
<mvc:annotation-driven/>

视图解析器

<!--
public static final String REDIRECT_URL_PREFIX = "redirect:";
public static final String FORWARD_URL_PREFIX = "forward:";
@Nullable
private Class<?> viewClass;
private String prefix = "";
private String suffix = "";
-->
<!--配置视图解析器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".jsp"/>
</bean>

静态资源放行

如果前端控制器在url-pattern中采用缺省配置/,意思是想要拦截当前应用中的静态资源。
静态资源需要开发人自己来调配。
如果应用中还要使用静态资源,此时就涉及到静态资源放行问题。

方式一:

前端控制器,本质上就是一个Servlet,在tomcat服务器内部对缺省配置有单独的处理器,它采用的是静态资源放行。
如果想要使用tomcat默认对缺省配置的处理,需要开启tomcat的缺省配置

<!--方式一 采用tomcat默认处理方式  开启tomcat缺省配置处理方式-->
<mvc:default-servlet-handler/>

方式二

手动建立映射关系
使用标签<mvc:resources location="/img/" mapping="/images/**"/>
mapping:服务器的映射路径 url上面的资源
location:映射应用当前的具体的静态资源 静态资源的加载路径
一般不要使用静态的资源放行机制

在前段控制器中采用扩展名匹配配置------->*.action

<!--方式二  采用手动映射-->
<mvc:resources mapping="/img/**" location="/img/"/>
<mvc:resources mapping="/css/**" location="/css/"/>
<mvc:resources mapping="/js/**" location="/js/"/>
<mvc:resources mapping="/lib/**" location="/lib/"/>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值