B/S计算模式的3层架构:

软件设计与开发模式的演化

    1. 面向机器语言的开发模式
    2. 软件的生命周期开发模式
      • 需求分析
      • 系统设计
      • 系统开发
      • 系统测试
      • 运行和维护
    3. 原型法开发模式
    4. 面向组件(Component)的开发模式
    5. OOP模式
    6. 面向服务模式(SOA)

Java与XML的关系

  java实现了代码的平台无关性,而XML实现了数据的平台无关性。

JSP执行的3个条件

  JSP引擎、Java编译器、JVM

JSP的运行机制

JSP程序的开发模式:

  • 单纯的JSP编程:java代码与html代码混合在一起。现实和数据处理放在一个页面中;
  • Model 1模型(JSP+JavaBean):将要进行的业务逻辑封装到JavaBeans中,在JSP页面中通过动作标签来调用这个类,从而执行这个业务逻辑。此时的JSP除了负责部分流程的控制外,大部分用来显示页面,而JavaBean则负责业务逻辑的处理。其流程图如下图所示:
  • JSP+Servlet+JavaBean: JSP+JavaBean设计模式虽然已经将网站的业务逻辑和显示页面进行分离,但这种模式下的JSP不但要进行程序中大部分的流程控制,而且还要负责页面的显示,所以仍然不是一种理想的设计模式。在JSP+JavaBean设计模式的基础上加入Servlet来实现程序中的控制层,是一个很好的选择。在这种模式中,由Servlet来执行业务逻辑并负责程序的流程控制,JavaBean组件实现业务逻辑,充当着模型的角色,JSP用于页面的显示。其流程图如下所示:
  • 但JSP+Servlet+JavaBean模式同样也存在缺点。该模式遵循了MVC设计模式,MVC只是一个抽象的设计概念,它将待开发的应用程序分解为三个独立的部分:模型(Model)、视图(View)和控制器(Controller)。虽然用来实现MVC设计模式的技术可能都是相同的,但各公司都有自己的MVC架构。即这些公司用来实现自己的MVC架构所应用的技术可能都是JSP、Servlet与JavaBean,但他们的流程及设计却是不同的,所以工程师需要花更多的时间去了解。从项目的开发观点上来说,因为需要设计MVC各对象之间的数据交换格式与方法,所以会需要花费更多的时间在系统的设计上。 使用JSP+Servlet+JavaBean模式进行项目开发时,可以选择一个实现了MVC模式的现成的框架,在此下进行开发,大大节省了开发时间,会取得事半功倍的效果。目前已有很多可以使用的现成的MVC框架,例如Struts框架。

MVC模式

  MVC(Model-View-Controller,模型—视图—控制器)是一种程序设计概念,它同时适用于简单的和复杂的程序。使用该模式可将待开发的应用程序分解为3个独立的部分:模型、视图和控制器。提出这种设计模式主要是因为应用程序中用来完成任务的代码——模型(也称为“业务逻辑”)通常是程序中相对稳定的部分,并且会被重复使用,而程序与用户进行交互的页面——视图,却是经常改变的。如果因需要更新页面而不得不对业务逻辑代码进行改动,或者要在不同的模块中应用到相同的功能而重复地编写业务逻辑代码,不仅降低了整体程序开发的进程,而且会使程序变得容易维护。因此,将业务逻辑代码与外观呈现分离,将会更容易地根据需求的改变来改进程序。

  MVC模式中的Model(模型)指的是业务逻辑的代码,是应用程序中真正用来完成任务的部分。

  View(视图),实际上就是程序与用户进行交互的界面,用户可以看到它的存在。视图可以具备一定的功能并应遵守对其的约束,在视图中不应包含对数据处理的代码,即业务逻辑代码。

  Controller(控制器),主要控制用户请求并作出响应。它根据用户的请求选择模型或修改模型,并决定返回怎样的视图。

