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. 基于TensorRT的BERT实时自然语言理解(下)

    基于TensorRT的BERT实时自然语言理解(下) BERT Inference with TensorRT 请参阅Python脚本bert_inference.py还有详细的Jupyter not ...

  2. Vue packages version mismatch的解决方法 初来乍到,踩坑日常

    初来乍到,踩坑日常 这个问题也是我也是接受别人项目,出现的问题,在下载好依赖后运行的时候报这样的错误 它上面显示两个版本一个vue的版本,一个vue-template-compiler版本,我这边忘了 ...

  3. ES6中的数组方法扩展

    上一篇文章小编简单介绍了在ES6中,一些常用的方法和一些简单的应用,在这篇文章中,小编将针对ES6中数组常用方法进行扩展,相信经过这篇文章之后,每一位小伙伴下班时间会有所提前,就算从原来的996变成9 ...

  4. 狂神说Linux笔记:Vim和账号、用户组、磁盘管理

    什么是Vim编辑器 Vim是从 vi 发展出来的一个文本编辑器.代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用. 简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但 ...

  5. 【UG二次开发】获取对象类型 UF_OBJ_ask_type_and_subtype

    代码: int type=0, subtype=0; UF_OBJ_ask_type_and_subtype(objTag, &type, &subtype);

  6. 【模拟7.14】建造游乐园(play)

    这题是玄学的数论 首先考虑如何枚举偶数点度的图 可以考虑取出i-1个点 那么成图的数量为2^C(i-1,2) (原因单独取出的i点能平衡已建图中的奇数点,原因是某种性质....) 然后求带联通标号的欧 ...

  7. 同事内推的那位Linux C/C++后端开发同学面试没过......

    最近同事内推了一位 Linux C/C++ 后端开发的同学到我们公司面试,我是一面的面试官,很遗憾这位工作了两年的同学面试表现不是很好.我问了如下一些问题: "redis持久化机制,redi ...

  8. hive学习笔记之五:分桶

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  9. kubernetes的存活探针和就绪探针

    1.存活探针 使用Kubernetes的一个主要好处是,可以给Kubernetes-个容器列表来由其保持容器在集群中的运行.可以通过让Kubernetes创建pod资源,为其选择一个工作节点并在该节点 ...

  10. 使用VS调试时出现 :provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接 解决方案

    首先检查链接的数据库名称是否正确 其二是看看你的主机名称由没有写对,有些写成 127.0.0.1会出错.我就是将sessionState中的127.0.0.1出错,改为自己的主机名称就OK啦