1.基本概念

SSM框架指:Spring MVC + Spring + MyBatis

Spring MVC是一种web层mvc框架,用于替代servlet,处理|响应请求,获取表单参数,表单校验等

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。 (摘自百度百科)。

2.开发环境

安装java jdk,MySQL,IntelliJ IDEA,Tomcat,Maven

这是我电脑上的java和MySQL版本

Tomcat 我用的

IntelliJ IDEA我用的

Maven我用的3.6.0

3.搭建SSM框架

打开IntelliJ IDEA,选择 File》Project》New Project ,左侧栏选择 Maven ,右侧Project SDK 会是默认的java,选择Create from archetype,选择下图中的2

点击上图Next,进入下图,GroupId和ArtifactId是Maven项目的坐标,保证项目的唯一性。如果项目上传到了maven本地仓库去,必须根据这两个id去查找项目。

GroupId 一般分为多段,这里只说两段,第一段为域,第二段为公司名称。域包括:org、com、cn等,其中org为非营利组织,com为商业组织。
ArtifactId实际对应项目的名称,就是项目根目录的名称。这样说起来比较抽象,下面举例说明:

例如下图中:GroupId是cn.only,它的域是cn(因为cn表示中国),个人项目所以为only,ArtifactId是helloworld。 GroupId实际对应JAVA的包的结构,是main目录里java的目录结构。ArtifactId实际对应项目的名称。

点击上图Next,进入下图,选择本地Maven的位置,我的Maven版本是3.6.0

点击上图Next,进入下图,选择项目的存放地址,如下图,注意Project location中一定要有项目名字,项目名称默认

点击上图Finish,IntelliJ IDEA右下角弹窗如下图:

点击Enable Auto-Import,以后更改pom文件后就会自动下载依赖包了,所以点击Enable Auto-Import。

等待几分钟,项目正在下载相关依赖包,下载完毕以后,项目的目录结构如下图:

.idea:IntelliJ IDEA 在本项目中的配置,可以删掉,删掉后打开项目要重新配置。

src:存放项目代码

pom.xml:maven的配置文件,需要什么jar包,在里面添加依赖,maven会自动下到本地仓库。

现在构建SSM项目结构:

在src下建test文件夹,用来放测试文件,在test文件夹下建java和resources文件夹:

选择test的下的java文件夹,鼠标右键选择Mark Directory  as》Test Sources Root

选择test的下的resources文件夹,鼠标右键选择Mark Directory  as》Test Resources Root

在main文件夹下建java和resources文件夹:

选择main的下的java文件夹,鼠标右键选择Mark Directory  as》Sources Root

选择main的下的resources文件夹,鼠标右键选择Mark Directory  as》Resources Root

在src》main》java文件夹下建package,鼠标选择java文件夹,右键选择New》Package,建Package,名字就是上面GroupId,为cn.only

在cn.only下建4个Package:controller:用来放前台url映射文件,dao用来放与数据库的接口文件,entity用来放实体类文件,service用来放自己定义的接口

鼠标选择java,右键选择New》Package,建Package,名字为cn.only.controller,controller Package添加成功如下图

继续鼠标选择java,右键选择New》Package,建Package,名字为cn.only.dao,dao Package添加成功如下图

entity和service的添加方法一样如上,名字为cn.only.entity和cn.only.service,添加成功,如下图

src》main》resources下添加两个文件夹: spring和sqlmap,spring下添加spring的配置文件applicationContext.xml

src》main》resources下再添加四个配置文件:generator.properties ,generatorConfig.xml ,jdbc.properties 和 log4j.properties

generator.properties和generatorConfig.xml :用来配置mybatis

jdbc.properties :配置数据库相关信息

log4j.properties:配置日志

resources的目录结构如下图:

src》main》webapp下新建文件夹:js ,css,images 用来存放前端资源

src》main》webapp》WEB-INF下新建views文件夹,jsp页面放在这里。

webapp 的目录结构如下图:

整个项目的目录已经构建好,如下图:

下面开始配置项目

根目录下的pom.xml:POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等。在Maven中,project可以什么都没有,甚至没有代码,但是必须包含pom.xml文件。

