首先,创建一个自带web的maven项目
与普通maven项目不同的是,需要在创建时选择webapp
但是这样创建出来的的maven项目main目录下没有Java文件也没有resources文件,需要我们自己创建并将他们设置为源码根目录和资源很目录,具体如下:
然后我们需要搭建开发环境
1.首先导入依赖
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring.version>5.0.2.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</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>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
2.配置前端控制器
<!--配置前端控制器-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<!-- /:表示任何的请求都会被拦截到-->
<url-pattern>/</url-pattern>
</servlet-mapping>
然后配置tomcat,这个就不说
接下来就是代码编写环节
先写一个控制器的类
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
//控制器类
@Controller
public class HelloController {
@RequestMapping(path = "/helo")
public String sayHello() {
System.out.println("Hello SpringMvc");
return "success";
}
}
其中@Controller注解标识这是一个控制器类给spring,@RequestMapping是请求映射,path = "/helo"是暴露给客户端的请求路径
其次还需要开启注解扫描,让spring知道该在那个包下寻找:
因此还需要在resources路径下创建一个springmvc.xml, 配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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="mypackage"/>
</beans>
但是为了让这个springmvc.xml被加载,还需要在web.xml中配置加载:
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
其中 1表示在第一次发出请求的时候就创建DispatcherServlet前端控制器,DispatcherServlet一创建就会加载springmvc.xml配置文件,l配置文件一经加载注解扫描就会生效,扫描生效HelloControllerr就会被扫描到。
同样因为在helloController中方法返回了 success,因此还需要再\webapp\WEB-INF目录下创建一个success.jsp
但是为了让springmvc找到这个success,还要配置一个视图解析器,在springmvc.xml中配置
最后在index.jsp中写请求路径
zhe下就全部完成了,启动服务器
点击就可得到结果
完美!