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的配置,提高开发效率,同时也能提供更好的功能支持。

相关推荐
K***658912 小时前
从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)
hive·servlet·tomcat
Slow菜鸟1 天前
Java开发规范(十一)| 数据全生命周期治理规范—Java应用的“数据资产化手册”
java·servlet·oracle
8***a8152 天前
从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)
hive·servlet·tomcat
6***94153 天前
报错The default superclass, “jakarta.servlet.http.HttpServlet“(已经配置好tomcat)
http·servlet·tomcat
天若有情6733 天前
笑喷!乌鸦哥版demo函数掀桌怒怼主函数:难办?那就别办了!
java·前端·servlet
LSL666_5 天前
1 概述及简单登录(不涉及数据库)
数据库·servlet
合作小小程序员小小店5 天前
网页开发,在线%旧版本旅游管理%系统,基于eclipse,html,css,jquery,servlet,jsp,mysql数据库
java·数据库·servlet·eclipse·jdk·旅游·jsp
老板多放葱和香菜6 天前
1大数据平台及组件搭建https://baijiahao.baidu.com/s?id=1849543147230084630
java·大数据·servlet
百***35946 天前
从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)
hive·servlet·tomcat
CodeZ-Hao7 天前
gitea启用状态检查结合jenkins工作流实现pr门禁
servlet·jenkins·gitea