SpringMVC框架

一.SpringMVC 是一个MVC流程框架 ,同样适用于在我们的表层到action模块中,是 MVC架构模式中真正的Controller.
SpringMVC在流程处理方面更加灵活,可以更容易的进行的扩展,可以和Spring 框架进行无缝集成,
但是 SpringMVC 有入侵性,action 需要继承框架指定的类,或者实现指定的接口。

二,看一个它实现的原理图吧:
和 Struts2相似 ,有一个核心的过滤器 Dispatcher ,和核心配置文件 springMVC-servlet.xml文件 ,通过过滤做一些固定的任务,到达指定的action 

三,初步使用:
           1,由于SpringMVC是继Spring后续开发的,它利用了Spring的jar包,这里看一下需要导入的jar包:
commons-logging.jar(日志输出)
spring-webmvc.jar(SpringMVC核心包)
spring.jar        (Spring核心包)

2.编写springMVC-servlet.xml文件,存放到/WEB-INF目录下
[html] view plain copy print?
<?xml version="1.0" encoding="UTF-8" ?>  
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">  
      
    <beans>  
        <!-- VIEW DEFINITIONS ,视图解析器,框架提供了好多解析器,这里举例其中的一种-->  
        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
            <property name="prefix" value="/WEB-INF/jsp/spring/"/>  
            <property name="suffix" value=".jsp"/>  
        </bean>  
      
        <!-- DEFINITIONS OF PUBLIC CONTROLLERS ,映射解析器-->  
        <bean id="defaultHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>  
    </beans>  
    <!-- 控制器类,name表示访问的URI路径,class表示对应的action类 -->  
    <bean name="/hello.html" class="com.ljh.springmvc.controller.HelloWorldController"></bean> 
 3,在web.xml中增加对springMVC框架的支持,其实就是增加SpringMVC框架核心过滤器的servlet的配置:

<!-- SpringMVC的核心控制器(前端控制器) -->  
<servlet>  
    <servlet-name>springMVC</servlet-name>  
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    <init-param>  
    <!-- 指定配置文件的全名,如果不指定,则为这里的servlet-name的属性SpringMVC+"-servlet.xml" -->  
        <param-name>contextConfigLocation</param-name>  
        <param-value>/WEB-INF/springMVC-servlet.xml</param-value>  
    </init-param>       
    <!-- 启动服务器时创建此serlvet核心对象 -->  
    <load-on-startup>1</load-on-startup>  
</servlet>  
<servlet-mapping>  
    <servlet-name>springMVC</servlet-name>  
    <url-pattern>*.html</url-pattern>  
</servlet-mapping>  

4,此种对应的action是有侵入性的,需要实现Contronller接口,当然也可以继承实现此接口的父类,后边介绍到:


public class HelloWorldController implements Controller {  
  
    /** 
     * 类似于Servlet的doGet(),doPost()方法 
     */  
    public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {  
        //接收数据,这里有request,response等,对于数据处理方便了很多  
          
        //调用服务层。  
          
        //判断返回结果  
          
        //ModelAndView用于表示视图:给予视图层文件的名称。(根据框架的视图解析器,增加前缀,和后缀,查找配置资源。)  
        //ModelAndView也可以表示模型对象,将数据传递给视图层。(默认情况下是采用转发方式进行跳转。)  
        return new ModelAndView("success","username","zhangsan");  //   /WEB-INF/jsp/spring/ +  success  + .jsp  
    }  
  
}  

  

posted @ 2017-08-23 16:34  令狐る侠  阅读(292)  评论(0编辑  收藏  举报