最近项目需要用到springMVC,所以学习一下,仿照spring-framework-2.5.6\samples\petclinic\例子,垒码一个登录验证的例子:
第一步:新建一个web工程,这一步都是轻车熟路了。该工程名:springLogin
第二步:添加jar包:
spring.jar、
log4j-1.2.15.jar、
dom4j-1.6.1.jar、
ojdbc14.jar、
jstl-1.2.jar、
jaxen-1.1-beta-7.jar、
commons-dbcp.jar、
commons-pool.jar、
commons-logging-1.0.4.jar、
aspectjrt.jar、
aspectjweaver.jar、
spring-beans.jar、
spring-core.jar、
spring-webmvc.jar、
第三步:拷贝
spring-framework-2.5.6\samples\petclinic\war\WEB-INF\applicationContext-jdbc.xml到该工程下的\WEB-INF\下。
将spring-framework-2.5.6\samples\petclinic\war\WEB-INF\classes\jdbc.properties拷贝到该工程src下面,然后修改数据库的连接配置。在.properties文件里面把hibernate和jpa相关的配置注释掉,然后将数据库配置成oracle。
拷贝log4j.properties文件到src下。
基本配置完毕,接下来我就开始写代码。我就写一个查询用户名的例子,查询该用户是否存在(我采用从后往前写):
第四步:新建一个com.join.po.User类文件。
第五步:新建一个dao接口com.join.dao.LoginDAO。
第六步:新建一个jdbc实现类。SimpleJdbcUser。
第七步:新建web类:com.join.web. LoginController,用于首页的跳转。新建类:com.join.web. UserController,用于业务处理。
第八步:拷贝过来几个jsp页面,修理一下,该去的去掉,该加的加上。
最后一步:修改一下xml配置文件即可。
初步总结:
控制器:通过查看petclinic例子,发现所有的实现Controller的类(除了跳转的那个实现之外),都包含一个处理get请求和处理post请求的一个方法,而且有且仅有一个,并且增删改查的控制器是分开的,这一系列业务操作不在一个控制器里面实现。这给我的感觉就像是struts里面的Action类一样,只包含一个execute方法。想到这,那么我认为springMvc肯定也会提供一个像DispatchAction类似的控制器,让我们把对一个pojo的业务操作写在一个控制器里面。
跳转:通过配置一个前缀和后缀,解析器就会自己去找相应的视图。包括pojo、 service的注入以及事物控制全部注解方式实现,很方便。
@Controller 指明一个特定的类承担控制器的职责,而没有扩展任何控制器基类或者引用Servlet API的必要。Dispatcher将会在这样被注解的类中扫描映射的方法,探测注解@RequestMapping。
@RequestMapping 被用于映射如“editPet.do”这样的URL到一个完整的类或者一个特定的处理方法。
@RequestParam 绑定请求参数到方法参数。
详细参考 spring使用说明吧。