如何在 Eclipse IDE 中设置 Spring MVC 应用程序

Spring MVC 框架能够分离模块,即模型视图控制器,并无缝处理应用程序集成。这使开发人员也可以使用普通的 java 类来创建复杂的应用程序。模型对象可以使用映射在视图和控制器之间传递。在本文中,我们将了解如何在 Eclipse IDE 中设置 Spring MVC 应用程序并了解如何制作应用程序。 
Spring MVC 框架由以下组件组成: 
 

  • 模型:模型可以是一个对象或对象的集合,基本上包含应用程序的数据。
  • 视图:视图用于以特定格式向用户显示信息。Spring 支持各种技术,如freemarkervelocitythymeleaf
  • 控制器:它包含应用程序的逻辑部分。@Controller注解用于将该类标记为控制器。
  • 前端控制器:它仍然负责管理 Web 应用程序的流程。DispatcherServlet 在 Spring MVC 中充当前端控制器。

要求 : 

  • Eclipse(EE 版本)。
  • Tomcat Apache 最新版本。

在 Eclipse IDE 中设置 Spring MVC 应用程序的步骤:
 

  • 第 1 步:转到文件菜单并单击新建-> Maven 项目。 
     

  • 第 2 步:然后在搜索栏中输入maven。单击Maven 项目,然后单击下一步。 
     

  • 第 3 步:默认设置应保持不变。单击下一步。 
     

  • 第 4 步:为 Web 应用程序选择maven-archetype-webapp并单击Next。 
     

  • 第 5 步:提供一些Group id以及Artifact id。 
     

  • 第 6 步:右键单击项目并转到Properties。 
     

  • 第 7 步:单击目标运行时。选择系统中已安装的apache tomcat。单击应用->应用并关闭。 
     

  • 第 8 步: java 文件应该在src/main/java文件夹中以构建 Spring MVC 项目。转到项目中的src文件夹。右键单击主菜单,然后单击新建->文件夹。 
     

  • 第 9 步:java作为文件夹名称。 
     

  • 第 10 步:在src/main/java文件夹下的com.geesforgeeks.springmvc 中创建一个 java 类。目录结构应如下所示。 
     

  • 使用基于 java 的配置实现 Spring Web MVC 应用程序的步骤:
    • 第 1 步:最初,我们需要创建一个pom.xml文件。该文件包含 spring 框架的 maven 依赖项,以便在项目中使用它们。
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.geeksforgeeks</groupId>
	<artifactId>SpringMVCjava</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

	<name>SpringMVCjava Maven Webapp</name>
	<!-- FIXME change it to the project's website -->
	<url>http://www.example.com</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.compiler.source>1.7</maven.compiler.source>
		<maven.compiler.target>1.7</maven.compiler.target>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>

		<!-- Spring dependencies -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>5.2.9.RELEASE</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>5.2.9.RELEASE</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>5.2.9.RELEASE</version>
		</dependency>


	</dependencies>

	<build>
		<finalName>SpringMVCjava</finalName>
		<pluginManagement><!-- lock down plugins versions to avoid using Maven 
				defaults (may be moved to parent pom) -->
			<plugins>
				<plugin>
					<artifactId>maven-clean-plugin</artifactId>
					<version>3.1.0</version>
				</plugin>
				<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
				<plugin>
					<artifactId>maven-resources-plugin</artifactId>
					<version>3.0.2</version>
				</plugin>
				<plugin>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.8.0</version>
				</plugin>
				<plugin>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>2.22.1</version>
				</plugin>
				<plugin>
					<artifactId>maven-war-plugin</artifactId>
					<version>3.2.2</version>
				</plugin>
				<plugin>
					<artifactId>maven-install-plugin</artifactId>
					<version>2.5.2</version>
				</plugin>
				<plugin>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>2.8.2</version>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>
  • 第 2 步:该项目包含一个web.xml文件,该文件接收来自客户端的所有请求。我们将使用WebInitializer.java代替 web.xml。getServletMappings()函数接收所有与'/' URL映射对应的请求。函数getServletConfigClasses()配置调度程序 servlet 并将处理程序传输到调度程序 servlet java 文件 MVCconfig.class。MVCconfig.java文件用于代替基于 java 的配置的调度程序 servlet。此类应扩展AbstractAnnotationConfigDispatcherServletInitializer 类以服务于基于 java 的配置中的 web.xml 文件的目的。该文件定义为:
package com.geeksforgeeks.web;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

	@Override
	protected Class<?>[] getRootConfigClasses() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	protected Class<?>[] getServletConfigClasses() {
		// TODO Auto-generated method stub
		return new Class[] { MVCconfig.class };
	}

	@Override
	protected String[] getServletMappings() {
		// TODO Auto-generated method stub
		return new String[] { "/" };
	}
}
  • 第 3 步:现在,我们需要创建一个 MVCconfig.java 文件。该文件用于代替调度程序 servlet 文件。使用@Configuration注释一个类表明该类可以被Spring IoC 容器用作bean 定义的来源。要启用注释控制器的自动检测,需要将组件扫描添加到配置中。它还给出了需要搜索控制器文件的基本包的路径(即 com.geeksforgeeks.web) 。此类应扩展WebMvcConfigurerAdapter类以服务于调度程序 servlet。
     
package com.geeksforgeeks.web;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
@ComponentScan({ "com.geeksforgeeks.web" })

public class MVCconfig extends WebMvcConfigurerAdapter {
}

  • 第 4 步:现在,我们需要定义一个控制器。控制器解释用户输入并将其转换为由视图表示给用户的模型。@RequestMapping注解用于将诸如“/greet”之类的 URL 映射到整个类或特定的处理程序方法上。我们创建一个ModelAndView类的对象。setViewName()表示要调用的视图,addObject()表示要添加到该对象的动态内容。
     
package com.geeksforgeeks.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class GreetController {

	@RequestMapping("/greet")
	public ModelAndView showview() {

		ModelAndView mv = new ModelAndView();
		mv.setViewName("result.jsp");
		mv.addObject("result", "GeeksForGeeks Welcomes " + "you to Spring!");
		return mv;
	}
}

  • 第 5 步:现在,我们需要为应用程序创建一个索引页面。它是点击给定 URL 时显示的页面。因此,我们创建index.jsp文件如下:
     
<html>
<body>
<h2>Hello World!</h2>
	<form action="greet">
		<input type="submit" value="Press to greet">
	</form>
</body>
</html>

  • 第 6 步:当按下上面定义的 index.jsp 中的press to greet按钮时,会打开result.jsp页面。所以,我们需要定义 result.jsp 文件: 
     
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1" isELIgnored="false"%>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="ISO-8859-1">
		<title>Insert title here</title>
	</head>
	<body>
	
		<h1>${result}</h1>
		
	</body>
</html>

当 index.jsp 打开时:

按下按钮时:

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值