1. Spring MVC 简介
Spring MVC 是 Spring 基于 MVC 设计理念提供的一个表现层的 Web 框架。是目前主流的MVC 框架之一。Spring MVC 通过一套 MVC 注解,让 pojo 成为处理请求的控制器,无需实现任何接口。比其他 MVC 框架更具扩展性和灵活性。
2. 环境搭建
本节介绍一个简单的 springMVC 环境搭建,输出一个 Hello World。
2.1 创建工程
选用一个 webapp 模板,这个模板会帮我们创建好 webapp/WEB-INF 目录和 web.xml 文件。
如果不使用模板,也可以自己创建目录和文件。

本测试功工程的完整目录如下:

2.2 导入 jar 包
在 pom.xml 中加入配置:

<dependencies>
<!--日志文件-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
<!--spring 相关包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.11.RELEASE</version>
</dependency>
</dependencies>

在 resources 目录下创建 log4j.properties 文件,配置如下:

 log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

2.3  编写 Spring  配置文件

在 WEB-INF 中创建 springMVC-servlet.xml 和 applicationContext.xml 两个文件。IDEA 可以使用模板自动创建文件,Add Framewoek Support 的时候选择 SpringMVC 即可。
springMVC-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"
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.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">
<!-- 启动注解,注册服务-->
<mvc:annotation-driven/>
<!-- 启动自动扫描 -->
<context:component-scan base-package="controller">
<!-- 制定扫包规则 ,只扫描使用@Controller 注解的 JAVA 类 -->
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
</beans>

applicationContext.xml 暂时先不用写东西。

2.4  配置 web.xml

 <? xml version="1.0" encoding="UTF-8" ?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<!--配置 listener,在启动 Web 容器的时候加载 Spring 的配置-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--将欢迎页设置成 index.html-->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<!--配置 DispatcherServlet -->
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>

web 项目启动的时候,加载 spring 的默认路径是"/WEB-INF/applicationContext.xml,在WEB-INF 目录下创建的 xml 文件的名称必须是 applicationContext.xml。如果是要自定义文件名可以在 web.xml 里加入 contextConfigLocation 这个 context 参数,如下:

 <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-*.xml</param-value>
</context-param>

上面的配置可以加载 resources 文件夹下 spring-开头的 xml 文件。DispatcherServlet 在 SpringMVC 中负责流程控制和职责分派,如文件上传、
请求映射等。其中<servlet-name>中的值是和配置文件相对应的,如此处<servlet-name>的值是 springMVC,对应配置文件的名字就叫 springMVC-servlet.xml,如图:

如果想要使用其它文件名,可以通过配置 contextConfigLocation,如下:

<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--指定其他文件名-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/applicationContext.xml</param-value>
</init-param>
</servlet>

2.5 编写 controller
在 java 文件夹下新建 controller 文件夹,创建 IndexController.java

 @Controller
public class IndexController {
//RequestMapping 设置访问路径是 index.html
@RequestMapping("index.html")
public String showIndex() {
//返回 index.jsp 页面
return "index.jsp";
}
}

SpringMVC 中使用@Controller 注解声明控制器,所有接受请求的方法都要写在@Controller 注解的类中。@RequestMapping 用来设置请求的 url 地址。

2.6  页面 index.jsp

默认工程创建的时候在 webapp 下就包含 index.jsp:

 <html>
<body>
<h2>Hello World!</h2>
</body>
</html>

运行项目。访问 http://localhost:8080/index.html

注意访问的是 index.html 不是 index.jsp

