1、pom.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 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 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" 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"> <context:component-scan base-package="com.atguigu.springmvc"/> </beans>
4、Hello01Controller.java
package com.atguigu.springmvc; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class Hello01Controller { @RequestMapping("/h01") @ResponseBody public String ho1() { System.out.println("Hello SpringMVC!"); return "mandatory"; } }
5、在SpringMVC中,中央控制器加 / 和 /* 的区别
在SpringMVC中,中央控制器指DispatcherServlet,它是整个SpringMVC框架的核心,负责接收所有的HTTP请求,并将请求委托给对应的Controller进行处理。
加/和/*的区别如下:
加/的映射:可以匹配所有请求,包括静态资源请求,比如图片、css、js等。这种映射适合用于处理静态资源请求,但相对会占用大量的服务器资源。
加/*的映射:可以匹配所有请求,但不能匹配静态资源请求。如果使用这种映射方式,则需要配置静态资源的访问路径,否则静态资源将无法访问。
一般来说,如果项目中有大量的静态资源请求,建议使用加/的映射方式;如果项目中静态资源请求较少,则可以使用加/*的映射方式,避免不必要的资源浪费。
在SpringMVC中,中央控制器是指DispatcherServlet,它是SpringMVC框架的核心组件,负责将请求分发给相应的处理器(Handler),并返回响应结果。
中央控制器加/和/*的区别在于请求映射的粒度不同:
- 加/的情况下,DispatcherServlet只会拦截所有以/开头的请求,也就是说只有根路径下的请求会被拦截,例如http://localhost:8080/。
- 加/*的情况下,DispatcherServlet会拦截所有请求,包括根路径下的请求和子路径下的请求,例如http://localhost:8080/user、http://localhost:8080/user/info等等。
因此,在配置RequestMapping时,如果使用/,则只需要在浏览器中输入根路径即可访问,而如果使用/*,则需要输入完整的请求路径。
在SpringMVC中,中央控制器指的是DispatcherServlet,它是整个SpringMVC框架的核心,所有的请求都会被它接收,然后分发到对应的控制器进行处理。
中央控制器加/和/*的区别如下:
中央控制器加/:表示DispatcherServlet接收所有的请求,包括静态资源(如图片、css和js等),但不包括JSP页面等动态页面,这些请求需要通过Controller来处理。
中央控制器加/*:表示DispatcherServlet接收所有的请求,包括静态资源和动态页面,但如果有其他Servlet或Filter与DispatcherServlet同时处理同一个请求,则可能会出现冲突。
因此,一般建议使用中央控制器加/,同时将静态资源放到单独的目录下,由Web服务器直接处理,提高系统性能。
在SpringMVC中,中央控制器是一个特殊的控制器,用于处理所有进入应用程序的请求。在配置SpringMVC时,通常会为中央控制器指定一个URL路径,以便它可以拦截和处理所有进入应用程序的请求。
在指定中央控制器的URL路径时,可以使用不同的模式来匹配不同的URL。其中,/和/*是两种常见的模式。
- /:当使用/作为中央控制器的URL路径时,中央控制器将拦截所有以根路径为开头的请求。这意味着所有以/开头的URL都将由中央控制器处理。例如,如果中央控制器的URL路径设置为/,那么它将拦截所有进入应用程序的请求,如/hello、/user/profile等。
- /*:当使用/*作为中央控制器的URL路径时,中央控制器将拦截所有请求,无论请求的URL是什么。在这种情况下,中央控制器将处理所有进入应用程序的请求,包括静态资源的请求。这意味着所有进入应用程序的请求都将由中央控制器处理,然后由其他控制器或处理程序进一步处理。
需要注意的是,使用/*作为中央控制器的URL路径可能会导致性能问题,因为它将中央控制器设置为处理所有请求,包括静态资源的请求。如果应用程序有大量的静态资源请求,这可能会导致性能瓶颈和不必要的延迟。因此,在选择中央控制器的URL路径时,应该根据具体的应用程序需求进行权衡和选择。
在Spring MVC中,中央控制器(Controller)是用于处理和响应用户请求的组件。在URL映射方面,中央控制器可以处理多个URL路径,并且可以根据需要将不同的URL映射到不同的处理程序方法。
在URL路径映射中,”/ “和” /* “这两个符号有不同的含义:
- “/ “:这是URL路径的根符号。当你在中央控制器中使用”/”时,它表示该控制器是所有根URL的中央处理器。例如,如果你将中央控制器与”/”路径映射,则该控制器将处理所有以根URL开头的请求,如 “/app”,”/index” 等。
- “/*“:这个符号表示该控制器是所有子URL的中央处理器。也就是说,它将处理所有在根URL之后的部分。例如,如果将中央控制器与”/* “路径映射,则该控制器将处理所有以根URL开头的请求之后的部分,如 “/app/123″,”/index/abc” 等。
总结起来,”/”和” /* “的区别在于:
在Spring MVC中,中央控制器(通常是一个DispatcherServlet)负责处理传入的HTTP请求,并将其路由到相应的控制器。在配置中央控制器时,通常会使用URL模式来指定哪些URL应该由该Servlet处理。
/
和/*
在URL模式中是有区别的:
/ :
/ *:
在选择这两种配置时,需要根据你的具体需求来决定。通常,
/
配置更为灵活,因为它可以精确地控制哪些URL应该被DispatcherServlet处理,而/*
配置则更为粗暴,它会将所有请求都拦截到DispatcherServlet。因此,一般来说,/
是更常用和推荐的配置。
原文地址:https://blog.csdn.net/m0_65152767/article/details/134605119
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_6461.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!