码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC

时间:2017-11-09 22:47:09      阅读:283      评论:0      收藏:0      [点我收藏+]

标签:自动加载   efi   inter   执行   框架   添加   contex   服务器   jdb   

1.Spring MVC的设计是围绕DispatcherServlet展开的:

  • 约定大于配置的契约式编程支持
  • 支持灵活的URL到页面控制器的映射、支持Restful风格
  • 模型数据不放在特定的API里,而是放在一个Model里(Map数据结构实现,因此很容易被其他框架使用)

技术分享

2.Spring MVC工作原理

技术分享

1、客户端发送请求

2、客户端发送的请求到达服务器控制器

  服务器控制器由Servlet(DispatcherServlet)实现的,来完成请求的转发

3、该控制器(DispatcherServlet)调用了一个用于映射的类HandlerMapping,

  该类用于将请求映射到对应的处理器来处理请求。

4、HandlerMapping将请求映射到对应的处理器Controller(相当于Action)

  在Spring当中如果写一些处理器组件,一般实现Controller接口

5、在Controller中就可以调用一些Service或DAO来进行数据操作

6、ModelAndView用于存放从DAO中取出的数据,还可以存放响应视图的一些数据

7、如果想将处理结果返回给用户,那么在Spring框架中还提供一个视图组件ViewResolver,

  该组件根据Controller返回的标示,找到对应的视图并传递数据信息,将响应response返回给用户

3.开发流程 

XML配置文件方式:

A.添加依赖包

  spring-context-4.2.8(其它spring依赖包会依赖导入)、spring-webmvc-4.2.8

B.添加xml配置文件

C.在web.xml中配置DispatcherServlet前端控制器组件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns="http://java.sun.com/xml/ns/javaee"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 5     id="WebApp_ID" version="3.0">
 6     <display-name>day</display-name>
 7     <welcome-file-list>
 8         <welcome-file>index.html</welcome-file>
 9         <welcome-file>index.htm</welcome-file>
10         <welcome-file>index.jsp</welcome-file>
11         <welcome-file>default.html</welcome-file>
12         <welcome-file>default.htm</welcome-file>
13         <welcome-file>default.jsp</welcome-file>
14     </welcome-file-list>
15     <!-- spring的核心控制器 当tomcat容器启动的时候,会自动加载配置在web.xml的servlet,从而创建核心控制器 该核心控制器是处理所有的请求的匹配,并且调用其他的组件来处理请求 
16         当前匹配逻辑是做后缀匹配 spring的核心控制器有一个属性是用来设置启动的时候加载哪些xml配置文件的 -->
17     <servlet>
18         <servlet-name>springmvc</servlet-name>
19         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
20         <!-- 当该对象初始化的时候会调用当前的信息来给bean赋初始化值 -->
21         <init-param>
22             <!-- 该参数是用来指定加载spring的主配置文件的 -->
23             <param-name>contextConfigLocation</param-name>
24             <param-value>classpath:application.xml</param-value>
25         </init-param>
26     </servlet>
27 
28     <servlet-mapping>
29         <servlet-name>springmvc</servlet-name>
30         <!-- 匹配以 .do结尾的url -->
31         <url-pattern>*.do</url-pattern>
32     </servlet-mapping>
33 
34 </web-app>

 

D.配置Spring HandlerMapping组件(分发web请求到Controller的映射)

技术分享

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
 4     xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"
 5     xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
 6     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util"
 7     xmlns:jpa="http://www.springframework.org/schema/data/jpa"
 8     xsi:schemaLocation="
 9         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
10         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
11         http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.2.xsd
12         http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.2.xsd
13         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd
14         http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
15         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
16         http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
17         http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd">
18 
19     <!-- handelMapping 配置 该组件可以通过url找到对应的Controller组件 并且调用Controller对应的方法执行程序 -->
20     <bean id="handelMapping"
21         class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
22         <property name="mappings" ref="urlMaps"></property>
23     </bean>
24 
25     <util:properties id="urlMaps">
26         <prop key="/hello.do">helloController</prop>
27         <!-- 可以设置其他多个的请求和对应的Controller关系 -->
28         <prop key="/rjl.do">rjlController</prop>
29     </util:properties>
30     <!-- ################################### -->
31     <!-- 设置Controller组件的配置  必须与前面对应!!!-->
32     <bean id="helloController" class="com.rong.controller.HelloController">
33     </bean>
34     <bean id="rjlController" class="com.rong.controller.RjlController"></bean>
35     <!-- 视图解析器设置
36         该视图解析器是由spring提供
37         prefix:前缀
38         suffix:后缀
39         视图解析器会根据Controller响应回来的视图字符串数据hello,再通过前面拼接前缀"/WEB-INF/view/"和后缀".jsp"
40         生成新字符串:/WEB-INF/view/hello.jsp
41      -->
42     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
43         <property name="prefix" value="/WEB-INF/view/"></property>
44         <property name="suffix" value=".jsp"></property>
45     </bean>
46 </beans>

 

E.新建Controller类并实现spring提供的Controller接口,配置该bean

技术分享

 1 package com.rong.controller;
 2 
 3 import javax.servlet.http.HttpServletRequest;
 4 import javax.servlet.http.HttpServletResponse;
 5 
 6 import org.springframework.web.servlet.ModelAndView;
 7 import org.springframework.web.servlet.mvc.Controller;
 8 
 9 public class HelloController implements Controller {
10     /**
11      * 该方法类似servlet里面的service方法,会自动被调用执行
12      * ModelAndView:是模型和视图对象,里面封装了模型层数据和响应视图数据
13      * ModelAndView("hello"):该方法可以根据"hello"设置响应视图的数据,该字符串数据会由视图解析器来处理
14      * hello是viewName:视图的名字
15      */
16     @Override
17     public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
18         System.out.println("Hello springmvc...HelloController!");
19         ModelAndView modelAndView = new ModelAndView("hello");
20         return modelAndView;
21     }
22 }

 配置该bean到xml:id要与前面的prop的值对应

    <bean id="helloController" class="com.rong.controller.HelloController">
    </bean>
    <bean id="rjlController" class="com.rong.controller.RjlController"></bean>

 

F.添加ViewResolver组件配置

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

G.新建hello.jsp页面视图组件

SpringMVC

标签:自动加载   efi   inter   执行   框架   添加   contex   服务器   jdb   

原文地址:http://www.cnblogs.com/57rongjielong/p/7811424.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!