首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Spring MVC配置文件

  • 25-03-02 18:22
  • 4381
  • 7058
blog.csdn.net

1. DispatcherServlet配置

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

  • 配置方式:

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

    • 示例:

      xml复制

      1. <servlet>
      2. <servlet-name>springmvc</servlet-name>
      3. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      4. <init-param>
      5. <param-name>contextConfigLocation</param-name>
      6. <param-value>/WEB-INF/springmvc-servlet.xml</param-value>
      7. </init-param>
      8. <load-on-startup>1</load-on-startup>
      9. </servlet>
      10. <servlet-mapping>
      11. <servlet-name>springmvc</servlet-name>
      12. <url-pattern>/</url-pattern>
      13. </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复制

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

      • suffix:视图文件的后缀。

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


4. 请求映射(Handler Mapping)

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

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

  • 示例:

    java复制

    1. @Controller
    2. public class MyController {
    3. @RequestMapping("/hello")
    4. public String hello(Model model) {
    5. model.addAttribute("message", "Hello, Spring MVC!");
    6. return "hello";
    7. }
    8. }
    • /hello请求会被映射到MyController的hello方法。


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复制

    1. public String register(@Valid @ModelAttribute("user") User user, BindingResult result) {
    2. if (result.hasErrors()) {
    3. return "register";
    4. }
    5. return "success";
    6. }

7. 拦截器(Interceptor)

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

  • 配置方式:

    xml复制

    1. <mvc:interceptors>
    2. <bean class="com.example.MyInterceptor" />
    3. </mvc:interceptors>
  • 方法:

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

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

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


8. 静态资源访问

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

  • 配置方式:

    xml复制

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

    • location:资源存放路径。


9. 异常处理(Exception Handling)

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

  • 配置方式:

    • 使用@ControllerAdvice或@ExceptionHandler注解。

    • 示例:

      java复制

      1. @ControllerAdvice
      2. public class GlobalExceptionHandler {
      3. @ExceptionHandler(Exception.class)
      4. public String handleException(Exception e, Model model) {
      5. model.addAttribute("errorMessage", e.getMessage());
      6. return "error";
      7. }
      8. }

10. 其他常用配置

  • 启用注解驱动:

    xml复制

    <mvc:annotation-driven />
    • 启用@RequestMapping、@RequestParam等注解支持。

  • 配置全局配置文件:

    xml复制

    <context:property-placeholder location="classpath:application.properties" />

总结

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

注:本文转载自blog.csdn.net的先睡的文章"https://blog.csdn.net/2303_81990289/article/details/145817440"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top