spring-webmvc允许静态资源被访问

1、pom.xml

XML 复制代码
  <dependencies>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
    </dependency>
    <dependency>
      <groupId>jakarta.platform</groupId>
      <artifactId>jakarta.jakartaee-web-api</artifactId>
    </dependency>

  </dependencies>

2、web.xml

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
	version="4.0">

	<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:springmvc.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>

</web-app>

3、springmvc.xml

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <context:component-scan base-package="com.atguigu.springmvc"/>

    <!--开启SpringMVC的注解驱动功能。这个配置也被称为SpringMVC的标配-->
    <!--标配:因为SpringMVC环境下非常多的功能都要求必须打开注解驱动才能正常工作-->
    <mvc:annotation-driven/>

    <!--加入这个配置,SpringMVC就会在遇到没有@RequestMapping的请求时放它过去-->
    <!--所谓放它过去就是让这个请求去找它原本要访问的资源-->
    <!--<mvc:default-servlet-handler/>-->

</beans>
  • 如果没有开启<mvc:default-servlet-handler>控制台会报 org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping for GET /index.html

4、index.html

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
        <h1>静态资源放行</h1>
</body>
</html>

5、<mvc:annotation-driven>

<mvc:annotation-driven/> 是Spring MVC的一个标签,用于启用注解驱动的配置。这个标签在Spring配置文件中用于自动注册一些处理器,如消息转换器、参数解析器等,以便使用注解(如@RequestMapping,@RequestParam等)来定义请求处理方法。

在Spring 3.0版本之后,<mvc:annotation-driven/>标签被引入,用于替代早期版本的<bean id="annotationHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"/><bean id="annotationParameterHandler" class="org.springframework.web.bind.annotation.support.HandlerMethodArgumentResolver"/>配置。

使用<mvc:annotation-driven/>标签可以简化配置并提高代码的可读性。例如:

XML 复制代码
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:mvc="http://www.springframework.org/schema/mvc"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
    http://www.springframework.org/schema/beans/spring-beans.xsd  
    http://www.springframework.org/schema/mvc  
    http://www.springframework.org/schema/mvc/spring-mvc.xsd">  
  
    <!-- 启用注解驱动 -->  
    <mvc:annotation-driven/>  
  
    <!-- 其他配置 -->  
    ...  
</beans>

请注意,如果你使用Java配置而不是XML配置,你也可以使用@EnableWebMvc注解来启用注解驱动的配置。例如:

java 复制代码
@Configuration  
@EnableWebMvc  
public class WebConfig {  
   
    // 其他配置  
}

<mvc:annotation-driven/> 是Spring MVC的一个标签,用于启用注解驱动的配置。它允许Spring MVC自动检测和处理类路径下的控制器类,并将它们注册为处理器。这个标签在Spring MVC的配置文件中使用,用于自动配置一些默认的组件,如请求映射处理器、消息转换器和参数解析器等。

这个标签是Spring 3.0版本引入的,它简化了Spring MVC的配置,使得开发人员可以更快速地开发和部署Web应用程序。通过使用注解,开发人员可以更方便地定义请求处理方法、参数和返回值等。

在使用<mvc:annotation-driven/>标签时,需要注意以下几点:

  1. 确保你已经导入了Spring MVC的依赖库,并且你的Spring版本支持该标签。
  2. 在配置文件中添加<mvc:annotation-driven/>标签,并确保它位于正确的位置。通常情况下,它应该位于Spring配置文件的根元素下。
  3. 确保你的控制器类已经使用了正确的注解来定义请求处理方法、请求映射等。例如,使用@RequestMapping注解来定义请求映射路径和处理方法。
  4. 如果你需要配置其他组件或自定义处理器,可以通过其他方式进行配置,例如使用<bean>元素来手动配置处理器。

总之,<mvc:annotation-driven/>标签是Spring MVC中一个非常方便的配置工具,它可以帮助开发人员更快速地开发和部署Web应用程序。

mvc:annotation-driven/是Spring MVC中的一个XML配置,它的作用是启用Spring MVC的注解驱动。通过该配置,Spring MVC将会自动注册一些默认的组件,如RequestMappingHandlerMapping、RequestMappingHandlerAdapter、ExceptionResolver等,这些组件能够支持常见的Spring MVC注解,如@Controller、@RequestMapping、@RequestParam、@ResponseBody等。

注解驱动的方式更加方便和简洁,不需要显式地配置一些传统的组件,例如HandlerMapping和HandlerAdapter,而是通过注解来完成请求与处理器的映射和适配。所以,使用mvc:annotation-driven/可以让我们在Spring MVC中更加便捷地使用注解的方式进行开发。
<mvc:annotation-driven/>是SpringMVC中的一个配置标签,用于启用基于注解的控制器和参数解析器。具体作用包括:

1. 支持@Controller注解和@RequestMapping注解:在SpringMVC中,@Controller注解用于标记一个类为控制器,而@RequestMapping注解用于标记控制器中的方法为处理器方法。使用<mvc:annotation-driven/>将会自动注册DispatcherServlet,使其能够扫描@Controller注解和@RequestMapping注解,并将其转换为处理请求的控制器和处理器方法。

2. 支持数据绑定和数据验证:<mvc:annotation-driven/>还可以注册数据绑定和数据验证的相关组件,如ConversionService、FormatterRegistry和Validator等。这些组件可以帮助将请求参数绑定到控制器方法的参数上,并对参数进行有效性验证。

3. 支持消息转换:<mvc:annotation-driven/>还可以自动注册消息转换器,用于将请求和响应的内容转换为Java对象或其他格式,如JSON、XML等。

综上所述,<mvc:annotation-driven/>可以简化SpringMVC的配置,提高开发效率,同时也能提供更好的功能支持。

相关推荐
ajsbxi1 小时前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
记录成长java12 小时前
ServletContext,Cookie,HttpSession的使用
java·开发语言·servlet
长安初雪13 小时前
Request 和 Response 万字详解
计算机网络·servlet
A-bodgie17 小时前
Spring 中的 Environment 对象
java·后端·spring·servlet·springboot
笔墨登场说说2 天前
JDK 里面的线程池和Tomcat线程池的区别
java·servlet·tomcat
android_cai_niao2 天前
处理器用handler表示还是用processor表示比较好?
handler·处理器·processor
听潮阁3 天前
【SpringCloud详细教程】-01-一文了解微服务
开发语言·spring boot·spring cloud·servlet·java-ee·mybatis
阑梦清川3 天前
JavaEE初阶-----servlet-api,Maven创建项目,部署,打包,测试全过程
servlet·java-ee·maven
阑梦清川3 天前
JavaEE初阶--servlet篇(三)HttpServlet/response/request对应方法使用
java·servlet·java-ee
awonw4 天前
[java][基础]HTTP&Tomcat&Servlet
java·http·servlet·tomcat