MelodyHub

没有伞的孩子必须努力奔跑!|

MVC:开发模式

一、jsp演变历史

  1. 早期只有servlet,只能使用response输出标签数据,非常麻烦
  2. 后来又jsp,简化了Servlet的开发,如果过度使用jsp,在jsp中即写大量的java代码,有写html表,造成难于维护,难于分工协作
  3. 再后来,java的web开发,借鉴mvc开发模式,使得程序的设计更加合理性

二、MVC

3wYqbT.png

M

  • Model,模型。JavaBean
  • 完成具体的业务操作,如:查询数据库,封装对象

V

  • View,视图。JSP
  • 展示数据

C

  • Controller,控制器。Servlet
  • 获取用户的输入
  • 调用模型
  • 将数据交给视图进行展示

三、优缺点

优点

  1. 耦合性低,方便维护,可以利于分工协作
  2. 重用性高
  3. 生命周期成本低
  4. 部署快
  5. 可维护性高
  6. 有软件工程化管理

缺点

  1. 使得项目架构变得复杂,对开发人员要求高
  2. 不适合小型,中等规模的应用程序
  3. 增加系统结构和实现的复杂性
  4. 视图与控制器间的过于紧密的连接
  5. 视图对模型数据的低效率访问
  6. 一般高级的界面工具或构造器不支持模式

扩展阅读

  1. [CSDN] MVC模式简介

  2. [菜鸟教程] MVC 模式

  3. [百度百科] MVC框架

ServletContext对象

  • ServletContext对象范围:所有用户所有请求的数据

  • 谨慎使用。所有用户可以操控它,不太安全;而且,它的生命周期长:服务器始到终,存储的数据多了,会造成内存的压力。

概念

  • 代表整个web应用,可以和程序的容器(服务器)来通信(交互数据)

获取

  1. 通过request对象获取
  • 调用request.getServletContext();
  1. 通过HttpServlet获取
  • 调用this.getServletContext();

注意:
2个调用方法获取到的ServletContext都是一样的。因此,更多的时候会使用this.getServletContext();

功能

  1. 获取mine类型
  2. 域对象:共享数据
  3. 获取文件的真实路径(服务器路径)

《HTTP案例学习:用户登录》的学习中,使用到BeanUtils

案例中只涉及到封装username、password两个对象,但是实际上的用户登录界面,有十几个数据对象需要封装。

按原来的方式,是非常麻烦的。期望能够一次把所有参数获取到,并且通过一个方法,一次把所有数据封装成一个对象。

BeanUtils,一个工具类,简化数据封装

这里专门挑出来,做一份简单的笔记。

配合【教学视频】【BeanUtils工具类常用方法】 食用更佳。

接着前面两篇博文 《HTTP:超文本传输协议》《HTTP请求信息数据 - Request》 的学习。

现在记录关于 HTTP响应信息数据-Response 的笔记。


响应信息数据 格式

  • Servlet类中service()方法的参数ServletResponse
  • Response在一次响应结束后,自动被销毁,其输出流也会自动被关闭。
  • 字符串数据,比如:
1
2
3
4
5
6
7
8
9
10
11
12
13
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 101
Date: Wed, 06 Jun 2018 07:08:42 GMT

<html>
<head>
<title>$Title$</title>
</head>
<body>
hello , response
</body>
</html>


博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Material X 作为主题 , 总访问量为
载入天数...载入时分秒...