一,MVC 概述

MVC:模型,视图,控制器,是一种软件设计规范,本质是将业务逻辑,数据,显示,分离的方式来编写代码;前后端分离

Model:数据模型,提供要展示的数据,一般我们都会把这两个分离开来。数据Dao,服务层Service
View:负责进行数据的渲染和展示,客户端想要看到的东西
Controller:接收用户请求,交给Model处理,从Model更新后的数据或者结果,返回给前端

1,Model1

在早期 Java Web 的开发中,统一把显示层、控制层、数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1

Model1的弊端

  • JSP 和 Java Bean 之间严重耦合,Java 代码和 HTML 代码也耦合在了一起
  • 要求开发者不仅要掌握 Java ,还要有高超的前端水平
  • 前端和后端相互依赖,前端需要等待后端完成,后端也依赖前端完成,才能进行有效的测试
  • 代码难以复用

2,Model2

因为Model1的种种弊端,所以很快这种方式就被 Servlet + JSP + Java Bean 所替代了,首先用户的请求会到达 Servlet,然后根据请求调用相应的 Java Bean,并把所有的显示结果交给 JSP 去完成,这样的模式我们就称为 MVC 模式

controller(控制器)

  • 取得表单的数据

  • 调用业务的逻辑方法

  • 转向指定的页面

Model(模型)

  • Dao:操作数据库
  • Service:业务逻辑
  • 保存数据的更新状态

View(视图)

  • 网页, JSP,用来展示模型中的数据

二,SpringMVC 架构

SpringMVC 是 Spring的一部分,是基于Java实现的MVC的轻量级Web框架

SpringMVC优点

  • 趋势,使用的人多

  • 简单,易学,轻量级

  • 高效,基于请求和响应的MVC框架

  • 约定优于配置

  • 功能强大:RestFul,数据验证,格式化,主题,本地化,异常处理......

三,Hello SpringMVC

1,创建一个Maven项目

2,导入相关架包

 1 <dependencies>
2 <!--junit包单元测试-->
3 <dependency>
4 <groupId>junit</groupId>
5 <artifactId>junit</artifactId>
6 <version>4.11</version>
7 <scope>test</scope>
8 </dependency>
9
10 <!-- Spring MVC 及 Spring系列包 -->
11 <dependency>
12 <groupId>org.springframework</groupId>
13 <artifactId>spring-webmvc</artifactId>
14 <version>4.3.24.RELEASE</version>
15 </dependency>
16
17 <!--Servlet核心-->
18 <dependency>
19 <groupId>javax.servlet</groupId>
20 <artifactId>javax.servlet-api</artifactId>
21 <version>4.0.1</version>
22 </dependency>
23
24 <!-- JSTL -->
25 <dependency>
26 <groupId>javax.servlet</groupId>
27 <artifactId>jstl</artifactId>
28 <version>1.2</version>
29 </dependency>
30 </dependencies>
31
32 <build>
33 <!--解决资源导出问题-->
34 <resources>
35 <resource>
36 <directory>src/main/java</directory>
37 <includes>
38 <include>**/*.properties</include>
39 <include>**/*.xml</include>
40 </includes>
41 <filtering>false</filtering>
42 </resource>
43 <resource>
44 <directory>src/main/resources</directory>
45 <includes>
46 <include>**/*.properties</include>
47 <include>**/*.xml</include>
48 </includes>
49 <filtering>false</filtering>
50 </resource>
51 </resources>
52 </build>

3,配置web.xml,注册DispatcherServlet

