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 ...
随机推荐
- ThreadLocal 解决simpledateformat线程不安全
SimpleDateFormat在多线程情况下会出现线程不安全的情况,故用ThreadLoacl 处理/** * 用ThreadLocal处理simplDateFormat线程不安全 */public ...
- linux服务器安全配置攻略
引言: 最小的权限+最少的服务=最大的安全 所以,无论是配置任何服务器,我们都必须把不用的服务关闭.把系统权限设置到最小话,这样才能保证服务器最大的安全.下面是CentOS服务器安全设置,供大家参考. ...
- django之表单类
一:表单类 一般我们在html中自己写的表单类似于下面的样子 <!DOCTYPE html> <html lang="en"> <head> & ...
- 消息中间件之 RocketMQ
参考文档: http://jm.taobao.org/2017/01/12/rocketmq-quick-start-in-10-minutes/ http://rocketmq.apache.org ...
- 封装storage
export const local = { getItem(key) { let value = localStorage.getItem(key) if (/^\{.*\}$/.test(valu ...
- mysql DEFAULT约束 语法
mysql DEFAULT约束 语法 作用:用于向列中插入默认值. 说明:如果没有规定其他的值,那么会将默认值添加到所有的新记录.直线电机 mysql DEFAULT约束 示例 //在 "P ...
- Planting Trees
Planting Trees 给定N*N矩阵,求子矩形满足里面最大元素最小元素之差不超过M 单调队列 枚举上边界,下边界,及右边界, 用两个单调队列,一个维护最大值,一个维护最小 求左边界 #incl ...
- 170905-MyBatis中的关系映射
===关系映射=== 参考文档复习:1对1,1对多,多对多 1.映射(多)对一.(一)对一的关联关系 1).使用列的别名 ①.若不关联数据表,则可以得到关联对象的id属性 ②.若还希望得到关联对象的其 ...
- Dreamweaver cc新版本css单行显示
新版本通用:(1)C:\Users\admin\Application Data\Adobe\Dreamweaver CC 2018\cloudpref\Adobe Dreamweaver CC 20 ...
- jQuery .ready()
https://www.w3schools.com/jquery/event_ready.asp Example Use ready() to make a function available af ...