springmvc+mybatis架構搭建
首先我們先要弄清搭建項目的一般流程,需要注意哪些方面,想要什麼樣的效果,自己的功能有哪些?
(假設效果:項目目錄結構清晰,能夠查詢到本地資料庫中的内容。。)
<a target="_blank"></a>
在src/main/java檔案夾中,建立包cn.springmvc.model(存放javabean),
cn.springmvc.dao(存放spring與mybatis連接配接接口),
cn.springmvc.service(service接口),
cn.springmvc.service.impl(service接口的實作),
cn.springmvc.controller(存放控制層controller)
在src/main/resource檔案夾中,建立包conf(存放配置檔案),
mapper(mybatis的mapper檔案)
在src/test/java檔案夾中,建立包cn.springmvc.test(存放測試檔案)
在web-inf檔案夾下建立jsp檔案夾(存放jsp檔案)
這樣項目結構基本完成了
打開maven的pom檔案,對本次開發所需使用的架包依次導入(maven項目管理的優勢)
pom.xml(包依賴)
<a target="_blank" href="http://www.open-open.com/lib/view/open1392252233301.html#">?</a>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<code><</code><code>project</code> <code>xmlns</code><code>=</code><code>"http://maven.apache.org/pom/4.0.0"</code> <code>xmlns:xsi</code><code>=</code><code>"http://www.w3.org/2001/xmlschema-instance"</code>
<code> </code><code>xsi:schemalocation</code><code>=</code><code>"http://maven.apache.org/pom/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"</code><code>></code>
<code> </code><code><</code><code>modelversion</code><code>>4.0.0</</code><code>modelversion</code><code>></code>
<code> </code><code><</code><code>groupid</code><code>>eyas.springmvc</</code><code>groupid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>springmvc</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>packaging</code><code>>war</</code><code>packaging</code><code>></code>
<code> </code><code><</code><code>version</code><code>>0.0.1-snapshot</</code><code>version</code><code>></code>
<code> </code><code><</code><code>name</code><code>>springmvc maven webapp</</code><code>name</code><code>></code>
<code> </code><code><</code><code>url</code><code>>http://maven.apache.org</</code><code>url</code><code>></code>
<code> </code><code><</code><code>properties</code><code>></code>
<code> </code><code><!-- spring版本号 --></code>
<code> </code><code><</code><code>spring.version</code><code>>3.2.4.release</</code><code>spring.version</code><code>></code>
<code> </code><code><!-- mybatis版本号 --></code>
<code> </code><code><</code><code>mybatis.version</code><code>>3.2.4</</code><code>mybatis.version</code><code>></code>
<code> </code><code><!-- log4j日志檔案管理包版本 --></code>
<code> </code><code><</code><code>slf4j.version</code><code>>1.6.6</</code><code>slf4j.version</code><code>></code>
<code> </code><code><</code><code>log4j.version</code><code>>1.2.9</</code><code>log4j.version</code><code>></code>
<code> </code><code></</code><code>properties</code><code>></code>
<code> </code><code><</code><code>dependencies</code><code>></code>
<code> </code><code><!-- spring核心包 --></code>
<code> </code><code><!-- springframe start --></code>
<code> </code><code><</code><code>dependency</code><code>></code>
<code> </code><code><</code><code>groupid</code><code>>org.springframework</</code><code>groupid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>spring-core</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>version</code><code>>${spring.version}</</code><code>version</code><code>></code>
<code> </code><code></</code><code>dependency</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>spring-web</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>spring-oxm</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>spring-tx</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>spring-jdbc</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>spring-webmvc</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>spring-aop</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>spring-context-support</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>spring-test</</code><code>artifactid</code><code>></code>
<code> </code><code><!-- springframe end --></code>
<code> </code><code><!-- mybatis核心包 --></code>
<code> </code><code><</code><code>groupid</code><code>>org.mybatis</</code><code>groupid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>mybatis</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>version</code><code>>${mybatis.version}</</code><code>version</code><code>></code>
<code> </code><code><!-- mybatis/spring包 --></code>
<code> </code><code><</code><code>artifactid</code><code>>mybatis-spring</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>version</code><code>>1.2.2</</code><code>version</code><code>></code>
<code> </code><code><!-- mysql驅動包 --></code>
<code> </code><code><</code><code>groupid</code><code>>mysql</</code><code>groupid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>mysql-connector-java</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>version</code><code>>5.1.29</</code><code>version</code><code>></code>
<code> </code><code><!-- junit測試包 --></code>
<code> </code><code><</code><code>groupid</code><code>>junit</</code><code>groupid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>junit</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>version</code><code>>4.11</</code><code>version</code><code>></code>
<code> </code><code><</code><code>scope</code><code>>test</</code><code>scope</code><code>></code>
<code> </code><code><!-- 阿裡巴巴資料源包 --></code>
<code> </code><code><</code><code>groupid</code><code>>com.alibaba</</code><code>groupid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>druid</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>version</code><code>>1.0.2</</code><code>version</code><code>></code>
<code> </code><code><!-- json資料 --></code>
<code> </code><code><</code><code>groupid</code><code>>org.codehaus.jackson</</code><code>groupid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>jackson-mapper-asl</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>version</code><code>>1.9.13</</code><code>version</code><code>></code>
<code> </code><code><!-- 日志檔案管理包 --></code>
<code> </code><code><!-- log start --></code>
<code> </code><code><</code><code>groupid</code><code>>log4j</</code><code>groupid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>log4j</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>version</code><code>>${log4j.version}</</code><code>version</code><code>></code>
<code> </code><code><</code><code>groupid</code><code>>org.slf4j</</code><code>groupid</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>slf4j-api</</code><code>artifactid</code><code>></code>
<code> </code><code><</code><code>version</code><code>>${slf4j.version}</</code><code>version</code><code>></code>
<code> </code><code><</code><code>artifactid</code><code>>slf4j-log4j12</</code><code>artifactid</code><code>></code>
<code> </code><code><!-- log end --></code>
<code> </code><code></</code><code>dependencies</code><code>></code>
<code> </code><code><</code><code>build</code><code>></code>
<code> </code><code><</code><code>finalname</code><code>>springmvc</</code><code>finalname</code><code>></code>
<code> </code><code></</code><code>build</code><code>></code>
<code></</code><code>project</code><code>></code>
conf/ jdbc.properties(jdbc配置檔案)
<code>jdbc_driverclassname=com.mysql.jdbc.driver</code>
<code>jdbc_url=jdbc:mysql:</code><code>//localhost:3306/mydays?useunicode=true&amp;characterencoding=utf-8</code>
<code>jdbc_username=root</code>
<code>jdbc_password=root</code>
conf/spring.xml(spring配置檔案的掃描)
<code><?</code><code>xml</code> <code>version</code><code>=</code><code>"1.0"</code> <code>encoding</code><code>=</code><code>"utf-8"</code><code>?></code>
<code><</code><code>beans</code> <code>xmlns</code><code>=</code><code>"http://www.springframework.org/schema/beans"</code>
<code> </code><code>xmlns:context</code><code>=</code><code>"http://www.springframework.org/schema/context"</code>
<code> </code><code>xmlns:xsi</code><code>=</code><code>"http://www.w3.org/2001/xmlschema-instance"</code>
<code> </code><code>xsi:schemalocation="http://www.springframework.org/schema/beans</code>
<code> </code><code>http://www.springframework.org/schema/beans/spring-beans-3.0.xsd</code>
<code> </code><code>http://www.springframework.org/schema/context</code>
<code> </code><code>http://www.springframework.org/schema/context/spring-context.xsd"></code>
<code> </code><code><!-- 引入jdbc配置檔案 --></code>
<code> </code><code><</code><code>context:property-placeholder</code> <code>location</code><code>=</code><code>"classpath:conf/jdbc.properties"</code><code>/></code>
<code> </code>
<code> </code><code><!-- 掃描檔案(自動将servicec層注入) --></code>
<code> </code><code><</code><code>context:component-scan</code> <code>base-package</code><code>=</code><code>"cn.springmvc.service"</code><code>/></code>
<code></</code><code>beans</code><code>></code>
conf/spring-mybatis.xml(spring與mybatis連接配接屬性)
<code> </code><code>xmlns:xsi</code><code>=</code><code>"http://www.w3.org/2001/xmlschema-instance"</code>
<code> </code><code>xmlns:p</code><code>=</code><code>"http://www.springframework.org/schema/p"</code>
<code> </code><code>xmlns:context</code><code>=</code><code>"http://www.springframework.org/schema/context"</code>
<code> </code><code>xmlns:aop</code><code>=</code><code>"http://www.springframework.org/schema/aop"</code>
<code> </code><code>xmlns:tx</code><code>=</code><code>"http://www.springframework.org/schema/tx"</code>
<code> </code><code>xmlns:util</code><code>=</code><code>"http://www.springframework.org/schema/util"</code>
<code> </code><code>xsi:schemalocation="http://www.springframework.org/schema/beans</code>
<code> </code><code>http://www.springframework.org/schema/beans/spring-beans-3.2.xsd</code>
<code> </code><code>http://www.springframework.org/schema/context</code>
<code> </code><code>http://www.springframework.org/schema/context/spring-context-3.2.xsd</code>
<code> </code><code>http://www.springframework.org/schema/tx</code>
<code> </code><code>http://www.springframework.org/schema/tx/spring-tx-3.2.xsd</code>
<code> </code><code>http://www.springframework.org/schema/aop</code>
<code> </code><code>http://www.springframework.org/schema/aop/spring-aop-3.2.xsd</code>
<code> </code><code>http://www.springframework.org/schema/util</code>
<code> </code><code>http://www.springframework.org/schema/util/spring-util-3.2.xsd"></code>
<code> </code><code><</code><code>bean</code> <code>id</code><code>=</code><code>"datasource"</code> <code>class</code><code>=</code><code>"com.alibaba.druid.pool.druiddatasource"</code> <code>init-method</code><code>=</code><code>"init"</code>
<code> </code><code>destroy-method</code><code>=</code><code>"close"</code> <code>></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"driverclassname"</code><code>></code>
<code> </code><code><</code><code>value</code><code>>${jdbc_driverclassname}</</code><code>value</code><code>></code>
<code> </code><code></</code><code>property</code><code>></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"url"</code><code>></code>
<code> </code><code><</code><code>value</code><code>>${jdbc_url}</</code><code>value</code><code>></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"username"</code><code>></code>
<code> </code><code><</code><code>value</code><code>>${jdbc_username}</</code><code>value</code><code>></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"password"</code><code>></code>
<code> </code><code><</code><code>value</code><code>>${jdbc_password}</</code><code>value</code><code>></code>
<code> </code><code><!-- 連接配接池最大使用連接配接數 --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"maxactive"</code><code>></code>
<code> </code><code><</code><code>value</code><code>>20</</code><code>value</code><code>></code>
<code> </code><code><!-- 初始化連接配接大小 --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"initialsize"</code><code>></code>
<code> </code><code><</code><code>value</code><code>>1</</code><code>value</code><code>></code>
<code> </code><code><!-- 擷取連接配接最大等待時間 --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"maxwait"</code><code>></code>
<code> </code><code><</code><code>value</code><code>>60000</</code><code>value</code><code>></code>
<code> </code><code><!-- 連接配接池最大空閑 --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"maxidle"</code><code>></code>
<code> </code><code><!-- 連接配接池最小空閑 --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"minidle"</code><code>></code>
<code> </code><code><</code><code>value</code><code>>3</</code><code>value</code><code>></code>
<code> </code><code><!-- 自動清除無用連接配接 --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"removeabandoned"</code><code>></code>
<code> </code><code><</code><code>value</code><code>>true</</code><code>value</code><code>></code>
<code> </code><code><!-- 清除無用連接配接的等待時間 --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"removeabandonedtimeout"</code><code>></code>
<code> </code><code><</code><code>value</code><code>>180</</code><code>value</code><code>></code>
<code> </code><code><!-- 連接配接屬性 --></code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"connectionproperties"</code><code>></code>
<code> </code><code><</code><code>value</code><code>>clientencoding=utf-8</</code><code>value</code><code>></code>
<code> </code><code></</code><code>bean</code><code>></code>
<code> </code><code><!-- mybatis檔案配置,掃描所有mapper檔案 --></code>
<code> </code><code><</code><code>bean</code> <code>id</code><code>=</code><code>"sqlsessionfactory"</code>
<code> </code><code>class</code><code>=</code><code>"org.mybatis.spring.sqlsessionfactorybean"</code>
<code> </code><code>p:datasource-ref</code><code>=</code><code>"datasource"</code>
<code> </code><code>p:configlocation</code><code>=</code><code>"classpath:conf/mybatis-config.xml"</code>
<code> </code><code>p:mapperlocations</code><code>=</code><code>"classpath:mapper/*.xml"</code><code>/></code><code><!-- configlocation為mybatis屬性 mapperlocations為所有mapper--></code>
<code> </code>
<code> </code><code><!-- spring與mybatis整合配置,掃描所有dao --></code>
<code> </code><code><</code><code>bean</code> <code>class</code><code>=</code><code>"org.mybatis.spring.mapper.mapperscannerconfigurer"</code>
<code> </code><code>p:basepackage</code><code>=</code><code>"cn.springmvc.dao"</code>
<code> </code><code>p:sqlsessionfactorybeanname</code><code>=</code><code>"sqlsessionfactory"</code><code>/></code>
<code> </code>
<code> </code><code><!-- 對資料源進行事務管理 --></code>
<code> </code><code><</code><code>bean</code> <code>id</code><code>=</code><code>"transactionmanager"</code>
<code> </code><code>class</code><code>=</code><code>"org.springframework.jdbc.datasource.datasourcetransactionmanager"</code>
<code> </code><code>p:datasource-ref</code><code>=</code><code>"datasource"</code><code>/></code>
cn.springmvc.model/user.java(使用者基本資訊)
<code>package</code> <code>cn.springmvc.model;</code>
<code>/**</code>
<code> </code><code>* 使用者表</code>
<code> </code><code>*/</code>
<code>public</code> <code>class</code> <code>user {</code>
<code> </code><code>private</code> <code>int</code> <code>id;</code>
<code> </code><code>private</code> <code>int</code> <code>state;</code>
<code> </code><code>private</code> <code>string nickname;</code>
<code> </code><code>public</code> <code>int</code> <code>getid() {</code>
<code> </code><code>return</code> <code>id;</code>
<code> </code><code>}</code>
<code> </code><code>public</code> <code>void</code> <code>setid(</code><code>int</code> <code>id) {</code>
<code> </code><code>this</code><code>.id = id;</code>
<code> </code><code>public</code> <code>int</code> <code>getstate() {</code>
<code> </code><code>return</code> <code>state;</code>
<code> </code><code>public</code> <code>void</code> <code>setstate(</code><code>int</code> <code>state) {</code>
<code> </code><code>this</code><code>.state = state;</code>
<code> </code><code>public</code> <code>string getnickname() {</code>
<code> </code><code>return</code> <code>nickname;</code>
<code> </code><code>public</code> <code>void</code> <code>setnickname(string nickname) {</code>
<code> </code><code>this</code><code>.nickname = nickname;</code>
<code>}</code>
cn.springmvc.dao/userdao.java(dao操作接口)
<code>package</code> <code>cn.springmvc.dao;</code>
<code>import</code> <code>cn.springmvc.model.user;</code>
<code>public</code> <code>interface</code> <code>userdao {</code>
<code> </code><code>/**</code>
<code> </code><code>* 添加新使用者</code>
<code> </code><code>* @param user</code>
<code> </code><code>* @return</code>
<code> </code><code>*/</code>
<code> </code><code>public</code> <code>int</code> <code>insertuser(user user);</code>
cn.springmvc.service/userservice.java(service層接口)
<code>package</code> <code>cn.springmvc.service;</code>
<code>public</code> <code>interface</code> <code>userservice {</code>
cn.springmvc.service.impl/userserviceimpl.java(service層接口實作)
<code>package</code> <code>cn.springmvc.service.impl;</code>
<code>import</code> <code>org.springframework.beans.factory.annotation.autowired;</code>
<code>import</code> <code>org.springframework.stereotype.service;</code>
<code>import</code> <code>cn.springmvc.dao.userdao;</code>
<code>import</code> <code>cn.springmvc.service.userservice;</code>
<code>@service</code>
<code>public</code> <code>class</code> <code>userserviceimpl</code><code>implements</code> <code>userservice{</code>
<code> </code><code>@autowired</code>
<code> </code><code>private</code> <code>userdao userdao;</code>
<code> </code><code>@override</code>
<code> </code><code>public</code> <code>int</code> <code>insertuser(user user) {</code>
<code> </code><code>// todo auto-generated method stub</code>
<code> </code><code>return</code> <code>userdao.insertuser(user);</code>
conf/mybatis-config.xml(mybatis配置的基本檔案)
<code><?</code><code>xml</code> <code>version</code><code>=</code><code>"1.0"</code> <code>encoding</code><code>=</code><code>"utf-8"</code> <code>?></code>
<code><!doctype configuration</code>
<code>public "-//mybatis.org//dtd config 3.0//en"</code>
<code>"http://mybatis.org/dtd/mybatis-3-config.dtd"></code>
<code><</code><code>configuration</code><code>></code>
<code> </code><code><!-- 命名空間 --></code>
<code> </code><code><</code><code>typealiases</code><code>></code>
<code> </code><code><</code><code>typealias</code> <code>alias</code><code>=</code><code>"user"</code> <code>type</code><code>=</code><code>"cn.springmvc.model.user"</code><code>/></code>
<code> </code><code></</code><code>typealiases</code><code>></code>
<code> </code><code><!-- 映射map --></code>
<code> </code><code><</code><code>mappers</code><code>></code>
<code> </code><code></</code><code>mappers</code><code>></code>
<code></</code><code>configuration</code><code>></code>
mapper/usermapper.xml(mybatis的實作)
<code><!doctype mapper</code>
<code> </code><code>public "-//mybatis.org//dtd mapper 3.0//en"</code>
<code>"http://mybatis.org/dtd/mybatis-3-mapper.dtd"></code>
<code><</code><code>mapper</code> <code>namespace</code><code>=</code><code>"cn.springmvc.dao.userdao"</code><code>></code>
<code> </code>
<code> </code><code><</code><code>insert</code> <code>id</code><code>=</code><code>"insertuser"</code> <code>parametertype</code><code>=</code><code>"user"</code> <code>keyproperty</code><code>=</code><code>"id"</code><code>></code>
<code> </code><code>insert into days_user( </code>
<code> </code><code>state,</code>
<code> </code><code>nickname)</code>
<code> </code><code>values</code>
<code> </code><code>( </code>
<code> </code><code>#{state},</code>
<code> </code><code>#{nickname})</code>
<code> </code><code></</code><code>insert</code><code>></code>
<code> </code>
<code></</code><code>mapper</code><code>></code>
這樣就完成了基本插入使用者的功能!
cn.springmvc.test/usertest.java(使用者測試子產品)
<code>package</code> <code>cn.springmvc.test;</code>
<code>import</code> <code>org.junit.before;</code>
<code>import</code> <code>org.junit.test;</code>
<code>import</code> <code>org.springframework.context.applicationcontext;</code>
<code>import</code> <code>org.springframework.context.support.classpathxmlapplicationcontext;</code>
<code>public</code> <code>class</code> <code>usertest {</code>
<code>private</code> <code>userservice userservice;</code>
<code> </code><code>@before</code>
<code> </code><code>public</code> <code>void</code> <code>before(){ </code>
<code> </code><code>@suppresswarnings</code><code>(</code><code>"resource"</code><code>)</code>
<code> </code><code>applicationcontext context =</code><code>new</code> <code>classpathxmlapplicationcontext(</code><code>new</code> <code>string[]{</code><code>"classpath:conf/spring.xml"</code>
<code> </code><code>,</code><code>"classpath:conf/spring-mybatis.xml"</code><code>});</code>
<code> </code><code>userservice = (userservice) context.getbean(</code><code>"userserviceimpl"</code><code>);</code>
<code> </code><code>@test</code>
<code> </code><code>public</code> <code>void</code> <code>adduser(){</code>
<code> </code><code>user user =</code><code>new</code> <code>user();</code>
<code> </code><code>user.setnickname(</code><code>"你好"</code><code>);</code>
<code> </code><code>user.setstate(</code><code>2</code><code>);</code>
<code> </code><code>system.out.println(userservice.insertuser(user));</code>
測試結果如圖:
即完成插入功能!
web.xml(web功能配置)
<code><</code><code>web-app</code> <code>xmlns:xsi</code><code>=</code><code>"http://www.w3.org/2001/xmlschema-instance"</code>
<code> </code><code>xmlns</code><code>=</code><code>"http://java.sun.com/xml/ns/javaee"</code> <code>xmlns:web</code><code>=</code><code>"http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</code>
<code> </code><code>xsi:schemalocation</code><code>=</code><code>"http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"</code>
<code> </code><code>id</code><code>=</code><code>"webapp_id"</code> <code>version</code><code>=</code><code>"2.5"</code><code>></code>
<code> </code><code><</code><code>display-name</code><code>>archetype created web application</</code><code>display-name</code><code>></code>
<code> </code><code><!-- 讀取spring配置檔案 --></code>
<code> </code><code><</code><code>context-param</code><code>></code>
<code> </code><code><</code><code>param-name</code><code>>contextconfiglocation</</code><code>param-name</code><code>></code>
<code> </code><code><</code><code>param-value</code><code>>classpath:conf/spring.xml;</code>
<code> </code><code>classpath:conf/spring-mybatis.xml</code>
<code> </code><code></</code><code>param-value</code><code>></code>
<code> </code><code></</code><code>context-param</code><code>></code>
<code> </code><code><!-- 設計路徑變量值 --></code>
<code> </code><code><</code><code>param-name</code><code>>webapprootkey</</code><code>param-name</code><code>></code>
<code> </code><code><</code><code>param-value</code><code>>springmvc.root</</code><code>param-value</code><code>></code>
<code> </code><code><!-- spring字元集過濾器 --></code>
<code> </code><code><</code><code>filter</code><code>></code>
<code> </code><code><</code><code>filter-name</code><code>>springencodingfilter</</code><code>filter-name</code><code>></code>
<code> </code><code><</code><code>filter-class</code><code>>org.springframework.web.filter.characterencodingfilter</</code><code>filter-class</code><code>></code>
<code> </code><code><</code><code>init-param</code><code>></code>
<code> </code><code><</code><code>param-name</code><code>>encoding</</code><code>param-name</code><code>></code>
<code> </code><code><</code><code>param-value</code><code>>utf-8</</code><code>param-value</code><code>></code>
<code> </code><code></</code><code>init-param</code><code>></code>
<code> </code><code><</code><code>param-name</code><code>>forceencoding</</code><code>param-name</code><code>></code>
<code> </code><code><</code><code>param-value</code><code>>true</</code><code>param-value</code><code>></code>
<code> </code><code></</code><code>filter</code><code>></code>
<code> </code><code><</code><code>filter-mapping</code><code>></code>
<code> </code><code><</code><code>url-pattern</code><code>>/*</</code><code>url-pattern</code><code>></code>
<code> </code><code></</code><code>filter-mapping</code><code>></code>
<code> </code><code><!-- 日志記錄 --></code>
<code> </code><code><!-- 日志配置檔案路徑 --></code>
<code> </code><code><</code><code>param-name</code><code>>log4jconfiglocation</</code><code>param-name</code><code>></code>
<code> </code><code><</code><code>param-value</code><code>>classpath:conf/log4j.properties</</code><code>param-value</code><code>></code>
<code> </code><code><!-- 日志頁面的重新整理間隔 --></code>
<code> </code><code><</code><code>param-name</code><code>>log4jrefreshinterval</</code><code>param-name</code><code>></code>
<code> </code><code><</code><code>param-value</code><code>>6000</</code><code>param-value</code><code>></code>
<code> </code><code><</code><code>listener</code><code>></code>
<code> </code><code><</code><code>listener-class</code><code>>org.springframework.web.util.log4jconfiglistener</</code><code>listener-class</code><code>></code>
<code> </code><code></</code><code>listener</code><code>></code>
<code> </code><code><</code><code>listener-class</code><code>>org.springframework.web.context.contextloaderlistener</</code><code>listener-class</code><code>></code>
<code> </code><code><!-- springmvc核心配置 --></code>
<code> </code><code><</code><code>servlet</code><code>></code>
<code> </code><code><</code><code>servlet-name</code><code>>spring</</code><code>servlet-name</code><code>></code>
<code> </code><code><</code><code>servlet-class</code><code>>org.springframework.web.servlet.dispatcherservlet</</code><code>servlet-class</code><code>></code>
<code> </code><code><</code><code>param-name</code><code>>contextconfiglocation</</code><code>param-name</code><code>></code>
<code> </code><code><</code><code>param-value</code><code>>classpath:conf/spring-mvc.xml</</code><code>param-value</code><code>></code>
<code> </code><code><</code><code>load-on-startup</code><code>>2</</code><code>load-on-startup</code><code>></code>
<code> </code><code></</code><code>servlet</code><code>></code>
<code> </code><code><</code><code>servlet-mapping</code><code>></code>
<code> </code><code><</code><code>url-pattern</code><code>>*.do</</code><code>url-pattern</code><code>></code>
<code> </code><code></</code><code>servlet-mapping</code><code>></code>
<code> </code><code><</code><code>welcome-file-list</code><code>></code>
<code> </code><code><</code><code>welcome-file</code><code>>index.jsp</</code><code>welcome-file</code><code>></code>
<code> </code><code></</code><code>welcome-file-list</code><code>></code>
<code> </code><code><!-- 錯誤跳轉頁面 --></code>
<code> </code><code><</code><code>error-page</code><code>></code>
<code> </code><code><!-- 路徑不正确 --></code>
<code> </code><code><</code><code>error-code</code><code>>404</</code><code>error-code</code><code>></code>
<code> </code><code><</code><code>location</code><code>>/web-inf/errorpage/404.jsp</</code><code>location</code><code>></code>
<code> </code><code></</code><code>error-page</code><code>></code>
<code> </code><code><!-- 沒有通路權限,通路被禁止 --></code>
<code> </code><code><</code><code>error-code</code><code>>405</</code><code>error-code</code><code>></code>
<code> </code><code><</code><code>location</code><code>>/web-inf/errorpage/405.jsp</</code><code>location</code><code>></code>
<code> </code><code><!-- 内部錯誤 --></code>
<code> </code><code><</code><code>error-code</code><code>>500</</code><code>error-code</code><code>></code>
<code> </code><code><</code><code>location</code><code>>/web-inf/errorpage/500.jsp</</code><code>location</code><code>></code>
<code></</code><code>web-app</code><code>></code>
conf/spring-mvc.xml(mvc配置檔案)
<code> </code><code>xmlns:mvc</code><code>=</code><code>"http://www.springframework.org/schema/mvc"</code>
<code> </code><code>xsi:schemalocation="</code>
<code> </code><code>http://www.springframework.org/schema/beans</code>
<code> </code><code>http://www.springframework.org/schema/mvc</code>
<code> </code><code>http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd"></code>
<code> </code><code><!-- 掃描controller(controller層注入) --></code>
<code> </code><code><</code><code>context:component-scan</code> <code>base-package</code><code>=</code><code>"cn.springmvc.controller"</code><code>/></code>
<code> </code>
<code> </code><code><!-- 避免ie在ajax請求時,傳回json出現下載下傳 --></code>
<code> </code><code><</code><code>bean</code> <code>id</code><code>=</code><code>"jacksonmessageconverter"</code> <code>class</code><code>=</code><code>"org.springframework.http.converter.json.mappingjacksonhttpmessageconverter"</code><code>> </code>
<code> </code><code><</code><code>property</code> <code>name</code><code>=</code><code>"supportedmediatypes"</code><code>></code>
<code> </code><code><</code><code>list</code><code>></code>
<code> </code><code><</code><code>value</code><code>>text/html;charset=utf-8</</code><code>value</code><code>></code>
<code> </code><code></</code><code>list</code><code>></code>
<code> </code><code></</code><code>property</code><code>></code>
<code> </code><code></</code><code>bean</code><code>></code>
<code> </code><code><!-- 對模型視圖添加前字尾 --></code>
<code> </code><code><</code><code>bean</code> <code>id</code><code>=</code><code>"viewresolver"</code> <code>class</code><code>=</code><code>"org.springframework.web.servlet.view.internalresourceviewresolver"</code>
<code> </code><code>p:prefix</code><code>=</code><code>"/web-inf/jsp/"</code> <code>p:suffix</code><code>=</code><code>".jsp"</code><code>/></code>
conf/log4j.properties(日志記錄的配置檔案)
<code>### set log levels ###</code>
<code>#log4j.rootlogger = debug , stdout , d , e</code>
<code>log4j.rootlogger = debug , stdout , d</code>
<code>### output to the console ###</code>
<code>log4j.appender.stdout = org.apache.log4j.consoleappender</code>
<code>log4j.appender.stdout.target = system.out</code>
<code>log4j.appender.stdout.layout = org.apache.log4j.patternlayout</code>
<code>#log4j.appender.stdout.layout.conversionpattern = %d{absolute} %5p %c{ 1 }:%l - %m%n</code>
<code>log4j.appender.stdout.layout.conversionpattern = %-d{yyyy-mm-dd hh:mm:ss} [%c]-[%p] %m%n</code>
<code>### output to the log file ###</code>
<code>log4j.appender.d = org.apache.log4j.dailyrollingfileappender</code>
<code>log4j.appender.d.file = ${springmvc.root}/web-inf/logs/log.log</code>
<code>log4j.appender.d.append = true</code>
<code>log4j.appender.d.threshold = debug</code>
<code>log4j.appender.d.layout = org.apache.log4j.patternlayout</code>
<code>log4j.appender.d.layout.conversionpattern = %-d{yyyy-mm-dd hh:mm:ss} [ %t:%r ] - [ %p ] %m%n</code>
<code>### save exception information to separate file ###</code>
<code>log4j.appender.d.file = ${springmvc.root}/web-inf/logs/error.log</code>
<code>log4j.appender.d.threshold = error</code>
web-inf/jsp/index.jsp(測試檔案)
<code><%@ page language=</code><code>"java"</code> <code>contenttype=</code><code>"text/html; charset=utf-8"</code>
<code> </code><code>pageencoding=</code><code>"utf-8"</code><code>%></code>
<code><!doctype html public</code><code>"-//w3c//dtd html 4.01 transitional//en"</code> <code>"http://www.w3.org/tr/html4/loose.dtd"</code><code>></code>
<code><html></code>
<code><head></code>
<code><meta http-equiv=</code><code>"content-type"</code> <code>content=</code><code>"text/html; charset=utf-8"</code><code>></code>
<code><title>insert title here</title></code>
<code></head></code>
<code><body></code>
<code><h1>歡迎你!!!</h1></code>
<code></body></code>
<code></html></code>
cn.springmvc.controller/usercomtroller.java(controller層控制)
<code>package</code> <code>cn.springmvc.controller;</code>
<code>import</code> <code>org.springframework.stereotype.controller;</code>
<code>import</code> <code>org.springframework.web.bind.annotation.requestmapping;</code>
<code>@controller</code>
<code>@requestmapping</code><code>(</code><code>"/"</code><code>)</code>
<code>public</code> <code>class</code> <code>usercontroller {</code>
<code> </code><code>@requestmapping</code><code>(</code><code>"index"</code><code>)</code>
<code> </code><code>public</code> <code>string index(){</code>
<code> </code><code>return</code> <code>"index"</code><code>;</code>
将該項目部署到本地tomcat6中
右擊該項目選擇run as,選擇run on server
選擇自己建立的tomcat6運作如圖:
控制台列印出日志如圖(啟動成功):
在浏覽器中輸入:http://localhost:8080/springmvc/index.do 進行測試
效果如圖(傳回成功):
http://download.csdn.net/detail/fengerfhf/6916831
來自:http://my.oschina.net/u/1011897/blog/199172