java_第一年_JavaWeb(10)
JavaWeb的两种开发模式
- JSP+JavaBean框架:JavaBean负责封装数据、提供方法,JSP负责处理用户请求和显示数据;只能开发较为简单的业务;
- JSP+JavaBean+Servlet:这是一种MVC开发模式;控制器为Servlet、视图采用JSP、模型采用JavaBean;
理解MVC模型:
需了解Model(M)、View(V)、Controller(C)概念;
M(模型):数据模型。提供展示数据,包括数据 和行为;
V(视图):负责模型展示,即客户直观看到的东西;
C(控制器):接受请求,委托模型处理,处理后再将其数据模型返回视图;
题外知识点:若是观察者设计模式,在模式上注册视图,当模式数据更新时可以自动推送到视图中进行更新,不过web开发是请求-响应模型,因此模型无法主动更新视图,需客户端发出请求后再由控制器调度、模型处理后,再通过控制器更新到视图上;
JSP+JavaBean+Servlet开发模式的缺点:
Servlet作为控制器的缺点:控制逻辑复杂,每个模块都需要一个控制器;请求参数到模型的封装比较麻烦,既要收集参数又要封装参数;选择视图都要依赖Servlet API提供的request对象的getRequestDisposition()方法,很难跟换视图;
JavaBean作为模型的缺点:
JavaBean作为模型既要收集封装数据,还要进行业务逻辑处理,会造成其组件类很庞大,现在项目一般都采用三层架构,即将域模型层分为表现层、业务逻辑层(服务层)、持久层(数据访问层);
这一节的开发模式需根据一个简单的项目理解起来会更加清楚深刻,等有时间再插入一个项目代码进行学习加深理解;
java_第一年_JavaWeb(10)的更多相关文章
- java_第一年_JavaWeb(14)
EL :EL表达式主要用于获取数据.执行运算.获取对象.调用java方法: 获取数据 语法:"${标识符}" 会调用pageContext.findAttribute方法,从pag ...
- java_第一年_JavaWeb(13)
JSTL标签库——核心标签库 为了弥补html标签的不足,为了更加方便地在jsp页面中使用java逻辑代码,JSTL标签库因运而生,而其中的佼佼者,被恩宠最多的就是核心标签库了: 核心标签库从功能上可 ...
- java_第一年_JavaWeb(11)
自定义标签:主要是用来移除JSP页面中的java代码. 先从一个简单的案例了解其怎么移除代码: 一个正常的jsp页面: <%@ page language="java" pa ...
- java_第一年_JavaWeb(15)
Filter过滤器,Servlet API 中提供了一个Filter接口,用于实现用户在访问某个目标资源前对其进行拦截: 拦截原理:web服务器通过Filter接口调用doFilter方法,会传递一个 ...
- java_第一年_JavaWeb(12)
SimpleTag标签 定义了五个方法:setJspContext.setJspBody.setParent和getParent以及最重要的doTag方法(完成了所有的业务逻辑): setJspCon ...
- java_第一年_JavaWeb(9)
JavaBean是一个遵循某种特定写法的Java类,有以下特点: 必需具有一个无参的构造函数 属性必需私有化 私有化的属性必需通过public类型的方法暴露给其它程序,其方法命名也有一定的规范 范例: ...
- java_第一年_JavaWeb(8)
前面说到,JSP在运行时会被编译成Servlet源代码,通过_jspServlet方法处理请求,此时该方法会传递和提供9个与web开发相关的对象进行使用,开发人员在JSP页面通过对这些变量即可引用这9 ...
- java_第一年_JavaWeb(7)
JSP执行过程 客户端发出请求访问JSP文件 JSP Container将要访问的JSP文件转译为Servlet的源代码(转译时期),并将其编译成.class文件(编译时期): 执行编译后的.clas ...
- java_第一年_JavaWeb(6)
会话 会话:浏览器从打开一个进程访问服务器到该浏览器关闭,我们称之为一个会话: 在浏览器和服务器交互期间,会不可避免地产生一些数据,而为了为每个用户保存其对应的数据,可使用两种技术:Cookie和Se ...
随机推荐
- php.ini中时区设置不成功解决方法
一.在php.ini的[Date]中加入 [Date] date_default_timezone_set('UTC'); date.timezone = "Asia/Shanghai&qu ...
- Java内存模型(JMM)的可见性
JMM(Java Memory Model)内存模型之可见性 JMM是Java内存模型的缩写,本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字 ...
- classloader加载class的流程及自定义ClassLoader
java应用环境中不同的class分别由不同的ClassLoader负责加载.一个jvm中默认的classloader有Bootstrap ClassLoader.Extension ClassLoa ...
- sqlserver数据库脱机和分离的区别
脱机和分离的区别: 分离和脱机都可以使数据库不能再被使用,但是分离后需要附加才能使用,而脱机后只需联机就可以用了. 附加数据库报错: 无法打开物理文件 XXX.mdf".操作系统错误 5:& ...
- ajax请求成功,但是进入error
ajax请求成功,这是因为json数据没有严格按json格式返回
- LeetCode--075--颜色分类(python)
给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 0. 1 和 2 分别表示红色.白色和蓝色. ...
- HTML中的表单<form>标签
一.HTML表单 HTML 表单用于搜集不同类型的用户输入. HTML 表单包含表单元素,表单元素指的是不同类型的 input 元素.复选框.单选按钮.提交按钮等等. 关于表单的更多内容可以参考htt ...
- mysql SELECT语句 语法
mysql SELECT语句 语法,苏州大理石方箱 作用:用于从表中选取数据.结果被存储在一个结果表中(称为结果集). 语法:SELECT 列名称 FROM 表名称 以及 SELECT * FROM ...
- CF F. Royal Questions kruskal
每一个 $A$ 必须和指定的唯一的 $B$ 匹配,转化成图论关系就是 $A$ 和 $B$ 之间有若干条连边,每个边有一个边权,而该边权只能代表一对 $A,B$. 这其实就是一个基环树的结构. 所以只需 ...
- PHP导出excel文件名中文IE乱码解决
<?php $ua = strtolower($_SERVER['HTTP_USER_AGENT']); if(preg_match('/msie/', $ua) || preg_match(' ...