Spring MVC入门以及实现Hello World实例

Java Spring MVC入门(三)—— Hello World 为何Hello World很重要 感谢大家看了我之前的两篇文章,终于要见大家期待已久的hello world了,hello world大家并不陌生,几乎所有的编程语言都有hello world,为何会这样?为何几乎所有编程语言都有hello world? 因为你一旦会写了hello wor... 阅读详情

简介

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。它是一种基于Java的实现了MVC设计模式的、请求驱动类型的、轻量级Web框架。Spring MVC 框架并不知道使用的视图,所以不会强迫开发者只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、过滤器以及处理程序对象的角色,这种分离让它们更容易进行定制。

Spring MVC主要组件

DispatcherServlet:前端控制器(不需要程序员开发)
作用:接收请求,响应结果,相当于转发器,有了DispatcherServlet就减少了其它组件之间的耦合度;

HandlerMapping:处理器映射器(不需要程序员开发)
作用:根据请求的url来查找Handler;

HandlerAdaptor:处理器适配器
注意:在编写Handler的时候要按照HandlerAdaptor的要求规则去编写,这样适配器HandlerAdaptor才可以正确地去执行Handler;

Handler:处理器(需要程序员开发);

ViewResolver:视图解析器(不需要程序员开发)
作用:进行视图的解析,根据视图逻辑名解析成真正的视图View;

View:视图(需要程序员开发jsp)
作用:View是一个接口,它的实现类支持不同的视图类型(jsp、freemarker、pdf等)。

Spring MVC核心架构与流程

核心构架如图所示:
在这里插入图片描述
流程:
1,浏览器发送请求到前端控制器DispatcherServlet
2,前端控制器DispatcherServlet再把请求转送到处理器映射器HandlerMapping,HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象、多个HandlerInterceptor拦截器)
3,从DispatcherServlet到HandlerAdapter,处理器适配器将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器
4,HandlerAdapter到处理器Handler调用相应功能处理方法,并返回一个ModelAndView对象(包含模型数据、逻辑视图名)
5,前端控制器DispatcherServlet请求视图解析器ViewResolver进行视图解析
6, 视图解析器将把逻辑视图名解析为具体的View,Model部分是业务对象返回的模型数据,View部分为逻辑视图名
7,前端控制器进行视图渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构
8,前端控制器向用户响应结果
(在流程中前端控制器DispatcherServlet相当于一个中央控制器,接收请求,转发请求,起着重要的作用)

实例:利用登录完成Hello World

创建Maven项目

创建好maven项目后解决项目报错问题

引入pom.xml的依赖,改变web.xml的版本

依赖:

<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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.hsl</groupId>
	<artifactId>s_mvc</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>s_mvc Maven Webapp</name>
	<url>http://maven.apache.org</url>
	<!-- 使用 <properties>标签可控制所以spring的版本 在调用时使用${spring.version}即可调用, 以方便日后进行版本修改 -->
	<properties>
		<spring.version>4.3.0.RELEASE</spring.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
		</dependency>
	</dependencies>

	<build>
		<finalName>s_mvc</finalName>
		<!--插件-->
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.7.0</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
		</plugins>

	</build>
</project>

web.xml版本:

<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_3_1.xsd"
         version="3.1">

</web-app>

创建登录jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录</title>
</head>
<body>
<form action="Login" method="post">
<div>
账号:<input type="text" name="username"/><br/>
密码:<input type="text" name="password"/><br/>
<input type="submit" value="登录"/>
</div>
</form>

</body>
</html>

配置Spring-mvc.xml核心配置文件

(创建在WEB-INF下)

<?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:p="http://www.springframework.org/schema/p"
	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-4.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

	<!-- 配置controller的扫描包,注意是自己创建的包 -->
	<context:component-scan base-package="com.hsl" />

	<!-- 配置处理器映射器 -->
	<bean
		class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />

	<!-- 配置处理器适配器 -->
	<bean
		class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />

	<!-- 配置注解驱动,相当于同时使用最新处理器映射器和处理器适配器,对json数据的响应提供支持 -->
	<mvc:annotation-driven />

	<!-- 配置视图解析器 -->
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>
</beans>

