博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMvc学习-环境搭建
阅读量:5230 次
发布时间:2019-06-14

本文共 4540 字,大约阅读时间需要 15 分钟。

最近在学习SpringMVC,首先来说说SpringMVC项目的搭建。

1.SpringMVC简介

 Web MVC是一种基于的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

另外还有一种基于组件的、事件驱动的Web框架在此就不介绍了,如Tapestry、JSF等。

Spring Web MVC也是服务到工作者模式的实现,但进行可优化。前端控制器是DispatcherServlet;应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。

模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的。它主要通过分离模型、视图及控制器在应用程序中的角色将业务逻辑从界面中解耦。通常,模型负责封装应用程序数据在视图层展示。视图仅仅只是展示这些数据,不包含任何业务逻辑。控制器负责接收来自用户的请求,并调用后台服务(manager或者dao)来处理业务逻辑。处理后,后台业务层可能会返回了一些数据在视图层展示。控制器收集这些数据及准备模型在视图层展示。MVC模式的核心思想是将业务逻辑从界面中分离出来,允许它们单独改变而不会相互影响。

2.SpringMVC框架

在最简单的Spring MVC应用程序中,控制器是唯一的你需要在Java web部署描述文件(即web.xml文件)中配置的Servlet。Spring MVC控制器 ——通常称作Dispatcher Servlet,实现了前端控制器设计模式。并且每个web请求必须通过它以便它能够管理整个请求的生命周期。

当一个web请求发送到Spring MVC应用程序,dispatcher servlet首先接收请求。然后它组织那些在Spring web应用程序上下文配置的(例如实际请求处理控制器和视图解析器)或者使用注解配置的组件,所有的这些都需要处理该请求。

在Spring3.0中定义一个控制器类,这个类必须标有@Controller注解。当有@Controller注解的控制器收到一个请求时,它会寻找一个合适的handler方法去处理这个请求。这就需要控制器通过一个或多个handler映射去把每个请求映射到handler方法。为了这样做,一个控制器类的方法需要被@RequestMapping注解装饰,使它们成为handler方法。

handler方法处理完请求后,它把控制权委托给视图名与handler方法返回值相同的视图。为了提供一个灵活的方法,一个handler方法的返回值并不代表一个视图的实现而是一个逻辑视图,即没有任何文件扩展名。你可以将这些逻辑视图映射到正确的实现,并将这些实现写入到上下文文件,这样你就可以轻松的更改视图层代码甚至不用修改请求handler类的代码。

为一个逻辑名称匹配正确的文件是视图解析器的责任。一旦控制器类已将一个视图名称解析到一个视图实现。它会根据视图实现的设计来渲染对应对象。

3.HelloWrod示例

首先在eclipse中新建web项目springmvc,web.xml配置如下:

1 
2
3
springmvc
4
5
index.html
6
index.htm
7
index.jsp
8
default.html
9
default.htm
10
default.jsp
11
12
13
dispatcherServlet
14
15 org.springframework.web.servlet.DispatcherServlet16
17
18
contextConfigLocation
19
/WEB-INF/dispatcherServlet-servlet.xml
20
21
1
22
23
24
dispatcherServlet
25
*.do
26
27
28
CharacterEncodingFilter
29
org.springframework.web.filter.CharacterEncodingFilter
30
31
encoding
32
utf-8
33
34
35
36
CharacterEncodingFilter
37
/*
38
39
web.xml

在web-inf文件夹下,新建dispatcherServlet-servlet.xml,配置如下:

1 
2
15
17
19
20
21
22
23
24
25
26
27
29
30
31
32
33
34 35
36
37
38
39
40
41
text/html;charset=UTF-8
42
43
44
45 46
47
48
49
50
51
52
53
54
55
56
57
59
60
61
dispatcherServlet-servlet.xml

新建controller文件

1     @RequestMapping(params="method=hello")2     public ModelAndView Hello(){3         ModelAndView mav=new ModelAndView("hello");4         mav.addObject("hello", "helloworld");5         return mav;6     }
hello

新建页面hello。jsp

1 <%@ page language="java" contentType="text/html; charset=utf-8" 2     pageEncoding="utf-8"%> 3  4  5  6 
7 Insert title here 8 9 10
${hello }
11 12
hell.jsp

引用的包文件

 

 

转载于:https://www.cnblogs.com/ggz19/p/5432306.html

你可能感兴趣的文章
Nim证明即推导
查看>>
[Kubernetes]编排其实很简单
查看>>
2018.4.10 Ubuntu cat命令解答、用法
查看>>
RTF文件格式
查看>>
填速度环的大坑以及转向环的疑问还有对PID的魔性认识
查看>>
2015-03 月份学习总结 分类: 学习总结 20...
查看>>
实践作业3:白盒测试实践(小组作业)记录1
查看>>
BZOJ1966 [Ahoi2005]VIRUS 病毒检测 动态规划
查看>>
Json常用操作
查看>>
PHP学习笔记
查看>>
Android学习笔记
查看>>
Python3 官方文档翻译 - 4.7 函数定义
查看>>
java nio 学习
查看>>
129.Sum Root to Leaf Numbers
查看>>
设计模式四大境界
查看>>
Shell 脚本常用命令
查看>>
从三栏自适应宽度布局到css布局的讨论
查看>>
项目中常用的linux命令
查看>>
地图服务报 error #2035
查看>>
Vue生命周期详解
查看>>