映射路径为 /   【不要用/*,会404】

 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
5 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
6 id="WebApp_ID" version="3.0">
7
8 <!--1.注册DispatcherServlet-->
9 <servlet>
10 <servlet-name>SpringMVC</servlet-name>
11 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
12
13 <!--2.关联SpringMVC配置文件-->
14 <init-param>
15 <param-name>contextConfigLocation</param-name>
16 <param-value>classpath:springmvc-servlet.xml</param-value>
17 </init-param>
18
19 <!--3.这个东西要和服务器一起启动-->
20 <load-on-startup>1</load-on-startup>
21 </servlet>
22
23 <servlet-mapping>
24 <servlet-name>SpringMVC</servlet-name>
25 <url-pattern>/</url-pattern>
26 </servlet-mapping>
27
28 </web-app>

4,配置springMVC的配置文件

在resources下创建springmvc-config.xml

 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"
4 xmlns:mvc="http://www.springframework.org/schema/mvc"
5 xmlns:context="http://www.springframework.org/schema/context"
6 xsi:schemaLocation="
7 http://www.springframework.org/schema/beans
8 https://www.springframework.org/schema/beans/spring-beans.xsd
9 http://www.springframework.org/schema/context
10 https://www.springframework.org/schema/context/spring-context.xsd
11 http://www.springframework.org/schema/mvc
12 https://www.springframework.org/schema/mvc/spring-mvc.xsd">
13
14 <!--扫描指定包下的注解,让指定的类能够被IOC容器管理-->
15 <context:component-scan base-package="com.shandx.controller"/>
16
17 <!--静态资源过滤-->
18 <mvc:default-servlet-handler/>
19
20 <!--MVC注解驱动-->
21 <mvc:annotation-driven/>
22
23 <!--视图解析器-->
24 <bean id="InternalResourceViewResolver"
25 class="org.springframework.web.servlet.view.InternalResourceViewResolver">
26 <!-- 前缀 -->
27 <property name="prefix" value="/WEB-INF/"/>
28 <!-- 后缀 -->
29 <property name="suffix" value=".jsp"/>
30 </bean>
31 </beans>

5,编写Controller类

 1 //@Controller是为了让Spring IOC容器初始化时自动扫描到
2 @Controller
3 public class HelloWorldController {
4
5 //请求映射("路径")
6 @RequestMapping("/hello")
7 public String hi(Model model){
8 model.addAttribute("msg","Hello,SpringMVC");
9
10 //方法返回的结果是视图的名称hello
11 // 加上配置文件中的前后缀变成WEB-INF/hello.jsp。
12 return "hello"; //WEB-INF/jsp/hello.jsp
13 }
14 }

6,编写视图层

注意视图的位置,要和视图解析器对应 web-inf / jsp,可以通过EL表示取出Model中存放的值

 1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
2 <html>
3 <head>
4 <title>SpringMVC</title>
5 </head>
6 <body>
7
8 ${msg}
9
10 </body>
11 </html>

7,启动Tomcat进行测试

配置Tomcat

测试结果

四, 项目结构

SpringMVC(1):SpringMVC入门的更多相关文章

  1. Spring-MVC开发步骤(入门配置)

    Spring-MVC开发步骤(入门配置) Step1.导包 spring-webmvc Step2.添加spring配置文件 Step3.配置DispatcherServlet 在web.xml中: ...

  2. (转)SpringMVC学习(一)——SpringMVC介绍与入门

    http://blog.csdn.net/yerenyuan_pku/article/details/72231272 SpringMVC介绍 SpringMVC是什么? SpringMVC和Stru ...

  3. springmvc(一) springmvc框架原理分析和简单入门程序

    springmvc这个框架真的非常简单,感觉比struts2还更简单,好好沉淀下来学习~ --WH 一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解 ...

  4. SpringMVC由浅入深day01_7入门程序小结

    7 入门程序小结 通过入门程序理解springmvc前端控制器.处理器映射器.处理器适配器.视图解析器用法. 前端控制器配置: 处理器映射器: 非注解处理器映射器(了解) 注解的处理器映射器(掌握) ...

  5. SpringMVC由浅入深day01_2springmvc入门程序

    2 入门程序 2.1 需求 以案例作为驱动. springmvc和mybaits使用一个案例(商品订单管理). 功能需求:商品列表查询 2.2 环境准备 数据库环境:mysql5.5 先导入sql_t ...

  6. springMVC第一天——入门、整合与参数绑定

    大纲摘要: 1.Springmvc介绍 2.入门程序 3.Springmvc架构讲解 a) 框架结构 b) 组件说明 4.Springmvc整合mybatis 5.参数绑定 乱码问题解决 a) Spr ...

  7. springMVC的一些入门配置

    1.springMVC的描述 1.1.SpringMVC是Spring框架内置的MVC的实现.SpringMVC就是一个Spring内置的MVC子框架. 1.2.SpringMVC的作用是实现页面和后 ...

  8. 阶段3 3.SpringMVC·_01.SpringMVC概述及入门案例_05.入门程序之入门代码编写

    先把默认的index.jsp删掉.默认的index.jsp没有jsp的声明 ok webapp文件夹下new一个 起名叫做index.新建的页面有jsp的头 创建控制器类 java下新建一个class ...

  9. springmvc(一)springmvc简介与入门程序

    springmvc概括: Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱 ...

  10. 【SpringMVC】SpringMVC 入门

    SpringMVC 入门 文章源码 SpringMVC 基本概念 在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发.在 B/S 架构中,系统标准的三层架构包括:表现层.业务层.持久层. 表 ...

随机推荐

  1. idea使用git更新代码 : update project(git merge、git rebase)

    idea使用git更新代码 : 选中想要更新的项目,右键点击 git => repository => pull 这样使用一次后idea会自动建立选中分支的远程跟踪分支,以后可直接点击下图 ...

  2. Visual Studio 2022 初探 (vs2022附激活码)

    前言 Visual Studio 2022 正式版来了.新版本带有 go-live 许可证,可供生产使用.在 Visual Studio 2019 的基础上,新版集成开发坏境提供了非常多的改进,包括对 ...

  3. OpenXml SDK学习笔记(4):设置文件级别的样式

    观察上一段日记最后的代码: 这里的样式基本可以理解为行内CSS.那么既然有行内的样式,就肯定有外部的样式.那这部分就对应笔记1里说的style.xml文件.这个文件对应的是Document.MainD ...

  4. [linux]centos7.4上升级python2版本到python3.6.5 【安装双版本,默认python3】

    版本声明 centos7.4 前言:linux上的python默认是版本2的,之前学django项目用的是3的版本 所以得升级下版本~ 1.下载python3.6.5 cd /usr/local/ w ...

  5. SqlServer修改某个字段的默认值时的操作步骤

    sqlserver有时候需要修改一个字段的默认值,却发现修改(update)不了,也删除(delete)不了,排查发现,需要先删除原有的默认值约束,才行:步骤如下1.2.3.若原来这个字段就没有默认值 ...

  6. F5 BIG-IP 远程代码执行RCE(CVE-2020-5902)复现

    漏洞简介 F5 BIG-IP 是美国``F5公司一款集成流量管理.DNS.出入站规则.web应用防火墙.web网关.负载均衡等功能的应用交付平台. 在F5 BIG-IP产品的流量管理用户页面 (TMU ...

  7. mongo笔记

    获取stats from pymongo import MongoClient client = MongoClient() db = client.test # print collection s ...

  8. mysql 禁止外键检查

    SET FOREIGN_KEY_CHECKS=0; SET FOREIGN_KEY_CHECKS=1; from: https://stackoverflow.com/a/15501754/80250 ...

  9. 偷天换日,用JavaAgent欺骗你的JVM

    原创:微信公众号 码农参上(ID:CODER_SANJYOU),欢迎分享,转载请保留出处. 熟悉Spring的小伙伴们应该都对aop比较了解,面向切面编程允许我们在目标方法的前后织入想要执行的逻辑,而 ...

  10. R数据分析:二分类因变量的混合效应,多水平logistics模型介绍

    今天给大家写广义混合效应模型Generalised Linear Random Intercept Model的第一部分 ,混合效应logistics回归模型,这个和线性混合效应模型一样也有好几个叫法 ...