1 准备开发环境和运行环境

依赖 jar 包下载,如下图所示:

  

2 前端控制器的配置

在我们的web.xml中添加如下配置:

<!-- The front controller of this Spring Web application, responsible for handling all application requests -->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置 DispatcherServlet 的一个初始化参数:配置 SpringMVC 配置文件的位置和名称 -->
<!-- 默认的配置文件格式:/WEB-INF/<servlet-name>-servlet.xml -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <!-- Map all requests to the DispatcherServlet for handling -->
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

  1.load-on-startup:

    1)load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其 init() 方法)。

    2)它的值必须是一个整数,表示servlet应该被载入的顺序

    3)当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;

    4)当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。

    5)正数的值越小,该servlet的优先级越高,应用启动时就越先加载。

    6)当值相同时,容器就会自己选择顺序来加载。

  所以,<load-on-startup>x</load-on-startup>,中 x 的取值1,2,3,4,5代表的是优先级,而非启动延迟时间。

  2.url-pattern:表示哪些请求交给 Spring Web MVC 处理, “/” 是用来定义默认servlet映射的。也可以如 “*.html” 表示拦截所有以html为扩展名的请求。

自此请求已交给Spring Web MVC框架处理,因此我们需要配置Spring的配置文件,

默认DispatcherServlet会加载WEB-INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件。

3 在Spring配置文件中配置ViewResolver

<!-- 配置自定义扫描包 -->
<context:component-scan base-package="com.cqvie" /> <!-- 配置视图解析器:如何把 handler 方法返回值解析为实际的物理视图 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>

    InternalResourceViewResolver:用于支持Servlet、JSP视图解析;

prefix 和 suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),比如传进来的逻辑视图名为hello,则该该jsp视图页面应该存放在“WEB-INF/jsp/hello.jsp”;

4 开发处理器/页面控制器

package com.cqvie.handler;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
public class HelloWorld { /**
* 1.使用 @RequestMapping 注解来映射请求的 URL
* 2.返回值会通过视图解析器解析为实际的物理视图,对于 InternalResourceViewResolver 视图解析器,会做如下的解析:
* 通过 prefix + returnVal + suffix 这样的方式得到实际的物理视图,然后做转发操作
*
* @return
*/
@RequestMapping("/helloworld")
public String sayHello() {
System.out.println("Hello World!");
return "success";
} }
org.springframework.stereotype.Controller:页面控制器/处理器必须实现Controller接口;

5 开发视图页面

  在 /WEB-INF/views/ 目录下新建 jsp 页面,命名为 success.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>Insert title here</title>
</head>
<body>
<h3>Hello World!</h3>
</body>
</html>

6 启动服务器运行测试

  通过请求:http://localhost:8080/springmvc/helloworld,如果页面输出“Hello World! ”就表明我们成功了!

