SpringMVC快速搭建第一个项目
1.首先在IDEA中新建一个web项目。
“新建”–“项目”–“Maven项目”–“webapp”
然后给自己的项目起一个名字即可,并放入相应目录,我这里项目名称为“springMVC”.
2.整理项目目录结构
用模板搭建的项目目录可能不适合我们的需求,需要进行微调。
3.引入依赖项
springMVC项目需要引入一些常见的依赖项。在项目的pom.xml文件加入依赖。注意放在标签内部。
<!-- spring核心包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.18.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.18.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.18.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>4.3.18.RELEASE</version>
</dependency>
<!-- spring对web的支持 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.18.RELEASE</version>
</dependency>
<!-- springwebMVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.18.RELEASE</version>
</dependency>
<!-- 配置javaweb环境 -->
<!-- servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- jsp-api -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<!-- jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
4.添加spring的配置文件
在resources文件下建立spring.xml名字可以随便起。
<!--组件扫描器-->
<context:component-scan base-package="org.example">
</context:component-scan>
<!--读取配置文件-->
<context:property-placeholder location="classpath:db.properties"/>
<mvc:annotation-driven></mvc:annotation-driven>
<!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置视图地址的前缀和后缀 -->
<!-- <property name="prefix" value="/jsp/"/>-->
<property name="suffix" value=".jsp"/>
</bean>
5.配置web
编辑webapp下的web.xml配置文件.
<?xml version="1.0" encoding="UTF-8"?>
<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_4_0.xsd"
version="4.0">
<!-- 配置前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--
springmvc的核心配置文件,格式与spring的applicationContext.xml一致
默认路径:/WEB-INF/[前端控制器Servlet的名称]-servlet.xml
3.自定义路径:通过Servlet的初始化参数,修改springmvc的配置文件的路径和名称
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</init-param>
<!-- 1.配置服务器启动时初始化前端控制器-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--
2.配置进入springmvc中的请求
第一种:*.后缀名,表示由DispatcherServlet进行解析以某种扩展名结尾的请求路径
例如:*.do,*.action,*.abc..但是不能配置*.jsp,*.css,*.js等视图类型的后缀或静态资源后缀
优点:不会导致静态资源的拦截(静态资源的访问不会进入springmvc的流程),无需单独排除静态资源
缺点:不支持RESTful风格的开发
第二种:/,表示所有的访问服务器的路径都进入springmvc的流程中(.jsp文件除外)
优点:支持RESTful风格的开发
缺点:当访问静态资源时,因没有相应的处理类,会报出404的错误,需要单独排除静态资源
第三种:/*,此中在springmvc中是错误的配置,因为它会拦截所有的静态资源,以及jsp文件
-->
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
</web-app>
6.编写handler类
package com.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class MainController {
@RequestMapping("/main.do")
public String main(){
return "login";
}
}