SpringMVC

本文详细介绍了SpringMVC的环境搭建过程,包括pom.xml中关键依赖的添加,web.xml的配置,以及spring.xml的编写。深入解析了SpringMVC的工作原理,从DispatcherServlet前端控制器到HandlerAdapter、ViewResolver等核心组件的功能与作用。

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

环境配置

pom.xml文件中添加依赖:

<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-web</artifactId>
	<version>${org.springframework.version}</version>
</denpendency>

<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-webmvc</artifactId>
	<version>${org.springframework.version}</version>
</denpendency>

<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-context</artifactId>
	<version>${org.springframework.version}</version>
</denpendency>

<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-web</artifactId>
	<version>${org.springframework.version}</version>
</denpendency>

<dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>servlet-api</artifactId>
           <version>2.5</version>
           <scope>provided</scope>
</dependency>

配置文件web.xml的编写:
servlet-mapping中的 / 表示拦截所有的域名

<web-app>
    <display-name>Diff Server</display-name>
<!-- 配置前端控制器 -->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <!-- 字符编码过滤器 -->
    <filter>
        <filter-name>encoding</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encoding</filter-name>
        <filtere-pattern>/*</filtere-pattern>
    </filter-mapping>
</web-app>

配置文件spring.xml的编写
在配置视图解析器对象时,prefix属性代表扫描的目录,suffix目录代表扫描的文件后缀名

简介

MVC简介:
MVC设计模式就是将web层进行解耦,将复杂的web应用分解成职责清晰的几部分,方便开发和维护。
MVC即Model View Controller,模型-视图-控制器,MVC解决的是三层架构(Controller, Service, Dao)的表示层/控制层(Controller)的问题。
SpringMVC中的重要组件:

  1. DispatchServlet:前端控制器,接收所有请求(如果配置/不包括jsp)
  2. HandlerMapping:解析请求格式,判断需要执行哪个方法
  3. HandlerAdapter:负责调用具体的方法
  4. ViewResovler:视图解析器。解析返回结果,准备跳转到具体的物理视图
    SpringMVC运行原理图
    在这里插入图片描述

常用注解

@RequestMapping:属性:path—匹配路径 注解后,方法的返回值是对应的jsp页面名称。
method 设定请求拦截get方法(RequestMethod.GET)还是post(RequestMethod.POST)方法,默认都可以拦截
被@RequestMapping标注的方法可以在传入的形参中设置Request用来接收request对象,还可以直接接收参数,但参数名必须与传入的参数名相同。还可以设置一个实体类,让实体类中的属性名等于传入参数名,此时输入参数会被封到一个对象中。
@ResponseBody:将当前方法的返回值直接作为返回response的body对象解决和Ajax相互调用的问题。
@RequestBody:表示当前方法接收请求body中的json字符串,并转换为Java对象。

主要组件

前端控制器 DispatcherServlet 负责拦截请求,不需要我们开发
处理器映射器 HandlerMapping 负责解析请求的url,匹配相应的Handler。
处理器适配器 HandlerAdapter 负责执行映射器匹配的Handler。
处理器 Handler 负责执行具体的逻辑,需要我们开发
视图解析器 ViewResolver
视图 View 前端视图,需要我们开发。
综上可以看出,在使用时,后端开发人员只需要开发处理器Handler,通过@RequestMapping注解和输入参数实现请求和Handler的匹配,一个请求对应一个方法。
由于Spring MVC的控制器是单例的,为了保证线程安全,在控制器中不能写字段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值