0
点赞
收藏
分享

微信扫一扫

Java 新手如何使用Spring @RequestMapping 注解?本文手把手教你!

Java 新手如何使用Spring @RequestMapping 注解?本文手把手教你!_html

Spring 中最重要的注解之一是@RequestMapping 注解,它用于将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法。在 Spring MVC 应用程序中,DispatcherServlet(前端控制器)负责将传入的 HTTP 请求路由到控制器的处理程序方法。配置 Spring MVC 时,您需要指定请求和处理程序方法之间的映射。为了配置Web请求的映射,我们使用@RequestMapping注释。@RequestMapping 注释可以应用于控制器中的类级别和/或方法级别。类级注释将特定的请求路径或模式映射到控制器上。然后,您可以应用其他方法级注释以使映射更具体到处理程序方法。那么让我们通过示例来了解方法级别和类级别的@RequestMapping注解。 

要求: 

  • Eclipse(EE版)/STS IDE
  • Spring JAR 文件
  • Tomcat Apache最新版本

方法级别的@RequestMapping注解

设置项目

注意:我们将在该项目中使用 Spring Tool Suite 4 IDE。请参考这篇文章在本地机器上安装STS如何下载并安装Spring Tool Suite (Spring Tools 4 for Eclipse) IDE? 

步骤 1:

在 STS IDE 中创建动态 Web 项目。

步骤 2:

从此链接下载 spring JAR 文件,然后转到src > main > webapp > WEB-INF > lib文件夹并粘贴这些 JAR 文件。

步骤3:

文章Apache Tomcat服务器配置并使用您的应用程序配置tomcat服务器。 

配置调度程序 Servlet

建议阅读Spring 中的 Dispatcher Servlet,因为它是理解本主题的先决条件。现在我们将使用 Spring MVC 应用程序配置 Dispatcher Servlet。 

步骤4:

进入src > main > webapp > WEB-INF > web.xml文件, web.xml文件的完整代码如下:

web.xml 

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

<display-name>myfirst-mvc-project</display-name>
<welcome-file-list>
	<welcome-file>index.html</welcome-file>
	<welcome-file>index.jsp</welcome-file>
	<welcome-file>index.htm</welcome-file>
	<welcome-file>default.html</welcome-file>
	<welcome-file>default.jsp</welcome-file>
	<welcome-file>default.htm</welcome-file>
</welcome-file-list>

<absolute-ordering/>

