SpringMVC解析.doc
文本预览下载声明
Spring MVC
Spring MVC介绍
Spring3 MVC VS Struts2
官方的下载网址是:/download
Spring MVC会比Struts快,在Struts中默认配置了很多缺省的拦截器,在给开发者提供便利的同时,失去了灵活性和开发效率.
Spring mvc是基于方法的设计, 而Sturts是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性,而spring基于方法,粒度更细,可控制更强
设计思想上:Struts更加符合oop的编程思想,Spring是在在Servlet上扩展
提供强大的约定大于配置的契约式编程支持
支持JSR 303验证规范,实现了基于注解方式的可验证的Java Bean
第一个MVC案例
配置前端过滤器
DispatcherServlet实际上是一个Servlet(它继承了HttpServlet)。与其它Servlet一样,DispatcherServlet定义在web应用的web.xml文件中。 DispatcherServlet处理的请求必须在同一个web.xml文件里使用url-mapping定义映射
servlet
servlet-nameaction/servlet-name
servlet-classorg.springframework.web.servlet.DispatcherServlet
/servlet-class
!-- 修改路径默认加载路径 --
init-param
param-namecontextConfigLocation/param-name
param-valueclasspath:springMVC.xml/param-value
/init-param
load-on-startup1/load-on-startup
/servlet
servlet-mapping
servlet-nameaction/servlet-name
url-pattern*.action/url-pattern
/servlet-mapping 创建控制器
控制器的概念是MVC设计模式的一部分(确切地说,是MVC中的C)。应用程序的行为通常被定义为服务接口, 而控制器使得用户可以访问应用所提供的服务。控制器解析用户输入,并将其转换成合理的模型数据,从而可以进一步由视图展示给用户。 Spring以一种抽象的方式实现了控制器概念,这样可以支持不同类型的控制器。Spring本身包含表单控制器、命令控制器、向导型控制器等多种多样的控制器。
Spring控制器架构的基础是org.springframework.mvc.Controller接口其代码如下
/**
* 演示了Spring mvcZ中的c, 它负责处理请求并返回合适的模型和视图
* Spring MVC实现的基础 就是这三个概念:Mdel、View(ModelAndView)以及 Controller
*/
public class FirstController implements Controller {
// 构造方法,在启动的时候就创建Action,而且常驻内容,注意与Struts Action生命周期不同
public FirstController(){
System.out.println(---FirstController()---);
}
/*
* 必须实现接口定义的方法, 类似Servlet中的request,response
* */
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
System.out.println(-----handleRequest-----);
request.setAttribute(pass,admin***);
// 与Struts不同,这里返回的是称为ModelView 由Model与View组成,
// 呈现的数据可以存储到Model中,Mode作用域的范围默认为request对象
MapString,String model=new HashMapString, String();
model.put(name,admin);
return new ModelAndView(first,model);
}
} 可以发现Controller接口仅仅声明了一个方法,它负责处理请求
显示全部