我用的是Maven控制jar包,在此先上配置,里边涵盖了项目所有的包
4.0.0
com.bdcbus
bdcbus
war
0.0.1-SNAPSHOT
bdcbus Maven Webapp
http://maven.apache.org
junit
junit
4.11
test
org.hamcrest
hamcrest-all
1.3
test
org.springframework
spring-test
3.1.2.RELEASE
test
org.apache.httpcomponents
httpclient
4.2.1
net.sf.json-lib
json-lib
2.1
jdk15
com.alibaba
fastjson
1.1.32
javax.servlet
servlet-api
2.4
provided
org.apache.httpcomponents
httpclient
4.2.1
test
org.apache.httpcomponents
httpmime
4.2.5
commons-httpclient
commons-httpclient
3.1
org.apache.commons
commons-io
1.3.2
commons-beanutils
commons-beanutils
1.8.3
commons-collections
commons-collections
3.2.1
commons-validator
commons-validator
1.4.0
commons-io
commons-io
2.0
commons-logging
commons-logging
1.1.3
org.slf4j
slf4j-api
1.6.6
org.slf4j
slf4j-log4j12
1.6.6
org.hibernate
hibernate-core
4.1.7.Final
org.hibernate
hibernate-ehcache
4.1.7.Final
net.sf.ehcache
ehcache-core
2.6.0
org.hibernate
hibernate-proxool
4.1.7.Final
proxool
proxool
0.9.1
proxool
proxool-cglib
0.9.1
org.hibernate
hibernate-validator
4.3.0.Final
org.hibernate
hibernate-validator-annotation-processor
4.3.0.Final
net.sf.ezmorph
ezmorph
1.0.6
log4j
log4j
1.2.17
mysql
mysql-connector-java
5.1.22
org.springframework
spring-web
4.0.0.RELEASE
org.springframework
spring-core
4.0.0.RELEASE
org.springframework
spring-orm
3.1.2.RELEASE
aopalliance
aopalliance
1.0
org.aspectj
aspectjrt
1.7.0
org.aspectj
aspectjweaver
1.7.0
cglib
cglib-nodep
2.2.2
com.fasterxml
classmate
0.8.0
quartz
quartz
1.5.2
org.springframework
spring-context
3.1.2.RELEASE
org.springframework
spring-jdbc
3.1.2.RELEASE
org.springframework
spring-webmvc
3.2.6.RELEASE
commons-fileupload
commons-fileupload
1.3
org.springframework.security
spring-security-core
3.1.4.RELEASE
org.springframework.security
spring-security-web
3.1.2.RELEASE
org.springframework.security
spring-security-config
3.1.4.RELEASE
org.springframework.security
spring-security-ldap
3.1.4.RELEASE
org.springframework.security
spring-security-acl
3.1.4.RELEASE
org.springframework.security
spring-security-openid
3.1.2.RELEASE
org.freemarker
freemarker
2.3.20
org.springframework
spring-context-support
3.2.4.RELEASE
bdcbus
首先说明一下,web.xml 的加载顺序:
ServletContext -> context-param -> listener -> filter -> servlet ,而同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的。
注意:opensessionView尽量关闭,对于放在公网上的网站来讲,会影响网站性能,解决LAZY方法:尽量在service层输出完整对象。
/index.jsp
180
contextConfigLocation
classpath:spring.xml
classpath:spring-security.xml
org.springframework.web.context.ContextLoaderListener
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-mvc.xml
1
springmvc
/
springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy
springSecurityFilterChain
/
第二步,配置spring.xml
配置文件及注释如下:
classpath:resources.properties
com.bdcbus
${hibernate.dialect}
${hibernate.show_sql}
true
${hibernate.hbm2ddl.auto}
${hibernate.query.substitutions}
${hibernate.default_batch_fetch_size}
${hibernate.max_fetch_depth}
${hibernate.generate_statistics}
${hibernate.bytecode.use_reflection_optimizer}
${hibernate.cache.use_second_level_cache}
${hibernate.cache.use_query_cache}
${hibernate.cache.region.factory_class}
${net.sf.ehcache.configurationResourceName}
${hibernate.cache.use_structured_entries}
Spring的web框架围绕DispatcherServlet设计。 DispatcherServlet的作用是将请求分发到不同的处理器。
DispatcherServlet类似Struts2的中央处理器,SpringMVC框架是被用来取代Struts2的,SpringMVC里面的Controller类似Struts2中Action
spring-mvc.xml的配置如下:
0
UTF-8
0.##########
yyyy-MM-dd HH:mm:ss
true
ignore
第四步:目录底下配置resources.properties
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.hbm2ddl.auto=update
hibernate.show_sql=false
hibernate.query.substitutions=true 1, false 0
hibernate.default_batch_fetch_size=16
hibernate.max_fetch_depth=2
hibernate.bytecode.use_reflection_optimizer=true
hibernate.cache.use_second_level_cache=false
hibernate.cache.use_query_cache=false
hibernate.cache.region.factory_class=org.hibernate.cache.EhCacheRegionFactory
net.sf.ehcache.configurationResourceName=/ehcache_hibernate.xml
hibernate.cache.use_structured_entries=false
hibernate.generate_statistics=true
connection.driver_class=com.mysql.jdbc.Driver
connection.url=jdbc:mysql://127.0.0.1:3306/nboss?characterEncoding=UTF-8
connection.username=root
connection.password=098732
proxool.maximum.connection.count=40
proxool.minimum.connection.count=5
proxool.statistics=1m,15m,1h,1d
proxool.simultaneous.build.throttle=30
Controller类用法
1>新建一个Controller类
a.我们新建一个Controller类(类似Struts2中的Action类):AppController.java
b.在WebRoot中views文件夹中新建一个index.jsp
2>@RequestMapping配置
a.请求的URL:http://xxx/hello/yes.html(两个@RequestMapping配置值组合成一个URL)
b.传递参数
第一种方式:
第二种方式:
如果传递多个参数,这里用两个举例:
3>Controller return types
第一种:跳转到视图
第二种:ModelAndView
第三种:@ResponseBody修饰,用于显示信息
a.只显示字符串信息
b.显示对象,转换成json
首先需要导入jar包:jackson-core-lgpl-1.9.6.jar和jackson-mapper-lgpl-1.9.6.jar
4>接受表单值:
a.save.jsp
b. @RequestMapping(value="/save.html",method=RequestMethod.POST)
5>使用request、response、session(只需要传进来即可)
可以在hello.jsp页面通过${sessionScope.session }取到值
6>文件上传
首先我们导入jar包:commons-fileupload-1.2.2.jar、commons-io-2.0.1.jar
a.配置文件上传解析器:我们已经在springmvc-servlet.xml配置了“配置文件上传解析器”
b.JSP页面
c.服务器端程序
7>Model ModelAndView
ModelAndView前面已经详细介绍过
区别就是:Model的返回类型可以是String,ModelAndView返回类型是ModelAndView
用@ModelAttribute注解获取POST请求的FORM表单数据
@RequestParam(value="a", required=false)
Spring MVC集成freemarker常见问题
问题1,spring mvc 找不到ftl文件
集成中遇到一个问题,就是一直找不到渲染的ftl文件。后来找到原因是,配置的地方出错。特意标记出来。后面配置的时候需要注意一下。
报错:
通常我们在配置渲染的路径时,都会直接在viewResolver中直接配置,prefix,suffix.但是需要注意的在配置freemarker时,还有一个templateLoaderPath值设置问题。
问题2,spring mvc 集成Freemarker乱码问题
Spring MVC中集成Freemarker乱码问题:在网上查了很久,都找到相关的文件。但都只是写了部分配置事项。Spring在集成Freemarker需要在两个地方指定编码集
1.
2.
都指定为UTF-8,问题解决。