改变web.xml的配置

<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_3_1.xsd"
         version="3.1">

  <display-name>Archetype Created Web Application</display-name>
  <!--这是登录界面-->
  <welcome-file-list>
    <welcome-file>/login.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
      <servlet-name>dispatcher</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
          <init-param>
             <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/spring-mvc.xml</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
      <servlet-name>dispatcher</servlet-name>
      <url-pattern>/</url-pattern>
  </servlet-mapping>
  <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/spring-mvc.xml</param-value>
  </context-param>
  <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
</web-app>

创建建立control类

package com.hsl.control;

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

@Controller
public class ManygeSystem {
	
	@RequestMapping("/Login") 
	public ModelAndView  hello(@RequestParam("username") String userName, 
			 @RequestParam("password") String passWord) {
		//System.out.println(userName);
		ModelAndView mv= new ModelAndView("index");//跳转到指定视图
		
		 mv.addObject("name", userName);
		return mv;
	}
}

特别注意:
一定别忘了写@Controller注解,否则会报如图所示的错
在这里插入图片描述

创建测试页面

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>测试</title> 
</head> 
<body>
     <h2>Hello World!欢迎${name}你的到来!</h2>
</body> 
</html>



测试结果

登录界面:
在这里插入图片描述
测试结果:
在这里插入图片描述

Spring Security 系列教程-Hello World Spring Security 系列教程一. Hello WorldSpring Security,是Spring提供的权限控制框架,配合Spring Boot,通过简单的配置,就可以实现强大的功能。本次教程,是Spring Security 系列教程的开端,将实现一个spring security的 “hello world”。 本次教程,将使用到以下的框架:Spring Boot Sprin 阅读详情

相关推荐

Spring Boot 笔记

**一、**Spring Boot 入门 1、Spring Boot 简介 简化Spring应用开发的一个框架; 整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案; 2、微服务 2014,martin fowler 微服务:架构风格(服务微化) 一个应用应该是一组小型服务;可以通过HTTP的方式进行互通; 单体应用:ALL IN ...

sdzhangshulong的博客 1103

一,springMVC入门程序hello world

一,搭建环境: 1,建立webapp项目,在main下面建立java,resources文件,并设为源文件。 图一: 图二: 图三: 图四: 图五: 2,在pom.xml的文件中导入SpringMVC需要的配置 <properties> <project.build.sourceEncoding>UTF-8</project.build.sour...

weixin_44841312的博客 2586

Spring Boot 2从入门到入坟 | 基础入门篇:Hello World入门

在这篇文章中,我们就来编写一个Spring Boot的Hello World入门程序,来体会一下Spring Boot的用法。 系统要求 Spring Boot对我们的系统是有要求的,即Java必须是8及以上版本,以及Maven必须是3.3及以上版本。当然,这也在Spring Boot的官方文档里面说的很清楚了,下面给出Spring Boot官方文档的地址。 Spring Boot官方文档的地址:https://docs.spring.io/spring-boot/docs/current/referen

李阿昀的博客 2572

Spring MVC 框架入门-Hello World 实例

Spring MVC 框架入门-Hello World 实例下面的例子是如何使用Spring MVC框架,编写一个简单的web Hello World应用程序。开发工具是用的 Eclipse IDE,按照以下步骤使用Spring Web框架开发动态Web应用程序。目录Spring MVC 框架入门-Hello World 实例 目录 配置webxml 配置HelloWeb-Servletxml 编写

自由行走 1198

Spring MVC入门实战:Hello World详解

Spring MVC 是 Spring 框架的重要组成部分,专为构建灵活、可维护的 Web 应用程序而设计,遵循经典的 MVC(Model-View-Controller)架构模式。该模式将业务逻辑(Model)、用户界面(View)和用户输入处理(Controller)分离,提升了代码的可读性与可测试性。

weixin_42298254的博客 1161

深入解析MTK DRM初始化流程:从KMS模块到组件框架