打开pom.xml,会发现已经默认有一些配置了,下面是我的pom.xml配置文件:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6.  
  7. <groupId>cn.only</groupId>
  8. <artifactId>helloworld</artifactId>
  9. <version>1.0-SNAPSHOT</version>
  10. <packaging>war</packaging>
  11.  
  12. <name>helloworld Maven Webapp</name>
  13. <!-- FIXME change it to the project's website -->
  14. <url>http://www.example.com</url>
  15.  
  16. <properties>
  17. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  18. <maven.compiler.source>1.7</maven.compiler.source>
  19. <maven.compiler.target>1.7</maven.compiler.target>
  20. <!-- spring版本号 -->
  21. <spring.version>4.2.5.RELEASE</spring.version>
  22. <!-- mybatis版本号 -->
  23. <mybatis.version>3.2.4</mybatis.version>
  24. <!-- log4j日志文件管理包版本 -->
  25. <slf4j.version>1.6.6</slf4j.version>
  26. <log4j.version>1.2.12</log4j.version>
  27. </properties>
  28.  
  29. <dependencies>
  30. <dependency>
  31. <groupId>junit</groupId>
  32. <artifactId>junit</artifactId>
  33. <version>4.11</version>
  34. <scope>test</scope>
  35. </dependency>
  36. <!-- spring核心包 -->
  37. <!-- springframe start -->
  38. <dependency>
  39. <groupId>org.springframework</groupId>
  40. <artifactId>spring-core</artifactId>
  41. <version>${spring.version}</version>
  42. </dependency>
  43.  
  44. <dependency>
  45. <groupId>org.springframework</groupId>
  46. <artifactId>spring-web</artifactId>
  47. <version>${spring.version}</version>
  48. </dependency>
  49.  
  50. <dependency>
  51. <groupId>org.springframework</groupId>
  52. <artifactId>spring-oxm</artifactId>
  53. <version>${spring.version}</version>
  54. </dependency>
  55.  
  56. <dependency>
  57. <groupId>org.springframework</groupId>
  58. <artifactId>spring-tx</artifactId>
  59. <version>${spring.version}</version>
  60. </dependency>
  61.  
  62. <dependency>
  63. <groupId>org.springframework</groupId>
  64. <artifactId>spring-jdbc</artifactId>
  65. <version>${spring.version}</version>
  66. </dependency>
  67.  
  68. <dependency>
  69. <groupId>org.springframework</groupId>
  70. <artifactId>spring-webmvc</artifactId>
  71. <version>${spring.version}</version>
  72. </dependency>
  73.  
  74. <dependency>
  75. <groupId>org.springframework</groupId>
  76. <artifactId>spring-aop</artifactId>
  77. <version>${spring.version}</version>
  78. </dependency>
  79.  
  80. <dependency>
  81. <groupId>org.springframework</groupId>
  82. <artifactId>spring-context-support</artifactId>
  83. <version>${spring.version}</version>
  84. </dependency>
  85.  
  86. <dependency>
  87. <groupId>org.springframework</groupId>
  88. <artifactId>spring-test</artifactId>
  89. <version>${spring.version}</version>
  90. </dependency>
  91. <!-- springframe end -->
  92.  
  93. <!-- mybatis核心包 -->
  94. <dependency>
  95. <groupId>org.mybatis</groupId>
  96. <artifactId>mybatis</artifactId>
  97. <version>${mybatis.version}</version>
  98. </dependency>
  99. <!-- mybatis/spring包 -->
  100. <dependency>
  101. <groupId>org.mybatis</groupId>
  102. <artifactId>mybatis-spring</artifactId>
  103. <version>1.2.2</version>
  104. </dependency>
  105. <!-- mysql驱动包 -->
  106. <dependency>
  107. <groupId>mysql</groupId>
  108. <artifactId>mysql-connector-java</artifactId>
  109. <version>5.0.8</version>
  110. </dependency>
  111.  
  112. <!-- jstl -->
  113. <dependency>
  114. <groupId>javax.servlet</groupId>
  115. <artifactId>jstl</artifactId>
  116. <version>1.2</version>
  117. </dependency>
  118. <dependency>
  119. <groupId>javax.servlet.jsp</groupId>
  120. <artifactId>jsp-api</artifactId>
  121. <version>2.2.1-b03</version>
  122. <scope>provided</scope>
  123. </dependency>
  124.  
  125. <!-- servlet -->
  126. <dependency>
  127. <groupId>javax.servlet</groupId>
  128. <artifactId>servlet-api</artifactId>
  129. <version>2.5</version>
  130. <scope>provided</scope>
  131. </dependency>
  132. <!-- json数据 -->
  133. <dependency>
  134. <groupId>com.fasterxml.jackson.core</groupId>
  135. <artifactId>jackson-core</artifactId>
  136. <version>2.7.1</version>
  137. </dependency>
  138. <dependency>
  139. <groupId>com.fasterxml.jackson.core</groupId>
  140. <artifactId>jackson-annotations</artifactId>
  141. <version>2.7.1</version>
  142. </dependency>
  143. <dependency>
  144. <groupId>com.fasterxml.jackson.core</groupId>
  145. <artifactId>jackson-databind</artifactId>
  146. <version>2.7.1</version>
  147. </dependency>
  148. <dependency>
  149. <groupId>net.sf.json-lib</groupId>
  150. <artifactId>json-lib</artifactId>
  151. <version>2.4</version>
  152. <classifier>jdk15</classifier>
  153. </dependency>
  154. <!-- commons -->
  155. <dependency>
  156. <groupId>commons-lang</groupId>
  157. <artifactId>commons-lang</artifactId>
  158. <version>2.4</version>
  159. </dependency>
  160. <dependency>
  161. <groupId>commons-logging</groupId>
  162. <artifactId>commons-logging</artifactId>
  163. <version>1.1</version>
  164. </dependency>
  165. <dependency>
  166. <groupId>commons-pool</groupId>
  167. <artifactId>commons-pool</artifactId>
  168. <version>1.5.6</version>
  169. </dependency>
  170. <dependency>
  171. <groupId>commons-dbcp</groupId>
  172. <artifactId>commons-dbcp</artifactId>
  173. <version>1.4</version>
  174. </dependency>
  175. <dependency>
  176. <groupId>commons-beanutils</groupId>
  177. <artifactId>commons-beanutils</artifactId>
  178. <version>1.8.3</version>
  179. </dependency>
  180. <dependency>
  181. <groupId>commons-httpclient</groupId>
  182. <artifactId>commons-httpclient</artifactId>
  183. <version>3.1</version>
  184. </dependency>
  185. <dependency>
  186. <groupId>commons-collections</groupId>
  187. <artifactId>commons-collections</artifactId>
  188. <version>3.1</version>
  189. </dependency>
  190. <dependency>
  191. <groupId>commons-codec</groupId>
  192. <artifactId>commons-codec</artifactId>
  193. <version>1.9</version>
  194. </dependency>
  195. <dependency>
  196. <groupId>javax.annotation</groupId>
  197. <artifactId>jsr250-api</artifactId>
  198. <version>1.0</version>
  199. </dependency>
  200.  
  201. <dependency>
  202. <groupId>net.sf.ezmorph</groupId>
  203. <artifactId>ezmorph</artifactId>
  204. <version>1.0.6</version>
  205. </dependency>
  206. <dependency>
  207. <groupId>javax.activation</groupId>
  208. <artifactId>activation</artifactId>
  209. <version>1.1</version>
  210. </dependency>
  211. <dependency>
  212. <groupId>taglibs</groupId>
  213. <artifactId>standard</artifactId>
  214. <version>1.1.2</version>
  215. </dependency>
  216. <!-- 日志文件管理包 -->
  217. <!-- log start -->
  218. <dependency>
  219. <groupId>log4j</groupId>
  220. <artifactId>log4j</artifactId>
  221. <version>${log4j.version}</version>
  222. </dependency>
  223. <dependency>
  224. <groupId>org.slf4j</groupId>
  225. <artifactId>slf4j-api</artifactId>
  226. <version>${slf4j.version}</version>
  227. </dependency>
  228. <dependency>
  229. <groupId>org.slf4j</groupId>
  230. <artifactId>slf4j-log4j12</artifactId>
  231. <version>${slf4j.version}</version>
  232. </dependency>
  233. <!--上传-->
  234. <dependency>
  235. <groupId>commons-fileupload</groupId>
  236. <artifactId>commons-fileupload</artifactId>
  237. <version>1.3.1</version>
  238. </dependency>
  239. <dependency>
  240. <groupId>commons-io</groupId>
  241. <artifactId>commons-io</artifactId>
  242. <version>2.4</version>
  243. </dependency>
  244. <!-- log end -->
  245. </dependencies>
  246.  
  247. <build>
  248. <finalName>hello</finalName>
  249. <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
  250. <plugins>
  251. <plugin>
  252. <artifactId>maven-clean-plugin</artifactId>
  253. <version>3.1.0</version>
  254. </plugin>
  255. <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
  256. <plugin>
  257. <artifactId>maven-resources-plugin</artifactId>
  258. <version>3.0.2</version>
  259. </plugin>
  260. <plugin>
  261. <artifactId>maven-compiler-plugin</artifactId>
  262. <version>3.8.0</version>
  263. </plugin>
  264. <plugin>
  265. <artifactId>maven-surefire-plugin</artifactId>
  266. <version>2.22.1</version>
  267. </plugin>
  268. <plugin>
  269. <artifactId>maven-war-plugin</artifactId>
  270. <version>3.2.2</version>
  271. </plugin>
  272. <plugin>
  273. <artifactId>maven-install-plugin</artifactId>
  274. <version>2.5.2</version>
  275. </plugin>
  276. <plugin>
  277. <artifactId>maven-deploy-plugin</artifactId>
  278. <version>2.8.2</version>
  279. </plugin>
  280. </plugins>
  281. </pluginManagement>
  282. <plugins>
  283. <!-- mybatis-generator -->
  284. <plugin>
  285. <groupId>org.mybatis.generator</groupId>
  286. <artifactId>mybatis-generator-maven-plugin</artifactId>
  287. <version>1.3.2</version>
  288. <configuration>
  289. <!-- mybatis-generator的配置文件,根据情况调整位置 -->
  290. <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
  291. <verbose>true</verbose>
  292. <overwrite>true</overwrite>
  293. </configuration>
  294. <executions>
  295. <execution>
  296. <id>Generate MyBatis Artifacts</id>
  297. <goals>
  298. <goal>generate</goal>
  299. </goals>
  300. </execution>
  301. </executions>
  302. <dependencies>
  303. <dependency>
  304. <groupId>org.mybatis.generator</groupId>
  305. <artifactId>mybatis-generator-core</artifactId>
  306. <version>1.3.2</version>
  307. </dependency>
  308. </dependencies>
  309. </plugin>
  310. </plugins>
  311. </build>
  312. </project>

