SpringMVC入门HelloWorld
1、新建工程
在IDEA中,File -> New -> Project...
,这里我们需要通过Maven新建一个webapp骨架的项目。选中Maven,并勾选Create from archetype
,选择org.apache.maven.archetypes:maven-archetype-webapp
:

输入GroupId和ArtifactId:

选中本地Maven的主目录(当然,也可以用Idea自带的Maven):

输入工程的名字,并选择工程的存储路径:

点击完成之后,Maven开始下载相关的依赖:

下载完成之后,Maven完成初步的构建,这时候,可以看到该项目的目录结构:

2、编写代码
2.1 Controller
首先,在前面新建的src/main
目录下,新建一个java文件夹,用来存放工程中用到的java代码。这时候,需要在idea中选中这个新建的java目录,然后,右键,依次单击Mark Directory as -> Sources Root
,将这个目录设置为源码目录,然后,新建如下java类,作为Controller:
MainController.java:
package com.spacecat.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* Created by chengxia on 2019/5/26.
*/
@Controller
public class MainController{
@RequestMapping(value = "/helloworld")
public String index(){
return "helloworld";
}
}
2.2 配置DispatcherServlet
在工程的web.xml
文件中,配置成如下:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
注意这里配置了<servlet-name>mvc-dispatcher</servlet-name>
,那么,就相当于确定了下面的WEB-INF/mvc-dispatcher-servlet.xml
配置文件名称。该配置文件中,主要是View相关的配置。如下:
<?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:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.spacecat.controller"/>
<mvc:annotation-driven/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
2.3 编写简单的jsp
在WEB-INF
目录下,新建jsp文件WEB-INF/pages/helloworld.jsp
,充当简单的View视图:
<%--
Created by IntelliJ IDEA.
User: chengxia
Date: 2019/5/26
Time: 10:38 PM
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h2>Hello World!</h2>
<h2>Page returned from controller.</h2>
</body>
</html>
2.4 最终的文件结构
最终的文件结构如下图:

2.5 新建Tomcat运行
单击Idea菜单Run,在下拉菜单中单击Run...
,弹出如下窗口:

然后,新建运行时,如下图:

选择Deployment
选项卡,然后添加Artifact:

在弹出的对话框中选中hellospringmvc:war
:

这时候,点击上面图片中的Run,就能够启动Tomcat服务器。
在服务器启动后,在浏览器窗口中输入http://localhost:8080/helloworld
,就可以看到如下页面:

到这里,一个最简单SpringMVC工程就演示完毕。
3、简单解释
这里的Controller中定义了url的处理,对/helloworld
这个url的请求,由index()
方法处理,该方法返回了一个视图名字helloworld。
根据WEB-INF/mvc-dispatcher-servlet.xml
文件中的配置,helloworld视图对应的是前缀为/WEB-INF/pages/
,后缀为.jsp
的文件,也就是WEB-INF/pages/helloworld.jsp
。
这样,当请求/helloworld
这个url时,就得到了浏览器页面中的”HelloWorld!“。
在SpringMVC中,请求先到DispatcherServlet
,然后再被分发到Controller。web.xml
中,servlet-mapping
,配置成<url-pattern>/</url-pattern>
,意思是所有的请求都要先经过DispatcherServlet。