本文介绍: 在SpringMVC中,中央控制器加 / 和 /* 的区别加/的映射可以匹配所有请求,包括静态资源请求,比如图片cssjs等。这种映射适合用于处理静态资源请求,但相对会占用大量的服务器资源。加/*的映射可以匹配所有请求,但不能匹配静态资源请求。如果使用这种映射方式,则需要配置静态资源的访问路径,否则静态资源将无法访问

1、pom.xml

  <dependencies> 
    <dependency> 
      &lt;groupId&gt;org.springframework</groupId&gt;  
      <artifactId&gt;spring-context</artifactId&gt; 
    </dependency&gt;  
    <dependency&gt; 
      <groupId&gt;org.springframework</groupId&gt;  
      <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进行处理

加/和/*的区别如下:

  1. 加/的映射:可以匹配所有请求,包括静态资源请求,比如图片cssjs等。这种映射适合用于处理静态资源请求,但相对会占用大量的服务器资源。

  2. 加/*的映射:可以匹配所有请求,但不能匹配静态资源请求。如果使用这种映射方式,则需要配置静态资源的访问路径,否则静态资源将无法访问。

一般来说,如果项目中有大量的静态资源请求,建议使用加/的映射方式;如果项目中静态资源请求较少,则可以使用加/*的映射方式,避免不必要的资源浪费。

SpringMVC中,中央控制器是指DispatcherServlet,它是SpringMVC框架的核心组件负责将请求分发给相应的处理器(Handler),并返回响应结果

中央控制器加/和/*的区别在于请求映射的粒度不同:

  • 加/的情况下,DispatcherServlet只会拦截所有以/开头的请求,也就是说只有根路径下的请求会被拦截,例如http://localhost:8080/。
  • 加/*的情况下,DispatcherServlet会拦截所有请求,包括根路径下的请求和子路径下的请求,例如http://localhost:8080/user、http://localhost:8080/user/info等等。

因此,在配置RequestMapping时,如果使用/,则只需要浏览器输入根路径即可访问,而如果使用/*,则需要输入完整的请求路径。

 

SpringMVC中,中央控制器指的是DispatcherServlet,它是整个SpringMVC框架的核心,所有的请求都会被它接收,然后分发到对应的控制器进行处理

中央控制器加/和/*的区别如下:

  1. 中央控制器加/:表示DispatcherServlet接收所有的请求,包括静态资源(如图片、cssjs等),但不包括JSP页面动态页面,这些请求需要通过Controller来处理

  2. 中央控制器加/*:表示DispatcherServlet接收所有的请求,包括静态资源和动态页面,但如果有其他Servlet或Filter与DispatcherServlet同时处理同一个请求,则可能会出现冲突

因此,一般建议使用中央控制器加/,同时将静态资源放到单独的目录下,由Web服务器直接处理提高系统性能。

 

 

在SpringMVC中,中央控制器是一个特殊的控制器,用于处理所有进入应用程序的请求。在配置SpringMVC时,通常会为中央控制器指定一个URL路径,以便可以拦截和处理所有进入应用程序的请求。

指定中央控制器的URL路径时,可以使用不同的模式匹配不同的URL。其中,/和/*是两种常见的模式

  1. /:当使用/作为中央控制器的URL路径时,中央控制器将拦截所有以根路径为开头的请求。这意味着所有以/开头的URL都将由中央控制器处理。例如,如果中央控制器的URL路径设置为/,那么它将拦截所有进入应用程序的请求,如/hello、/user/profile等。
  2. /*:当使用/*作为中央控制器的URL路径时,中央控制器将拦截所有请求,无论请求的URL是什么。在这种情况下,中央控制器将处理所有进入应用程序的请求,包括静态资源的请求。这意味着所有进入应用程序的请求都将由中央控制器处理,然后由其他控制器或处理程序进一步处理。

需要注意的是,使用/*作为中央控制器的URL路径可能会导致性能问题,因为它将中央控制器设置为处理所有请求,包括静态资源的请求。如果应用程序有大量的静态资源请求,这可能会导致性能瓶颈和不必要的延迟。因此,在选择中央控制器的URL路径时,应该根据具体的应用程序需求进行权衡和选择

 

Spring MVC中,中央控制器(Controller)是用于处理和响应用户请求的组件。在URL映射方面,中央控制器可以处理多个URL路径,并且可以根据需要将不同的URL映射到不同的处理程序方法

在URL路径映射中,”/ “和” /* “这两个符号有不同的含义:

  1. “/ “:这是URL路径的根符号。当你在中央控制器中使用”/”时,它表示该控制器是所有根URL的中央处理器。例如,如果你将中央控制器与”/”路径映射,则该控制器将处理所有以根URL开头的请求,如 “/app”,”/index” 等。
  2. “/*“:这个符号表示该控制器是所有子URL的中央处理器。也就是说,它将处理所有在根URL之后的部分。例如,如果将中央控制器与”/* “路径映射,则该控制器将处理所有以根URL开头的请求之后的部分,如 “/app/123″,”/index/abc” 等。

总结起来,”/”和” /* “的区别在于:

  • “/ “:表示该控制器是所有根URL的中央处理器
  • “/*”:表示该控制器是所有子URL的中央处理器

 

Spring MVC中,中央控制器(通常是一个DispatcherServlet)负责处理传入的HTTP请求,并将其路由到相应的控制器。在配置中央控制器时,通常会使用URL模式指定哪些URL应该由该Servlet处理。

/ 和 /* 在URL模式中是有区别的:

  1. / :

    • 这种配置意味着DispatcherServlet将只处理根路径(/)下的请求。其他路径的请求(如/static/下的静态资源请求)将不会被DispatcherServlet处理,因此静态资源可以正常访问。
    • 这是一个相对更为宽松的配置,它不会将所有请求都拦截到DispatcherServlet,只有根路径下的请求才会被拦截。
  2. / *:

    • 这种配置意味着DispatcherServlet将会处理所有的请求,包括对静态资源的请求,如CSS、JavaScript、图片文件等。这通常是我们不希望看到的,因为这会阻止静态资源的正常访问。
    • 使用这种配置时,通常需要额外配置来确保静态资源的正常访问,比如通过<mvc:resources/>标签

选择这两种配置时,需要根据你的具体需求来决定。通常,/配置更为灵活,因为它可以精确地控制哪些URL应该被DispatcherServlet处理,而/*配置则更为粗暴,它会将所有请求都拦截到DispatcherServlet。因此,一般来说,/是更常用和推荐的配置。

原文地址:https://blog.csdn.net/m0_65152767/article/details/134605119

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_6461.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注