Java WEB应用开发的更多相关文章

  1. java web的开发 知识要点

    近期闲下来时写的一个有关 java web的开发 的 常用架构 的总结,用于初 学 者或团队新人培训. Java开发初步.ppt SSH  为 struts+spring+hibernate 的一个集 ...

  2. Java Web高性能开发(三)

    今日要闻: Clarifai:可识别视频中物体 最近几年,得益于深度学习技术的发展,谷歌和Facebook等企业的研究人员在图形识别软件领域取得了重大突破.现在,一家名为Clarifai的创业公司则提 ...

  3. Java Web高性能开发(二)

    今日要闻: 性价比是个骗局: 对某个产品学上三五天个把月,然后就要花最少的钱买最多最好的东西占最大的便宜. 感谢万能的互联网,他顺利得手,顺便享受了智商上的无上满足以及居高临下的优越感--你们一千块买 ...

  4. 使用MyEclipse搭建java Web项目开发

    转自:http://blog.csdn.net/jiuqiyuliang/article/details/36875217 首先,在开始搭建MyEclipse的开发环境之前,还有三步工具的安装需要完成 ...

  5. java web面试技巧,数据库面试,java web轻量级开发面试教程

    我最近看到一本比较好的讲java web方面面试的书,java web轻量级开发面试教程. 其中不仅用案例和视频讲述了Spring MVC,Hibernate, ORM等方面的技巧,而且还实际讲到了面 ...

  6. java web方面的面试问题,Spring MVC方面的面试问题,摘自java web轻量级开发面试教程

    本文摘自java web轻量级开发面试教程: https://baike.baidu.com/item/Java%20Web%E8%BD%BB%E9%87%8F%E7%BA%A7%E5%BC%80%E ...

  7. java web轻量级开发面试教程摘录,java web面试技巧汇总,如何准备Spring MVC方面的面试

    本内容摘自 java web轻量级开发面试教程 https://baike.baidu.com/item/Java%20Web%E8%BD%BB%E9%87%8F%E7%BA%A7%E5%BC%80% ...

  8. java web轻量级开发面试教程内容精粹:哪些简历得不到面试机会

    看到一本较好的实践性比较强的书,java web轻量级开发面试教程,里面的一些内容很有实践意义. 问题点 很难获得面试机会的原因 学历不符,比如要求是本科以上,但学历是大专 学历是硬指标,所以达不到学 ...

  9. Java web轻量级开发面试教程读书笔记:数据库方面,如何准备面试

    如果在面试或与资深人事交流的过程中,你能有效合理地展示出本章所给出的一些知识点,那么对你的评价就会是"对数据库有深入了解",甚至能加上"有设计数据表的经验",即 ...

  10. java web轻量级开发面试教程读书笔记:建索引时我们需要权衡的因素

    场景一,数据表规模不大,就几千行,即使不建索引,查询语句的返回时间也不长,这时建索引的意义就不大.当然,若就几千行,索引所占的空间也不多,所以这种情况下,顶多属于"性价比"不高. ...

随机推荐

  1. IIS 之 Asp.Net项目内部运行详解

    我们都知道,当用户在浏览器地址栏中输入网址时,该请求会被IIS服务器捕获,如果是请求的是静态页面则由IIS本身处理并直接返回客户端:如果是动态页(*.aspx),通过一系列的前期的处理来到 .NET ...

  2. 树莓派学习笔记——GPIO功能学习

    0.前言     树莓派现在越来越火,网上树莓派的资料也越来越多.树莓派的学习可以分为linux系统学习和linux驱动学习,利用树莓派制作LED流水灯应该算是驱动学习吧.树莓派来自国外,国外嵌入式开 ...

  3. 在k8s上部署第一个php应用

    一.搭建nginx+php 1.站点配置文件 1.1创建nginx-configmap.yaml [root@master k8s]# cat nginx-configmap.yaml apiVers ...

  4. Android Studio修改项目名和包名

    为了提高开发效率,有时候需要使用现有的一些开源项目,记录一下自己修改项目名和包名的方法. 1.首先,修改包名(清单文件里找), ①展开所有包 ②选中想要修改的包,shift+F6(也可右键Refact ...

  5. mui 页面跳转

    1.初始化时创建子页面 mui.init({ subpages: [{ url: your - subpage - url, //子页面HTML地址,支持本地地址和网络地址 id: your - su ...

  6. marquee.js

      图片无缝滚动工具类 CreateTime--2018年3月7日17:11:03 Author:Marydon /** * 图片无缝滚动 * @description * 将要滚动的图片复制一份作为 ...

  7. CXF 调用方式——动态创建客户端(调用稳定版本号为2.7.18)

    今天用动态创建客户端的方式调用webservice,报了这样一个错: 2017-01-05 20:51:46,029 DEBUG main org.apache.cxf.common.logging. ...

  8. 准备你的Adempiere开发环境(2)- 安装

    1. 用pgAdmin III创建用户adempiere/adempiere:2. 创建adempiere360数据库:3. 导入<ADEMPIERE_HOME>\data\Adempie ...

  9. 物联网通信协议——比较-MQTT、 DDS、 AMQP、XMPP、 JMS、 REST、 CoAP

    物联网通信协议——比较-MQTT. DDS. AMQP.XMPP. JMS. REST. CoAP   AMQP & MQTT & DDS (https://www.youtube.c ...

  10. 解决Janusgraph索引状态不变更的问题

    JanusGraph的索引因为要同步不同实例及不同后端的数据,因此不是实时能够完成的,视配置,网络和数据量不同,建立/生效索引通常需要一段时间,这也是为什么创建索引时会创建wait()的原因. 在实践 ...