Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
Jsp+servlet>struts1>spring mvc>struts2+freemarker>>struts2,ognl,值栈。<!--?xml:namespace prefix = "o" /-->
开发效率上,基本正好相反。值得强调的是,spring mvc开发效率和struts2不相上下。
现在用一个例子来证明springmvc的魅力吧。例子是基于xml配置的springmvc+hibernate。
新建项目什么的,就不说了哈。现在没有Struts2了。所以也就没有Struts.xml文件了。和传统的ssh相比只多了springmvc的配置文件。先从web.xml文件开始说起吧。
web.xml
首先配置一个Servlet,用来拦截请求。如:
<servlet> <servlet-name>dispatcherServlet</servlet-name>
<servlet- class >
org.springframework.web.servlet.DispatcherServlet
</servlet- class >
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-*.xml</param-value>
</init-param>
<load-on-startup> 1 </load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*. do </url-pattern>
</servlet-mapping>
|
spring-*.xml表示加载WEB-INF下所有以spring-开头的配置文件。学校里面教的可能有一个applicationContent.xml文件,然后把所有的东西都配在这里面。从例子角度上考虑可以这么做。但是从企业级的应用上考虑,不推荐采用这种方式。推荐将applicationContent.xml中的东西进行分离。dao.xml只写与Dao层相关的东西,service.xml只写与Service层相关的东西。而dataSource、sessionFactory以及事务用hibernate.xml保存。mvc.xml则写与控制器相关的东西。
dao、service和hibernate的配置文件就不多说了,和以前没有什么两样。如果想看具体内容,可以去文章最后指定的链接下载即可。
重点说说mvc.xml的内容。
mvc.xml
这个文件主要定义了控制器方法调用规则、视图层的基本设置、Servlet的映射列表以及具体的控制器等等。主要代码:
<!-- Controller方法调用规则定义 -->
<bean id= "paraMethodResolver" class = "org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver" >
<property name= "paramName" value= "action" />
<property name= "defaultMethodName" value= "list" />
</bean> <!-- 页面View层基本信息设定 --> <bean id= "viewResolver" class = "org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name= "viewClass" value= "org.springframework.web.servlet.view.JstlView" />
<!--前缀 --> <!--<property name= "prefix" value= "/myjsp/" /> -->
<!--后缀 --> <property name= "suffix" value= ".jsp" />
</bean> <!-- servlet映射列表,所有控制层Controller的servlet在这里定义 --> <bean id= "urlMapping" class = "org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" >
<property name= "mappings" >
<props> <prop key= "user.do" >empController</prop>
</props> </property> </bean> <bean id= "empController" class = "com.test.controller.EmpController" >
<property name= "empService" ref= "empService" ></property>
</bean> |
前面两个bean基本上不用设置什么,主要是后面两个需要注意。从代码层面可以看出请求user.do的时候会交给empController来处理。
我们看看EmpController类有什么东西。
public class EmpController implements Controller {
private EmpService empService;
@Override public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
System.out.println( "handleRequest.............." );
Emp emp = new Emp();
emp.setName(request.getParameter( "name" ).toString());
empService.saveEmp(emp); return new ModelAndView( "main" );
} public EmpService getEmpService() {
return empService;
} public void setEmpService(EmpService empService) {
this .empService = empService;
} } |
在控制器里面实现Controller接口并重写handleRequest方法。这个地方是不是有点熟悉呀,和Servlet很相似吧。然后调用服务层的方法返回字符串或者ModelAndView对象。处理成功以后会跳转到main.jsp页面。至于并没有写视图的名称为啥能跳转到main.jsp呢,是因为在mvc.xml中定义了视图的后缀。
光看代码还是有点枯燥,来看看项目结构图吧。
如果想参考源码可以去http://pan.baidu.com/share/link?shareid=3240675456&uk=587859240下载
相关推荐
以上是springmvc+spring+hibernate整合基于eclipse,oracle开发
Spring+SpringMVC+Hibernate+maven项目,适用初学者学习。
Maven整合Spring+SpringMVC+Hibernate+SpringDataJPA
很全面的jar包,可以直接用于springmvc+hibernate项目开发。
springMVC+maven+hibernate框架,搭建的过程 可以参考 java进阶(五)------springMVC---springMVC+Hibernate+maven完整搭建运行步骤 http://blog.csdn.net/zzq900503/article/details/49892783
基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+Hibernate实现的在线购物商城.zip基于springmvc+...
系统采用技术:Spring+SpringMVC+Hibernate+jQuery+Ajax+面向接口编程。 简介:该图书管理项目实现了三种角色的功能,分别是超级管理员,图书管理员和读者。在系统中,实现了图书管理,统计管理,系统管理和系统监控...
Spring+SpringMVC+Hibernate+JSP操作数据
spring+springMVC+Hibernate整合
springMvc整合hibernate Demo
springmvc+hibernate+oracle基础框架,项目源码和数据库脚本(dmp、sql),添加myeclipse中可以直接使用
一个用springmvc+hibernate+spring maven实现的增、删、改、查的例子
Spring+SpringMVC+Hibernate+Maven框架搭建及配置文件源码
是我自己做的springMVC+hibernate的环境,包括连接数据库查询,基于注解的方式
SpringMVC+Hibernate+annotation+Easyui权限管理系统,Session过期控制(包括Ajax请求的过期控制),访问权限控制(权限控制到按钮),hibernate数据库用户名与密码加密,其它的不说了,绝对物有所值
springmvc+hibernate+easyui实现了菜单动态显示和数据列表动态显示
spring+springmvc+hibernate+ thymeleaf 框架组合练习学习做的一个完整的精简的小demo项目源码
spring+springmvc+hibernate+jpa环境搭建
springMVC+hibernate开发项目用到的jar包,相对比较完善了。
SpringMVC +Hibernate JPA+Spring-data-jpa实例 是入门的实例。