使用idea创建spring +spring mvc 的 maven项目(教学)
电脑系统:windows 10
本机java相关的环境 : jdk 1.8 ,tomcat 8.5 ,maven 3.5.4 ,idea2017
下面,打开idea,开始新建项目
打开idea,file-new-project

勾上创建模板的选项,选择maven-archetype-webapp

点击next
填写groupid 和artifactId ,这里说明一下,groupId一般是自己机构的名称,artifactId可以看作是项目的名称。填好后点击next

maven环境的一些选项,如下图

点击next
选择项目名字以及项目存放的位置

选择好后点击finish
根据我们选择的maven-archetype-webapp模板,会生成一下目录结构

在webapp的同级目录新建两个文件夹,java(用来放源代码),resources(用来放资源配置文件)

如上图,对着java文件夹点击鼠标右键,将它标记为sources root 即源代码的根目录
将resources文件夹标记为resources root
点击右上角的三角形,如下图,点击edit..

添加tomcat 服务器


选择deployment

点击ok,点击右上角的运行,成功运行则会出现hello word 欢迎页面


现在,一个普通的web环境就已经搭建好了,现在我们要加入 spring,spring mvc配置
将spring的相关依赖添加到pom.xml中,让maven去远程仓库中下载相关jar包
参考依赖如下:
<!--测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--日志-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>
<!--J2EE-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!--mysql驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
</dependency>
<!--springframework-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>com.github.stefanbirkner</groupId>
<artifactId>system-rules</artifactId>
<version>1.16.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.9</version>
</dependency>
<!--其他需要的包-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<!--添加java对象注解转json支持-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.5</version>
</dependency>
Spring jar包依赖下载好以后,接下来添加spring的配置文件



点击ok,可以看到多了两个配置文件

Web.xml中也会增加一些配置

到现在,我们的spring,spring mvc就已经配置好了
测试一下 dispatcher servlet转发请求
增加TestController类,和一个test.jsp文件,目录结构如图

dispatcher-servlet.xml 配置如下
<?xmlversion="1.0"encoding="UTF-8"?> <beansxmlns="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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!--使用注解的包,包括子集--> <context:component-scanbase-package="com.sicau.controller"/> <!--跨域访问,不需要的可以不加--> <mvc:cors> <mvc:mappingpath="/**/**" allowed-origins="*" allowed-methods="POST,GET,OPTIONS,DELETE,PUT" allowed-headers="Content-Type,Access-Control-Allow-Headers,Authorization,X-Requested-With" allow-credentials="true"/> </mvc:cors> <!--默认注解支持--> <mvc:annotation-driven> <mvc:message-converters> <beanclass="org.springframework.http.converter.StringHttpMessageConverter"> <propertyname="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <beanclass="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <propertyname="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>text/plain;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven> <!--结果视图解析器--> <beanid="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <propertyname="prefix"value="/"/> <propertyname="suffix"value=".jsp"/> </bean> </beans>
Test.jsp中的代码如图

运行程序,浏览器输入http://localhost:8080/toTest.form,成功跳转到test页面

控制台打印出“进入toTest方法”字样

由于web.xml自动生成的是servlet 2.3版本的配置,而我们项目中需要用servlet 3.0的一些东西。所以需要改一下web.xml servlet版本

更改的地方代码如下:
<web-appversion="3.0"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">
检查是否生效
返回test页面的同时,返回一个数据,name

在test.jsp页面中 ,使用el表达式访问name数据

el表达式需要servlet 3.0支持,所以可以用来测试
运行服务器,浏览器访问如下图,可以正确显示name的数据则没有问题


浙公网安备 33010602011771号