配置applicationContext.xml,我的配置如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:beans="http://www.springframework.org/schema/beans"
  6. xmlns:mvc="http://www.springframework.org/schema/mvc"
  7. xsi:schemaLocation="http://www.springframework.org/schema/beans
  8. http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context-4.3.xsd
  11. http://www.springframework.org/schema/mvc
  12. http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd" >
  13.  
  14. <!-- ①:对cn.only包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 -->
  15. <context:component-scan base-package="cn.only"/>
  16. <mvc:annotation-driven />
  17. <!-- 静态资源访问 -->
  18. <!--如果webapp下你新建了文件夹,想访问里面的静态资源,那么就要在这配置一下-->
  19. <mvc:resources location="/images/" mapping="/images/**"/>
  20. <mvc:resources location="/css/" mapping="/css/**"/>
  21. <mvc:resources location="/js/" mapping="/js/**"/>
  22.  
  23. <!-- Configures the @Controller programming model
  24. <mvc:annotation-driven />-->
  25. <!-- ②:启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
  26. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
  27. <property name="messageConverters">
  28. <list>
  29. <ref bean="mappingJacksonHttpMessageConverter"/>
  30. </list>
  31. </property>
  32. </bean>
  33.  
  34. <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
  35. <property name="supportedMediaTypes">
  36. <list>
  37. <value>application/json;charset=UTF-8</value>
  38. </list>
  39. </property>
  40. </bean>
  41.  
  42. <!-- 配置视图解析器,把控制器的逻辑视频映射为真正的视图 -->
  43. <!-- /WEB-INF/jsp/start.jsp -->
  44. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  45. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
  46. <property name="prefix" value="/WEB-INF/views/" />
  47. <property name="suffix" value=".jsp" />
  48. </bean>
  49.  
  50. <!-- 配置dbcp数据库连接池 -->
  51.  
  52. <!-- <context:property-placeholder location="classpath:db.properties"/> -->
  53. <!--数据库配置 -->
  54. <bean id = "propertyConfigurer" class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  55. <property name="locations">
  56. <list>
  57. <value>classpath:jdbc.properties</value>
  58. </list>
  59. </property>
  60.  
  61. </bean>
  62.  
  63. <!-- 数据库连接池 -->
  64. <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  65. <property name="driverClassName" value="${jdbc.driver}"/>
  66. <property name="url" value="${jdbc.url}"/>
  67. <property name="username" value="${username}"/>
  68. <property name="password" value="****"/>
  69. <property name="initialSize" value="1"/>
  70. <property name="maxActive" value="100"/>
  71. <property name="maxIdle" value="5"/>
  72. <property name="maxWait" value="80000"/>
  73. </bean>
  74.  
  75. <!-- 配置事务管理器 -->
  76. <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  77. <property name="dataSource" ref="dataSource" />
  78. </bean>
  79.  
  80. <!-- 拦截器 -->
  81. <mvc:interceptors>
  82. <!-- 国际化操作拦截器 如果采用基于(请求/Session/Cookie)则必需配置 -->
  83. <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
  84. </mvc:interceptors>
  85. <!-- 定义无Controller的path<->view直接映射 -->
  86. <!-- <mvc:view-controller path="/" view-name="redirect:/" /> -->
  87.  
  88. </beans>

