使用Servlet作为控制器
一,使用Servlet作为表现层的三个劣势?
1.开发效率低,所有HTML的标签都需要使用页面输出流来完成。
2.不利于团队协作开发,美工人员无法参与Servlet界面的开发。
3.程序可维护性差,即使修改一个按钮的标题,都必须重新编辑Java代码,并重新编译。
二,在标准的MVC模式中,Servlet及作为什么使用?
Servlet仅作为控制器使用,Java EE应用架构正是遵循MVC模式的,对于遵循MVC模式的Java EE应用而言,JSP仅作为表现层(View)技术,作用有两点:
1.负责收集用户请求参数
2.将应用的处理结果,状态数据呈现给用户
Servlet则仅充当控制器(Controller)角色,它的作用类似于调度员:所有用户请求都发送给Servlet,Servlet调用Model来处理用户请求,并调用JSP来呈现处理结果;或者Servlet直接调用JSP将应用的状态数据呈现给用户。
三,Model一般由什么来充当?
Model通常由JavaBean来充当,所有业务逻辑,数据访问逻辑都在Model中实现,实际上隐藏在Model下的可能还有很多丰富的组件,例如DAO组件,领域对象等。
下面举个例子介绍使用Servlet作为控制器的MVC应用,该应用演示了一个简单的登录验证。
控制器负责接收客户端的请求,它既不直接对客户端输出响应,也不处理用户请求,只调用JavaBean来处理用户请求。
DbDao1负责完成查询,插入修改等操作。从上面这个应用的结构来看,整个应用的流程非常的清晰,下面是MVC中各个角色对应的组件:
1.M:即模型,对应JavaBean
2.V:即视图,对应JSP页面
3.C:即控制器,对应Servlet。
使用Servlet作为控制器相关推荐
- Servlet笔记1
1.Servlet的介绍: jsp的本质就是一个Servet,当jsp页面部署在web容器中,web容器会将jsp编译成Servlet.并且jsp页面中的内容都在Servlet中的service()中 ...
- Java 面向对象编程、jQuery、JavaScript、servlet、javabean----理论知识
一.继承 1.继承(优点:代码复用方便修改) 1.1 继承的关键字:extends 1.2 实现继承步骤(1.编写父类 2.编写子类继承父类) 1.3 调用父类方法的关键字:s ...
- 浅析 Servlet 执行原理
在JavaWeb学习研究中,Servlet扮演重要的作用,学好它,是后续JavaWeb学习的良好基础.无论是SSH,还是SSM,微服务JavaWeb技术,都应先学好Servlet,从而达到事半功倍的效 ...
- JSP+JavaBean+Servlet技术(MVC模型)
一,Servlet开发 用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求.服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应.浏览器收到回应,再把回应的内容显示出来.这 ...
- 【Servlet】Servlet与MVC分层开发
处理数据的业务逻辑servlet与开发分层 一.处理数据的业务逻辑servlet 1.Servlet是什么 1.1Servlet是运行在tomcat服务器端的一个java程序: 2.Servlet能干 ...
- JavaWeb开发模式:C/S模式,B/S模式,JSP+JavaBean模式,JSP+Servlet+JavaBean模式
JavaWeb开发模式 1.C/S开发模式 1.C/S架构:客户端Client/服务端Server: a.出现较早,主要应用于局域网内: b.胖客户端:需要特定软件支持(安装客户端) 逻辑关系图如下: ...
- Struts2、SpringMVC、Servlet(Jsp)性能对比 测试 。 Servlet的性能应该是最好的,可以做为参考基准,其它测试都要向它看齐,参照...
2019独角兽企业重金招聘Python工程师标准>>> Struts2.SpringMVC.Servlet(Jsp)性能对比 测试 . Servlet的性能应该是最好的,可以做为参考 ...
- jsp删除时提示_Java修行第058-059天 Servlet+JSP+JavaBean整合项目总结
Servlet+JSP+JavaBean整合项目的总结 项目分层 本次项目的设计使用MVC模型来进行设计,MVC全称为model view controller,是模型视图控制器的缩写 Model 模 ...
- 基于Servlet的MVC模式用户登录实例
关于MVC模式的简单解释 M Model,模型层,例如登录实例中,用于处理登录操作的类: V View,视图层,用于展示以及与用户交互.使用html.js.css.jsp.jQuery等前端技术实现: ...
最新文章
- 语义分割--Loss Max-Pooling for Semantic Image Segmentation
- 你可以不知道的JS二
- 盘点 IDEA2020.3 那些炫酷的插件,超级好用的那种
- vs2015改程序名字
- 7. U9成本核算基本流程概述
- QT解析 JSON 格式的数据
- wpf 点击某控件范围之外的区域 该控件隐藏_iOS平台设计规范(八)控件Controls...
- groupwise_GroupWise部分文档翻译
- Python爬取“Python小屋”公众号所有文章生成独立Word文档
- MFC的DLL中实现定时器功能
- oracle中自定义异常编号,Oracle自定义异常的使用
- 谷歌悄悄修复4个 0day
- 2022最新酷盒iApp源码V7.8版+内置超多功能
- android imageloader 路径,Android中的Universal-Image-Loader的使用
- java之集合ArrayList,LinkedList,HashMap运用
- 中国游客是否可以持中国驾照在美国自驾游?_游侠_新浪博客
- 非常不错的IOS学习网站
- 知乎之问和小雷之解: 现在的年轻人为什么都那么着急?
- 论文阅读:UER: An Open-Source Toolkit for Pre-training Models
- 高明领导不说狠话、不画大饼、不灌鸡汤,打造狼性团队就靠这9条
热门文章
- 线上比赛相关规则补充说明
- Type B和Type A的区别
- 钉钉企业内部开发工具配置
- 算法 - n个数字形成的圆圈中循环删除第m个数字(C++)
- ping: www.baidu.com: Temporary failure in name resolution
- 29_多易教育之《yiee数据运营系统》附录:扩展知识点汇总系列二
- css3圣诞节喜庆文字祝福代码
- sql2005如何修改服务器名称,sql2005 服务器名称设置
- Python DistributedDataParallel(DDP)训练模型
- keil 调试 操作系统_调试操作系统:内存分配的经验教训