SpringMVC重点学习

  • 项目目标:SpringMVC+Vue+SpringBoot+SpringCloud+Linux
  • spring:IOC+AOP
  • SpringMVC:SpringMVC的执行流程
  • SSM框架整合

1、什么是MVC

  • MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。

  • 模型

    • dao:连接数据库
    • service:调用dao层实现具体的业务
    • servlet:接受前端收获的数据,并放回给service去处理,并返回数据给视图层
      • 转发
      • 重定向
  • 视图:

    • 数据传输:

      • POJO:User实体类(有时候不需要该实体类全部的属性)
      • VO:User的分支(只包含了几个需要的属性)
    • jsp:可以在前端界面中包含部分java代码实现逻辑
  • 控制层:

    • 最经典的就是:JSP+servlet+javabean的模式

2、Model1时代

  • jsp既需要接受数据,又要处理从逻辑层传回来的数据

  • 所以把jsp的接受层独立细分出来单独形成一个新的servlet类,就有了model2

3、Model2时代

4、职责分析:

Controller:控制器

  1. 取得表单数据
  2. 调用业务逻辑
  3. 转向指定的页面

Model:模型

  1. 业务逻辑
  2. 保存数据的状态

View:视图

  1. 显示页面

5、回顾servlet

1、先创建一个子项目

2、把子项目添加框架支持

3、编写一个Servlet类,用来处理用户的请求

public class helloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1、获取前端参数
//2、调用业务层
//3、视图转发和重定向
String method = req.getParameter("method");
if (method.equals("add")){
req.getSession().setAttribute("message","执行了add方法");
}
if (method.equals("delete")){
req.getSession().setAttribute("message","执行了delete方法");
}
req.getRequestDispatcher("hello.jsp").forward(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}

4、编写jsp视图层,接收传过来的message信息

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
${message}
</body>
</html>

5、把servlet注册到web.xml文件中去

<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>com.wang.helloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping> <!--其他配置-->
<!--session配置-->
<session-config>
<!--超过15分钟session失效-->
<session-timeout>15</session-timeout>
</session-config>

6、配置tomcat

7、测试运行

6、那么MVC框架要做到什么事情

  • 将url映射到java类或java类的方法
  • 封装用户提交的数据
  • 处理请求-调用相关的业务处理--封装响应数据
  • 将响应的数据进行渲染---.jsp/.html等表示层数据

MVC后期的演变:MVP、MVVM

流程

main文件夹下有三个文件夹:java源代码文件夹,resource配置文件文件夹,webapp文件夹

