Spring MVC配置文件

1. DispatcherServlet配置

  • 作用DispatcherServlet是Spring MVC的核心前端控制器,用于接收所有HTTP请求,并将请求分发给对应的处理器(Controller)。

  • 配置方式

    • web.xml中配置DispatcherServlet,并指定springmvc-servlet.xml作为其配置文件。

    • 示例:

      xml复制

      复制代码
      <servlet>
          <servlet-name>springmvc</servlet-name>
          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
          <init-param>
              <param-name>contextConfigLocation</param-name>
              <param-value>/WEB-INF/springmvc-servlet.xml</param-value>
          </init-param>
          <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
          <servlet-name>springmvc</servlet-name>
          <url-pattern>/</url-pattern>
      </servlet-mapping>

2. 组件扫描(Component Scanning)

  • 作用 :自动扫描指定包路径下的注解(如@Controller@Service@Repository@Component等),并将这些类注册为Spring容器中的Bean。

  • 配置方式

    xml复制

    复制代码
    <context:component-scan base-package="com.example.controller" />
  • 常用属性

    • base-package:指定需要扫描的包路径。

    • use-default-filters:是否启用默认过滤器(默认为true,会扫描@Component等注解)。

    • annotation-config:是否启用注解支持。


3. 视图解析器(View Resolver)

  • 作用:将处理器返回的逻辑视图名解析为实际的视图资源(如JSP文件)。

  • 常见类型

    • InternalResourceViewResolver:用于解析JSP视图。

      xml复制

      复制代码
      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
          <property name="prefix" value="/WEB-INF/views/"/>
          <property name="suffix" value=".jsp"/>
      </bean>
      • prefix:视图文件的前缀路径。

      • suffix:视图文件的后缀。

    • 其他视图解析器 :如FreeMarkerViewResolver(FreeMarker模板)、ThymeleafViewResolver(Thymeleaf模板)等。


4. 请求映射(Handler Mapping)

  • 作用:定义请求与处理器之间的映射关系。

  • 默认行为 :Spring MVC使用RequestMappingHandlerMapping,结合@RequestMapping注解来映射请求。

  • 示例

    java复制

    复制代码
    @Controller
    public class MyController {
        @RequestMapping("/hello")
        public String hello(Model model) {
            model.addAttribute("message", "Hello, Spring MVC!");
            return "hello";
        }
    }
    • /hello请求会被映射到MyControllerhello方法。

5. 数据绑定(Data Binding)

  • 作用:将请求参数绑定到Java对象中。

  • 常用注解

    • @RequestParam:绑定请求参数到方法参数。

      java复制

      复制代码
      public String getUser(@RequestParam("name") String name) { ... }
    • @ModelAttribute:绑定请求参数到对象属性。

      java复制

      复制代码
      public String saveUser(@ModelAttribute("user") User user) { ... }
    • @RequestBody:绑定请求体到对象(通常用于JSON或XML数据)。

      java复制

      复制代码
      public String saveUser(@RequestBody User user) { ... }

6. 数据校验(Validation)

  • 作用:对用户输入的数据进行校验。

  • 常用注解

    • @Valid:触发校验。

    • @NotNull@Size@Email等:定义校验规则。

  • 示例

    java复制

    复制代码
    public String register(@Valid @ModelAttribute("user") User user, BindingResult result) {
        if (result.hasErrors()) {
            return "register";
        }
        return "success";
    }

7. 拦截器(Interceptor)

  • 作用:在请求处理过程中进行拦截,执行一些通用逻辑(如权限检查、日志记录等)。

  • 配置方式

    xml复制

    复制代码
    <mvc:interceptors>
        <bean class="com.example.MyInterceptor" />
    </mvc:interceptors>
  • 方法

    • preHandle():在处理器执行前调用。

    • postHandle():在处理器执行后、视图解析前调用。

    • afterCompletion():在请求完成时调用。


8. 静态资源访问

  • 作用:允许访问静态资源(如CSS、JS、图片等)。

  • 配置方式

    xml复制

    复制代码
    <mvc:resources mapping="/static/**" location="/static/" />
    • mapping:请求路径。

    • location:资源存放路径。


9. 异常处理(Exception Handling)

  • 作用:统一处理异常,返回友好的错误页面或错误信息。

  • 配置方式

    • 使用@ControllerAdvice@ExceptionHandler注解。

    • 示例:

      java复制

      复制代码
      @ControllerAdvice
      public class GlobalExceptionHandler {
          @ExceptionHandler(Exception.class)
          public String handleException(Exception e, Model model) {
              model.addAttribute("errorMessage", e.getMessage());
              return "error";
          }
      }

10. 其他常用配置

  • 启用注解驱动

    xml复制

    复制代码
    <mvc:annotation-driven />
    • 启用@RequestMapping@RequestParam等注解支持。
  • 配置全局配置文件

    xml复制

    复制代码
    <context:property-placeholder location="classpath:application.properties" />

总结

springmvc-servlet.xml是Spring MVC的核心配置文件,通过它,可以定义请求处理的流程、视图解析方式、组件扫描范围、拦截器、异常处理等。这些配置使得Spring MVC能够高效地处理HTTP请求,并组织项目中的资源和组件。

相关推荐
RestCloud8 分钟前
数据清洗(ETL/ELT)原理与工具选择指南:企业数字化转型的核心引擎
数据仓库·数据安全·etl·数据集成·elt·集成平台
wingaso2 小时前
[经验总结]删除gitlab仓库分支报错:错误:无法推送一些引用到“http:”
linux·数据仓库·git
线条15 小时前
MapReduce Shuffle 全解析:从 Map 端到 Reduce 端的核心数据流
大数据·hadoop·mapreduce
火龙谷21 小时前
【hadoop】Kafka 安装部署
大数据·hadoop·kafka
火龙谷1 天前
【hadoop】Flume的相关介绍
大数据·hadoop·flume
RestCloud1 天前
企业对数据集成工具的需求及 ETL 工具工作原理详解
数据仓库·系统安全·etl·数字化转型·数据集成平台·集成平台
薇晶晶1 天前
spark基本介绍
hadoop
IvanCodes1 天前
九、HQL DQL七大查询子句
大数据·数据库·hive
火龙谷2 天前
【hadoop】sqoop案例 hive->mysql
hive·hadoop·sqoop
薇晶晶2 天前
hadoop中了解yarm
hadoop