Spring Web MVC 简称(Spring MVC),是一个Spring提供给web应用的一个框架设计
1.MVC是什么?
MVC框架是一种理念,被广泛应用到各类语言和开发中。
M-MODEL(模型层)
V-VIEW(视图层)
C-COntroller(控制层-或者叫控制器)
2.MVC有什么作用?
MVC可以解耦各个模块
3.Spring MVC 的各个模块扮演什么样的角色?
Servlet扮演控制器(Controller)
Java Bean 是一个专门操作数据库组件的模型层(MODEL)
JSP主要是展示给用户看的,扮演一个视图的角色(VIEW)
4.Spring MVC的核心是什么?
Spring MVC的核心在于其流程,这是使用Spring MVC框架的基础,Spring MVC是一种基于Servlet的技术,
它提供了核心控制器(DispatcherServlet)和相关的组件
并制定了松散的结构,以适合各种场景的需求。
DispatcherServlet:叫做核心控制器,
Spring C 层框架的核心是 DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即 使用了一种被称为Front Controller 的模式
Spring 的C 层框架使用了后端控制器来、映射处理器和视图解析器来共同完成C 层框架的主要工作。
spring 的C 层框架还真正地把业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象
了一种被称为Front Controller 的模式
Dispatcher:调度者,调度员,调度程序
servlet的作用:拦截HTTP页面发送过来的请求
5.控制层(control)的作用是什么?
封装web 请求为一个数据对象、
调用业务逻辑层来处理数据对象、
返回处理数据结果及相应的视图给用户
下面是一个简单的实例
1.创建一个web project 不是java project(spring MVC是在web项目应用的,不是java项目)
注意:创建的时候将web.xml选中
2.添加spring mvc的支持
3.配置web.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 xmlns="http://java.sun.com/xml/ns/javaee"
4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee5 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
6 id="WebApp_ID"version="3.0">
7 my_web_spring
8
9
10 index.jsp
11
12
13
14 org.springframework.web.context.ContextLoaderListener
15
16
17
18 contextConfigLocation
19 classpath:applicationContext.xml
20
21
22
23
24
25 spmvc
26 org.springframework.web.servlet.DispatcherServlet
27
28 1
29
30
31
32 spmvc
33
34 *.do
35
36
在上面我们配置了DispatcherServlet
DispatcherServlet 说白了其实就是一个Servlet ,它是对请求进行转发的核心Servlet 。
在这里即所有.do 的请求将首先被DispatcherServlet 处理,
而DispatcherServlet 它要作的工作就是对请求进行分发(也就是说把请求转发给具体的Controller )。
可以简单地认为,它就是一个总控处理器,但事实上它除了具备总控处理理器对请求进行分发的能力外,还与spring 的IOC 容器完全集成在一起,从而可以
更好地使用spring 的其它功能。在这里还需留意 < servlet-name > spmvc servlet-name > ,下面
4.建立 spmvc-servlet.xml 文件,它的命名规则: servlet-name-servlet.xml 。
1 <?xml version="1.0" encoding="UTF-8"?>
2
3
4
5
6 class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
7
8
9 MyControl
10
11
12
13
14
15
16
17
5.编写com.test.MyController.java文件
packagecom.pojo;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.springframework.web.servlet.ModelAndView;importorg.springframework.web.servlet.mvc.Controller;public class MyController implementsController{
@Overridepublic ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throwsException {//TODO Auto-generated method stub
ModelAndView mv = new ModelAndView("index.jsp");
mv.addObject("message", "喂喂喂,是我");returnmv;
}
}
6.编写index.jsp文件
1
2
6
7
8
9
10 ">
11
12
My JSP 'index.jsp' starting page
13
14
15
16
17
18
21
22
23
24 This is my JSP page.
25 ${message}26
27
7.启动服务器
因为在web.xml中设置了欢迎页,所以访问项目时直接访问的是index.jsp
在地址栏中输入my.do
8.备注
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 xmlns="http://java.sun.com/xml/ns/javaee"
4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee5 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
6 id="WebApp_ID"version="3.0">
7 my_web_spring
8
9
10 index.jsp
11
12
13
14 org.springframework.web.context.ContextLoaderListener
15
16
17
18 contextConfigLocation
19 classpath:applicationContext.xml
20
21
22
23
24
25 spmvc
26 org.springframework.web.servlet.DispatcherServlet
27
28 1
29
30
31
32 spmvc
33
34 *.do
35
36
如果乱码,需要设置字符编码