springMVC-1-servlet回顾的更多相关文章

  1. SpringMVC 返回 html 视图页面,SpringMVC与Servlet,Servlet重定向与转发

    1. SpringMVC与Servlet的关系 SpringMVC框架是建立在Servlet之上的,提供各种功能,各种封装,各种方便的同时,它一点儿也没有限制Servlet,我们完全可以在Spring ...

  2. [springMVC]javax.servlet.jsp.JspTagException: Neither BindingResult nor plain target object for bean

    问题描述: 页面使用标签<form:form>进行提交时,出现[springMVC]javax.servlet.jsp.JspTagException: Neither BindingRe ...

  3. Struts2、SpringMVC、Servlet(Jsp)性能对比 测试

    Struts2.SpringMVC.Servlet(Jsp)性能对比 测试 . Servlet的性能应该是最好的,可以做为参考基准,其它测试都要向它看齐,参照它. 做为一个程序员,对于各个框架的性能要 ...

  4. springmvc配置servlet的拦截形式/*和/的区别

    今天复制一个现有的spring-mvc的项目修改配置作为新的项目,结果悲剧了!遇到了一个小问题困扰了半天,找同事找总监都没有搞定,纠结了半天终于发现了问题所在,随笔记一下,所谓好记性不如烂博客嘛! 问 ...

  5. springmvc和servlet在上传和下载文件(保持文件夹和存储数据库Blob两种方式)

    参与该项目的文件上传和下载.一旦struts2下完成,今天springmvc再来一遍.发现springmvc特别好包,基本上不具备的几行代码即可完成,下面的代码贴: FileUpAndDown.jsp ...

  6. Spring日记_01 之 Eclipse下的Tomcat服务器配置 以及 Springmvc和Servlet的使用

    安装Tomcat – window – preferences – Server                                                  右键Tomcat v ...

  7. SpringMvc和servlet对比

    一.servlet实现登录. 咱们先来看一下servlet实现注册登录. <servlet> <servlet-name>LoginServlet</servlet-na ...

  8. SpringMvc和servlet简单对比介绍

    原文链接:http://www.cnblogs.com/haolnu/p/7294533.html 一.servlet实现登录. 咱们先来看一下servlet实现注册登录. <servlet&g ...

  9. springmvc中将servlet api对象作为处理方法的入参使用

    在springmvc中,控制器不依赖任何servlet api对象,也可以将servlet api对象作为处理方法的入参使用,非常方便,比如需要使用HttpSession对象,那么就可以直接将Http ...

  10. Tomcat是如何加载Spring和SpringMVC及Servlet相关知识

    概述 大家是否清楚,Tomcat是如何加载Spring和SpringMVC,今天我们就弄清下这个过程(记录最关键的东西) 其中会涉及到大大小小的知识,包括加载时候的设计模式,Servlet知识等,看了 ...

随机推荐

  1. B-Tree插入和删除的Java实现

    B-Tree插入和删除的Java实现 一.一颗非空m阶B-Tree的性质 除根结点以外的每个结点的孩子引用最多存在m个,关键码最多存在m - 1个:除根结点以外的每个结点的孩子引用至少存在⌈m / 2 ...

  2. P5837 [USACO19DEC]Milk Pumping G

    题目描述 Farmer John 最近为了扩张他的牛奶产业帝国而收购了一个新的农场.这一新的农场通过一个管道网络与附近的小镇相连,FJ 想要找出其中最合适的一组管道,将其购买并用来将牛奶从农场输送到小 ...

  3. ElGamal算法

    简介 ElGamal算法可以用于加密和签名,其安全性依赖于计算有限域上离散对数的难度. ElGamal密钥 生成密钥对时,首先选择素数p,两个随机数g和x,g和x都小于p,然后计算: y = g ^ ...

  4. 【模板】关于vector的lower_bound和upper_bound以及vector基本用法 STL

    关于lower_bound和upper_bound 共同点 函数组成: 一个数组元素的地址(或者数组名来表示这个数组的首地址,用来表示这个数组的开头比较的元素的地址,不一定要是首地址,只是用于比较的& ...

  5. zookeeper集群及kafka集群搭建

    1.zookeeper集群搭建 1.1 上传安装包 官网推荐至少3个节点,我们这里也用三个节点192.169.2.18  192.169.1.82  192.169.1.95 准备好安装包,zooke ...

  6. Bert模型实现垃圾邮件分类

    近日,对近些年在NLP领域很火的BERT模型进行了学习,并进行实践.今天在这里做一下笔记. 本篇博客包含下列内容: BERT模型简介 概览 BERT模型结构 BERT项目学习及代码走读 项目基本特性介 ...

  7. Processing中PImage类和loadImage()、createImage()函数的相关解析

    聊一聊Processing中PImage类和loadImage().createImage()函数.因为要借P5做多媒体创意展示,图片是一个很重要的媒体.有必要就图片的获取和展放作总结. 首先 有一点 ...

  8. ceph-csi组件源码分析(1)-组件介绍与部署yaml分析

    更多ceph-csi其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 ceph-csi组件源码分析(1)-组件介绍与部署yaml分析 基于tag v3.0.0 ht ...

  9. Kubernetes通过downwardAPI传递元数据

    应用往往需要获取所运行环境的一些信息,包括应用自身以及集群中其他组件的信息.Kubernetes可以通过环境变量以及DNS进行服务发现,但其他信息如何处理呢?下面将介绍特定pod和容器元数据如何被传递 ...

  10. 27、myslq更改为不自动提交

    27.1.说明: 默认情况下, MySQL启用自动提交模式(变量autocommit为ON).这意味着, 只要你执行DML操作的语句, MySQL会立即隐式提交事务(Implicit Commit). ...