本文深入解析了联发科(MTK)平台上DRM显示框架的初始化流程。从内核模块加载、Component框架管理依赖,到核心的mtk_drm_bind函数构建KMS对象(CRTC、Plane、Encoder、Connector),最终完成DRM设备注册并创建用户空间接口。文章结合调试经验,为开发者梳理了从驱动启动到屏幕点亮的完整路径与关键排查点。

onion的博客 765

springmvc实现一个简单的Hello World

步骤一:首先先创建一个project,创建一个project就是一个工作空间,在这里就是创建一个maven的工作空间 步骤二:你要选择maven然后按照下面图片 的指示操作就可以了---》最后点击next按钮 步骤三:填写公司名、项目名:   步骤四:这里如何设置自己的maven的本地仓库的位置   步骤五:点击Finish   步骤六:配置Tomcat ...

Yang_Hui_Liang的博客 1026

写一个b站爬虫(思路)

part 0 安装 scrapy, requests part 1 信息获取 打开番剧索引链接(https://www.bilibili.com/anime/index/) F12控制台,选中NETWORK,来到xhr文件,我们可以找到了存放番剧json的地方

kou的博客 484

SpringBoot入门 - 对Hello world进行MVC分层

三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。我们这里设计一个常见的用户增删查改项目,通常来说对应的包结构如下。

DeveloperFire的博客 429

AT32F435/437开发实战:把SD卡变成U盘的完整指南(含源码解析)

本文提供了基于AT32F435/437微控制器将SD卡改造为U盘的完整实战指南。通过深入解析USB MSC协议与SDIO驱动的协同工作原理,详细介绍了硬件设计要点、软件架构融合、核心源码解析以及从编译到文件传输的完整调试流程,帮助开发者实现可靠的大容量存储设备扩展。

weixin_29159127的博客 409

【深度学习新浪潮】Qwen门控注意力斩获NeurIPS 2025最佳论文!技术解析与代码实现

Qwen团队的门控注意力机制获得NeurIPS 2025最佳论文,不仅是中国AI研究的重大突破,更是大模型架构创新的重要里程碑。这项研究证明,通过巧妙的架构设计,可以在不显著增加计算成本的前提下,大幅提升模型性能。正如论文所展示的,用一个极其简单的改动,同时解决了Transformer架构中的多个核心问题,这正是优秀研究的价值所在。该技术已成功应用于Qwen3大模型,为通义千问系列产品的性能提升提供了坚实的技术支撑。轻量化大模型设计多模态统一架构专用领域大模型优化边缘计算场景部署。

专注:太空算力、AI infra、异构调度、大模型成本工程 569

IDEA建立Spring MVC Hello World 详细入门教程

目录通过IDEA新建Spring MVC项目先创建项目,从封面或者主窗体都可以创建“New Project”窗口,选择附加的类库"Spring MVC"选择项目名称和存放的位置最后点击Finish按钮,IDEA会帮你下载需要的类库创建完成后项目有这些文件,主要是三个xml文件+一个index.jsp这个jsp文件最后肯定是不要的,不过也先不要慌着删设置运行、调试相关配置项目建好后,并不能直接运行,Run和Debug菜单都是灰色不能点击的要需要做一下运行和调试的相关配置。

CHIKA2333的博客 969

【雕爷学编程】Arduino动手做(111)---震动提醒模块

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。

雕爷学编程 1897

SpringBoot框架个人总结学习

1.1什么是Spring Boot Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 J2EE)的轻量级代替品。无需开发重量级的 Enterprise JavaBean(EJB),Spring 为企业级Java 开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java 对象(Plain Old Java Object,POJO...

gbcxnull的博客 4708

Qwen-Image(阿里通义千问)技术浅析(一)

Qwen-Image(阿里通义千问多模态模型)是阿里巴巴推出的视觉-语言多模态大模型,能够理解图像内容并完成复杂的跨模态任务。

m0_75253143的博客 673

SwinTransformer 改进:SSPCAB模块(2024最新改进方法)

SSPCAB(Spatial Pyramid Pooling with Channel Attention Block)是2024年提出的一种新型神经网络架构改进方法,专注于在保持高精度的同时显著降低计算复杂度和参数量。该方法通过创新的空间金字塔池化与通道注意力机制的结合,实现了网络结构的紧凑化和运算效率的大幅提升。核心创新点1. 混合空间金字塔池化(Hybrid Spatial Pyramid Pooling, HSPP)多尺度动态核池化:根据输入特征图尺寸动态调整池化核大小和步长交叉级联结构。

Henry的博客 1305

零基础搭建SpringMVC4项目

转载地址http://blog.youkuaiyun.com/defonds/article/details/48031593 作者各必备工具的版本如下: Tomcat:apache-tomcat-7.0.63 (下载链接)Java EE - Eclipse:Luna Service Release 1 v4.4.1 (下载链接)Spring:4.2.0.RELEASE (无须下载)JDK:1

u011915440的专栏 745

【数据集】未来不同情景下预测数据:如人口、土地利用等

未来不同情景下预测数据:如人口、土地利用等

WW、forever的博客 2994

spring mvc简单实例 hello word

今天把之前做的spring mvc实例记录一下 也当给自己复习复习 因为之前springmvc是用myeclipse做的 但是 myeclipse是我用的破解版 这个破解版有一个缺陷 虽然时间可以一直用但是jdk版本 最高只能到1.6版本 现在由于用的是idea 所以我把jdk版本改成了1.8 这样myeclipse估计就运行不起来了…但是没没关系 代码正确就行 主要是把代码记录一下然后复习复习 ...

weixin_44831245的博客 242

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Spring MVC 简单的hello world

一、项目搭建 1、可以在新建项目的使用SpringMVC框架。或者创建一个简单的项目之后再用Add Framework Support来添加SpringMVC框架。 2、删除自动生成的lib的jar包,使用pom文件来进行管理包。目录结构如下图。 3、pom文件。加载完成之后才能进行下一步。 <?xml version="1.0" encoding="UTF-8"?&g...

qq_36511401的博客 1万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

IDEA 使用Spring Boot框架实现hello world

一、下载IDEA 1.windows版本官网下载链接Thank you for downloading IntelliJ IDEA! (jetbrains.com) 2.下载完成以后运行安装,安装好了之后可以点击JDaccount 注册一个账号,之后登录账号,选择start trial就可以30天试用 二、下载java和maven并配置环境变量 网上教程都挺多的,这里不再多提 三,开启IDEA的helloworld 1.在idea里面文件(file),新建一个项目,在左侧选择spring in

lkj8546的博客 3374

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Hello World Spring MVC Hello World

In this example, we will build a hello world web application using the Spring MVC framework. Spring MVC is one of the most important modules of the Spring framework. It builds on the powerful Spring Io

543

Spring MVC Hello World 例子

Spring MVC Hello World 例子 W3CShool上的一个小例子折腾了两三天,无论如何不能显示web页面,说一下详细实现过程。 一、运行环境: 1、操作系统:windows 10 x64 2、eclipse版本: Version: 2019-06 (4.12.0) Build id: 20190614-1200 3、Web服务器:apache-tomcat-8.5.47 4、co...

558

Spring MVC hello world example

In this tutorial, we will show you a Spring MVC hello world web application.Technologies used : Spring 2.5.6 JDK 1.6 Eclipse 3.6 Maven 3 1. MVC BasicIn Spring MVC web application, it consists of 3 stan

qq_26847293的博客 515

Spring MVC之基于配置的Hello World

基于配置的spring mvc 之Hello World示例。

残缺的孤独 1223

Create Hello World application in Spring 3.0 MVC

Welcome to the Part 2 of Spring 3.0 MVC Series. In previous article we went through the Introduction of Spring MVC 3.0 framework, its request processing lifecycle and architecture diagram. In this art...

不羁的风 255
上一篇: 初识IDEA
下一篇: 使用vue-cli来搭建vue项目
water_java
博客等级 码龄7年 9粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值