springMVC整理01--搭建普通的工程的更多相关文章

  1. Spring+Mybatis+SpringMVC+Maven+MySql搭建实例

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何使用Maven来搭建Spring+Mybatis+SpringMVC+M ...

  2. springMVC学习篇 - 搭建环境及关键点

    springMVC是spring家族中一个重要的组件,和struts一样作为一套前台框架被广泛的应用于各种项目. 之前在很多项目组都用到springMVC,只感觉很强大,但是对这套框架的知识了解比较少 ...

  3. SpringMvc学习-环境搭建

    最近在学习SpringMVC,首先来说说SpringMVC项目的搭建. 1.SpringMVC简介 spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级W ...

  4. Springmvc+Spring+Hibernate搭建方法

    Springmvc+Spring+Hibernate搭建方法及example 前面两篇文章,分别介绍了Springmvc和Spring的搭建方法,本文再搭建hibernate,并建立SSH最基本的代码 ...

  5. 【转】Spring+Mybatis+SpringMVC+Maven+MySql搭建实例

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何使用Maven来搭建Spring+Mybatis+SpringMVC+M ...

  6. 搭建Android工程的步骤及其第一个安卓程序

    1.安卓系统架构 1>底层是Linux系统 2>函数库层 由C或C++写的 3>Application frameWork应用的框架层 4>顶层是应用层 2.JVM与DVM介绍 ...

  7. 搭建Maven工程的时候,做单元测试,报ClassNotFoundException

    搭建Maven工程的时候报错 问题原因是在spring.xml中配置的  classpath:config.properties  没有在工程中创建.

  8. springmvc环境的搭建

    最近应公司要求,用了2天时间学了springmvc的搭建,就简单总结一下: springmvc和struts2的比较,因为我是学过struts的,它们都是基于mvc模式而设计的web层框架 它们最大的 ...

  9. Springmvc+Spring+Hibernate搭建方法及实例

    Springmvc+Spring+Hibernate搭建方法及实例  

随机推荐

  1. 人生就像一条加速奔向死亡的贪吃蛇【winform版】

    群里聊天的时候,一个学妹说她在做贪吃蛇的小作业,于是昨晚(5.20无聊只好撸代码/(ㄒoㄒ)/~~)花了2个小时撸了一个出来,早上又花了些时间完善功能,就有了这个还算比较完善的版本,当然代码结构比较混 ...

  2. OSGI 环境搭建

    第一步,打开eclipse,新建一个plugin工程,如下图所示 第二步,输入工程的名字,并且在Target Platform中选择an OSGI framework中选中standard,如下图所示 ...

  3. python全栈开发慕课网

    前端 web框架: flask:简单.轻量.灵活性大 (官网,stck overflowa); 目录结构:配置,发布,资源,日志,测试... 前后端协作:整体发布,前后端分离发布 django:简单, ...

  4. poj2449 第k短路

    题目链接 学习博客:https://blog.csdn.net/Z_Mendez/article/details/47057461 k短路没有我想象的那么难,还是很容易理解的 求s点到t点的第k短路径 ...

  5. elasticSearch聚合sum查询

    有时需要统计一段时间内,订单的总金额.类似于sql的sum,针对某一字段求和.这就涉及到es的聚合查询,来看看用spring-data-elasticSearch怎么写:   QueryBuilder ...

  6. 分享一个小设置-项目启动时服务器指向本地IIS

    背景,在X公司做的一个网站登录时需要域名的支持,就是说浏览器地址栏在localhost+端口号的形式下无法实现登录(必须是xxxx域名的形式), 但是很多时候都会先在线下进行测试,既然本地没有线上的环 ...

  7. PAT L2-020 功夫传人

    https://pintia.cn/problem-sets/994805046380707840/problems/994805059118809088 一门武功能否传承久远并被发扬光大,是要看缘分 ...

  8. Azure系列2.1.10 —— CloudBlobClient

    (小弟自学Azure,文中有不正确之处,请路过各位大神指正.) 网上azure的资料较少,尤其是API,全是英文的,中文资料更是少之又少.这次由于公司项目需要使用Azure,所以对Azure的一些学习 ...

  9. MyBatis映射文件5

    返回map     Map<String,Object> getEmpByResMap(Integer id); <select id="getEmpByResMap&qu ...

  10. js尾递归函数

    普通递归: function fac(n) { if (n === 1) return 1; return n * fac(n - 1); } fac(5) // 120 这是个阶乘.但是占用内存,因 ...