<servlet>
	<!-- Provide a Servlet Name -->
	<servlet-name>frontcontroller-dispatcher</servlet-name>
	<!-- Provide a fully qualified path to the DispatcherServlet class -->
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
	<!-- Provide a Servlet Name that you want to map -->
	<servlet-name>frontcontroller-dispatcher</servlet-name>
	<!-- Provide a url pattern -->
	<url-pattern>/student.com/*</url-pattern>
</servlet-mapping>

</web-app>

第 5 步:

现在转到  src > main > webapp > WEB-INF 并创建一个 XML 文件。实际上,这是一个像 beans.xml 文件一样的 Spring 配置文件。并且文件名必须是这种格式 YourServletName-servlet.xml

 例如,对于该项目,文件名必须是 frontcontroller-dispatcher-servlet.xml

因此,您可以创建一个 Spring 配置文件,也可以创建一个简单的 XML 文件,在该文件中添加以下代码行。因此, frontcontroller-dispatcher-servlet.xml的代码如下所示。 

frontcontroller-dispatcher-servlet.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
		https://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.student.controllers"></context:component-scan>

</beans>

创建您的控制器类

第 6 步:

现在,让我们创建一些控制器。转到 src/main/java 并根据您的选择创建一个新的控制器包(例如 com.student.controllers)。在其中创建一个 Java 类并将该类命名为 DemoController。现在如何告诉 Spring 这是我们的控制器类。所以我们要告诉 Spring 的方法是用@Controller 注解来标记它。


@Controller
public class DemoController {}

注意: Spring 会自动初始化带有 @Controller 注解的类,并将该类注册到 spring 容器中。

 

现在让我们在 Controller 类中创建一个简单的方法,并在该方法之前使用 @RequestMapping 注释,如下所示。

// Annotation
@RequestMapping("/hello")

// Method  
public String helloWorld() 
{
    return "Hello World!";
}

这就是方法级别@RequestMapping注解的示例。  

现在我们来了解一下注释。@RequestMapping(“/hello”),那么它是什么意思呢?这一行的意思是,在 URL 中,如果有人点击student.com/hello,那么这个特定的方法将被执行,并且它将执行在该特定方法中编写的操作。

 

文件:DemoController.java

package com.student.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class DemoController {
	
	@ResponseBody
	@RequestMapping("/hello")
	public String helloWorld() {
		return "Hello World!";
	}

}

运行 Spring MVC 控制器

步骤 7:

要运行 Spring MVC 应用程序,请右键单击您的项目 > 运行方式 > 在服务器上运行,然后运行您的应用程序,如下图所示。 

Java 新手如何使用Spring @RequestMapping 注解?本文手把手教你!_MVC_02

之后,使用以下 URL 运行您的控制器,如下图所示。图像中提到了所有其他细节。 

http://localhost:8080/myfirst-mvc-project/student.com/hello

Java 新手如何使用Spring @RequestMapping 注解?本文手把手教你!_MVC_03

执行:

类级别的 @RequestMapping 注解将特定的请求路径或模式映射到控制器上。然后,您可以应用其他方法级注释以使映射更具体到处理程序方法。让我们通过一个示例项目来理解这一行。“设置项目”和“配置 Dispatcher Servlet ”步骤是相同的。只需在“创建您的控制器类”和“运行您的 Spring MVC 控制器”中进行更改即可。


创建您的控制器类

因此,在这个示例中,我们将创建多操作控制器。MultiActionController 是一个控制器实现,允许同一个类处理多种请求类型。这意味着在一个控制器类中我们可以有许多类似这样的处理程序方法。

DemoController.java 

package com.student.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class DemoController {
	
	@ResponseBody
	@RequestMapping("/hello")
	public String helloWorld() {
		return "Hello World!";
	}
	
	@ResponseBody
	@RequestMapping("/geeksforgeeks")
	public String welcomeGfgMessage() {
		return "Welcome to GeeksforGeeks";
	}

}

现在让我们在 DemoController 之前使用类级别的 @RequestMapping 注解,如下所示。所以我们修改后的DemoController.java文件如下

 

文件:DemoController.java

// Java Program to Illustrate DemoController Class

package com.student.controllers;

// Importing required classes
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

// Annotations
@Controller
@RequestMapping("/boys")
// Class
public class DemoController {

	@ResponseBody
	@RequestMapping("/hello")

	// Method
	public String helloWorld()
	{
		return "Hello World!";
	}

	// Annotation
	@ResponseBody
	@RequestMapping("/geeksforgeeks")

	// Method
	public String welcomeGfgMessage()
	{
		return "Welcome to GeeksforGeeks";
	}
}

是的,我们也可以这样做。但我们需要更改 URL 才能运行这些请求。 

 

运行您的 Spring MVC 控制器代码

要运行 Spring MVC 应用程序,请右键单击您的项目 > 运行方式 > 在服务器上运行,然后运行您的应用程序,如下图所示。 

 

Java 新手如何使用Spring @RequestMapping 注解?本文手把手教你!_xml_04

 

现在,如果您使用“ http://localhost:8080/myfirst-mvc-project/student.com/hello ” URL 来运行控制器,那么您将收到以下警告,并且不会有任何响应

WARNING: No mapping for GET /myfirst-mvc-project/student.com/hello

为了运行你的控制器,你必须点击以下 URL

http://localhost:8080/myfirst-mvc-project/student.com/boys/hello

同样,对于welcomeGfgMessage()处理程序方法,您必须点击以下URL

http://localhost:8080/myfirst-mvc-project/student.com/boys/geeksforgeeks

举报

相关推荐

0 条评论