电脑系统: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的数据则没有问题