SpringMVC 之 Hello World 入门的更多相关文章

  1. Maven+SpringMVC+Dubbo 简单的入门demo配置

    转载自:https://cloud.tencent.com/developer/article/1010636 之前一直听说dubbo,是一个很厉害的分布式服务框架,而且巴巴将其开源,这对于咱们广大程 ...

  2. SpringMvc核心流程以及入门案例的搭建

    1.什么是SpringMvc Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 M ...

  3. [jbdj]SpringMVC框架(1)快速入门

    1)springmvc快速入门(传统版) 步一:创建springmvc_demo一个web应用 步二:导入springioc,springweb , springmvc相关的jar包 步三:在/WEB ...

  4. SpringMVC学习记录一——入门介绍和入门程序

    1       springmvc框架 1.1      什么是springmvc springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合. spr ...

  5. springmvc源码分析----入门看springmvc的加载过程

    接上一篇我们写的入门---http://www.cnblogs.com/duanxiaojun/p/6591448.html 今天从这个门里进去我们看springmvc是如何在容器启动的时候将各个模块 ...

  6. SSM框架之SpringMVC(1)入门程序

    SpringMVC(1) 1.三层架构和MVC 1.1. 三层架构 咱们开发服务器端程序,一般都基于两种形式,一种C/S架构程序,一种B/S架构程序 使用Java语言基本上都是开发B/S架构的程序,B ...

  7. SpringMVC的注解开发入门

    1.Spring MVC框架简介 支持REST风格的URL 添加更多注解,可完全注解驱动 引入HTTP输入输出转换器(HttpMessageConverter) 和数据转换.格式化.验证框架无缝集成 ...

  8. SpringMVC简单搭建与入门

    SpringMVC框架是spring框架的一个模块.springmvc和spring无需要通过中间整合层进行整合. 学习的时候,先了解一下流程至关重要,下面,简单介绍一下流程. 源码下载:http:/ ...

  9. springmvc源码分析——入门看springmvc的加载过程

    本文将分析springmvc是如何在容器启动的时候将各个模块加载完成容器的创建的. 我知道在web.xml文件中我们是这样配置springmvc的: 可以看到,springmvc的核心控制器就是Dis ...

  10. SpringMVC源码阅读入门

    1.导入 Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring框架中.正式的名称“Spring Web MVC”来自于它的源模块(spring-w ...

随机推荐

  1. Grafana展示DNS解析延时

      首先一个完整的监控肯定会包含三个部分:1.数据收集部分.2.数据存储部分.3.数据展示部分,今天我也是从这三个方面来实现这个监控的. 数据收集(SHELL 脚本)   没有想到比较好的方法来采集数 ...

  2. 深入研究java.lang.Process类

    一.概述 Process类是一个抽象类(所有的方法均是抽象的),封装了一个进程(即一个执行程序).       Process 类提供了执行从进程输入.执行输出到进程.等待进程完成.检查进程的退出状态 ...

  3. Git小技巧:VIM中如何填写注释信息

    使用Git命令行工具的时候,经常一不小心就进入VIM界面,例如git commit没有填写任何描述信息.对于习惯了Windows可视化操作界面的用户,可能一下子会觉得无所适从,只能在键盘上一顿短按.下 ...

  4. c# 控制台应用程序怎么隐藏黑窗口

    class Program     {         [DllImport("user32.dll", EntryPoint = "ShowWindow",  ...

  5. 解决微服务网关Ocelot使用AddStoreOcelotConfigurationInConsul后请求404问题

    一个小插曲,最近研究 netcore 微服务网关,在使用AddStoreOcelotConfigurationInConsul将配置存到consul后,任何经过网关的请求都出现404,并且没有任何有用 ...

  6. 双缓冲队列解决WPF界面卡死

    工作中的项目,CS客户端会通过MQ接收前端设备发送的信息,之前测试的时候,由于测试的数据不大,没有进行压力测试,软件可以正常工作,随着项目现场设备数量的增加,CS客户端从MQ中订阅的数据量不断增加,最 ...

  7. 【BZOJ3238】[AHOI2013]差异

    [BZOJ3238][AHOI2013]差异 题面 给定字符串\(S\),令\(T_i\)表示以它从第\(i\)个字符开始的后缀.求 \[ \sum_{1\leq i<j\leq n}len(T ...

  8. 使用原生方法从kafka消费消息

    kafka最早是linkedin开发的一套高性能类队列结构,具有发布—订阅功能.现在是apache的项目之一.支持很多种客户端从其中进行consume,网上也有许多第三方的客户端(注1),但下面我们只 ...

  9. string的函数的学习

    1.string类型的构造函数和对象的定义 string s3 : 把string s2 拷贝的 s3 string s4 : 把数组首地址或者字符串首地址strArr 从0开始截取到第n个字母 st ...

  10. Cordova - Windows版本图形界面管理工具,告别命令行输入方式!

    Cordova本身提供的是命令行管理工具,并没有提供图形界面管理工具,虽然命令行管理工具可以完成所有Cordova管理,但是对于我这种懒蛋,可真不希望每次都输入命令,而且我更担心一旦输错一个字符,命令 ...