配置jdbc.properties

  1. jdbc.driver=com.mysql.jdbc.Driver
  2. #test为我本地的数据库名
  3. jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
  4. username=root
  5. #下面输入自己数据库的密码
  6. password=*****
  7. #定义初始连接数
  8. initialSize=0
  9. #定义最大连接数
  10. maxActive=20
  11. #定义最大空闲
  12. maxIdle=20
  13. #定义最小空闲
  14. minIdle=1
  15. #定义最长等待时间
  16. maxWait=60000

注意:上面的代码中如果没有serverTimezone=UTC,代码运行会报错

配置log4j.properties

  1. ### set log levels ###
  2. log4j.rootLogger = INFO,D
  3.  
  4. ###输出到控制台###
  5. log4j.logger.toConsole=debug,stdout
  6. log4j.appender.stdout = org.apache.log4j.ConsoleAppender
  7. log4j.appender.stdout.Target = System.out
  8. log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
  9.  
  10. log4j.appender.stdout.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} [%5p] - %c -%F(%L) -%m%n
  11.  
  12. ### 输出到日志文件 ###
  13. ## 其中File 可以采用绝对路径 亦可以采用相对路径 catalina.home 是tomcat目录 如果没有logs文件夹 将会报错 ##
  14. ## 更加倾向于将日志文件放在 tomcat的日志目录下${catalina.home}/logs/salesmanb2bError.log ##
  15. ## 绝对路径如:e:/salesmanb2bError.log ##
  16. log4j.logger.daily=INFO,D
  17. log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
  18. log4j.appender.D.File = ${catalina.home}/logs/helloworld/helloworld.log
  19. log4j.appender.D.Append = true
  20. log4j.appender.D.Threshold = INFO
  21. log4j.appender.D.layout = org.apache.log4j.PatternLayout
  22. log4j.appender.D.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} [%5p] - %c -%F(%L) -%m%n
  23.  
  24. ##log4j.logger.org.apache.ibatis=debug,stdout
  25. ##log4j.logger.java.sql=debug,stdout

配置web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  3. <display-name>helloworld</display-name>
  4. <!-- 配置编码方式-->
  5. <filter>
  6. <filter-name>encodingFilter</filter-name>
  7. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  8. <init-param>
  9. <param-name>encoding</param-name>
  10. <param-value>UTF-8</param-value>
  11. </init-param>
  12. <init-param>
  13. <param-name>forceEncoding</param-name>
  14. <param-value>true</param-value>
  15. </init-param>
  16. </filter>
  17. <filter-mapping>
  18. <filter-name>encodingFilter</filter-name>
  19. <url-pattern>/*</url-pattern>
  20. </filter-mapping>
  21.  
  22. <!-- 配置springmvc的前端控制器 指向spring-mvc.xml 程序在启动的时候就加载springmvc 可以接受所有请求 load-on-startup:表示启动容器时初始化该Servlet; -->
  23. <servlet>
  24. <servlet-name>springServlet</servlet-name>
  25. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  26. <!-- 可以自定义servlet.xml配置文件的位置和名称, 默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如spring-servlet.xml -->
  27. <init-param>
  28. <param-name>contextConfigLocation</param-name>
  29. <param-value> classpath:spring/applicationContext.xml</param-value>
  30. </init-param>
  31. <load-on-startup>1</load-on-startup>
  32. </servlet>
  33. <!-- 将前端URL请求和后台处理方法controller建立对应关系-->
  34. <servlet-mapping>
  35. <servlet-name>springServlet</servlet-name>
  36. <url-pattern>/</url-pattern>
  37. </servlet-mapping>
  38.  
  39. <!-- Spring配置 -->
  40. <listener>
  41. <listener-class>
  42. org.springframework.web.context.ContextLoaderListener
  43. </listener-class>
  44. </listener>
  45. <!-- 取消对某一类文件的拦截-->
  46. <servlet-mapping>
  47. <servlet-name>default</servlet-name>
  48. <url-pattern>*.md</url-pattern>
  49. </servlet-mapping>
  50.  
  51. <context-param>
  52. <param-name>contextConfigLocation</param-name>
  53. <param-value> classpath:spring/applicationContext.xml</param-value>
  54. </context-param>
  55. <!-- 欢迎页面-->
  56. <welcome-file-list>
  57. <welcome-file>/WEB-INF/index.jsp</welcome-file>
  58. </welcome-file-list>
  59. <!--404错误展示页面,可自行配置-->
  60. <!--<error-page>-->
  61. <!--<error-code>404</error-code>-->
  62. <!--<location>/WEB-INF/views/404.jsp</location>-->
  63. <!--</error-page>-->
  64. <!--设置session失效时间为30分钟 -->
  65. <session-config>
  66. <session-timeout>600</session-timeout>
  67. </session-config>
  68. </web-app>

最后配置Tomcat,配置好Tomcat代码就可以跑起来了。选择Add Configuration...》弹出配置窗口,如下图

点击上图红框中的+,选择Tomcat Server》Local,弹出窗口,如下图,

配置Application server,在上图中选择红框中的configure...,弹出窗口如下图,选择Tomcat的安装路径,配置好Tomcat。

配置Deployment,如下图,

上图中,点击+,选择Artifact...,弹窗如下图,

上图中选择红框中内容,点击OK,如下图:

点击上图OK,Tomcat配置完毕。

如上图,点击绿色三角形,运行程序。

运行结果如下:

程序正常启动,spring mvc已经搭建好,下一篇文章配置mybatis-geneator,这是一款mybatis自动代码生成工具。

本文参照这篇文章写的:https://www.cnblogs.com/toutou/p/9015126.html#_nav_0

一步一步教你用IntelliJ IDEA 搭建SSM框架(1)的更多相关文章

  1. 一步一步教你用IntelliJ IDEA 搭建SSM框架(3)——实现用户登录功能

    上面两篇博客已经详细的介绍了在IntelliJ IDEA 搭建SSM框架的整个过程,下面我们就要在搭建好的环境里实现我们想要的功能了.本文完成用户的登录功能,主要包括:用户注册,登录,编辑,退出,注销 ...

  2. 一步一步教你用IntelliJ IDEA 搭建SSM框架(2)——配置mybatis-geneator

    我们要搭建整个SSM框架,所以要继续上篇文章没有完成的工作,下面配置mybatis-geneator,自动生成mybatis代码. 在上篇文章中的pom.xml的配置文件中已经加了mybatis-ge ...

  3. 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(上)

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻 ...

  4. 详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(下)

    在上一篇(详解intellij idea 搭建SSM框架(spring+maven+mybatis+mysql+junit)(上))博文中已经介绍了关于SSM框架的各种基础配置,(对于SSM配置不熟悉 ...

  5. 手把手教你 基础 整合最优雅SSM框架:SpringMVC + Spring

    我们看招聘信息的时候,经常会看到这一点,需要具备SSH框架的技能:而且在大部分教学课堂中,也会把SSH作为最核心的教学内容. 但是,我们在实际应用中发现,SpringMVC可以完全替代Struts,配 ...

  6. 基于IntelliJ IDEA开发工具搭建SSM框架并实现页面登录功能详细讲解二

    接: 接下来配置类 UserController package com.chatRotbot.controller; import com.chatRotbot.model.User; import ...

  7. maven(二)基于intellij idea搭建ssm的maven项目结构

    项目配置文件整合步骤 1.这里使用maven来引入项目所需要的jar包,所以也就不需要手动来管理jar包了. pom.xml 配置模板如下: <project xmlns="http: ...

  8. 手把手教你搭建SSH框架(Eclipse版)

    原文来自公众号[C you again],若需下载完整源码,请在公众号后台回复"ssh". 本期文章详细讲解了SSH(Spring+SpringMVC+Hibernate)框架的搭 ...

  9. 一步一步教你如何在linux下配置apache+tomcat(转)

    一步一步教你如何在linux下配置apache+tomcat   一.安装前准备. 1.   所有组件都安装到/usr/local/e789目录下 2.   解压缩命令:tar —vxzf 文件名(. ...

随机推荐

  1. Java 普通方法和构造方法的区别

    构造方法: ①方法名和 类名相同 ②在方法名的前面没有返回值类型的声明 ③在方法中不能使用return语句返回一个值 ④在创建对象时,要调用new,如:book b1=new book(); ⑤当没有 ...

  2. Python:asyncio模块学习

    python asyncio 网络模型有很多中,为了实现高并发也有很多方案,多线程,多进程.无论多线程和多进程,IO的调度更多取决于系统,而协程的方式,调度来自用户,用户可以在函数中yield一个状态 ...

  3. 动态生成navmeshi-进击的新版NavMesh系统:看我飞檐走壁

    http://forum.china.unity3d.com/thread-25421-1-1.html0x00 前言 unity5.6作为Unity5最后的一个版本,的确起到了一个承上启下的作用.除 ...

  4. Python 获取页面title

    #!/usr/bin/python #coding=utf- #urllib2是python自带的模块,在python3.x中被改为urllib.request import urllib.reque ...

  5. 洛谷P3608 [USACO17JAN]Balanced Photo平衡的照片

    P3608 [USACO17JAN]Balanced Photo平衡的照片 题目描述 Farmer John is arranging his NN cows in a line to take a ...

  6. IT兄弟连 Java语法教程 编写Java源代码

    现在我们来一步一步的编写第一个Java程序,鼎鼎大名的“HelloWorld”. 编写Java源代码 编写Java源代码可以使用任何无格式的文本编辑器,在Windows操作系统上可以使用记事本.Edi ...

  7. json 打印

    JsonObject jsonObj = new JSONObject(); jsonObj.put("success",true); jsonObj.put("msg& ...

  8. PJzhang:谷歌在中国大陆可以使用的部分服务

    猫宁!!! 参考链接:https://lusongsong.com/reed/170.html https://www.williamlong.info/archives/2124.html http ...

  9. 省选准备 MISTAKE 大全

    2019-03-29 [NOI2016]网格 如果是矩形,要记得考虑n或m=1的情况,不要潜意识里就以为矩形就是接近正方形的那种理想矩形. 写bool型的函数,return 的语句要想清楚,不要放错位 ...

  10. sublime text 3 添加 javascript 代码片段 ( snippet )

    例如:新建console.log();的快捷键为 co 环境:windows 7 step1: Tools -> New Snippet <snippet> <content& ...