java web开发阅读笔记:第一章
学习该书前所用推荐书籍《名师讲坛—java开发实战经典》
一web开发前奏
1.1网页发展
首先搞懂。
1.HTTP:超级文本传输协议,是一种通讯协议。
通过这个网络协议WW浏览器与WWW服务器之间的通讯进行规定,并且通过这个协议我们可以浏览网页,通过网页从客户端写入信息,从服务端得到信息。而通常的HTTP消息包括”客户端->服务端“与”服务端->客户端“的消息传送,图解HTTP协议的功能:
是在客户端通过浏览器根据HTTP协议中向服务器端发出请求,通过服务器向文件系统做出相应的行为(找到相应的网络文件),服务器端再通过HTTP协议对客户端做出回应,显示在浏览器中。
2胖客户端与瘦客户端:是否需要单独的客户端程序支持
因为最开始使用静态web不能实现绚丽的用户体验,因此出现了APPlet程序(就是我们所说的APP),它是基于web网页上的APP。并没有改变服务端,只是在客户端新增了动态效果。依然是采用请求与回应机制(同上)。这里所说到的胖客户端,就是运行时需要一个单独的客户端程序(就和平时上网所用的某个功能提示需要下载APP一样)。
APPlet(采用Java编程语言编写的小应用程序。)
APP(手机软件,就是安装在手机上的软件,完善原始系统的不足与个性化。)
3.JVM:Java Virtual Machine(Java虚拟机)
一般高级语言若需要在一个计算机上运行就需要配置一定的环境,为了解决这个问题,并且我们也知道由于java语言与平台无关,所以有了JVM即在实际的计算机通过虚拟机进行运行。
4.静态请求和动态请求
正如静态动态,静态请求就是不需要增删改查,需要得到的信息就是建站者上传的html文件(html是静态的),而动态请求是需要对保存在服务器上的文件进行改动。在最初的静态web时有说回应网页文件,可以知道网页其实就是独立的文件。
根据静态请求,动态请求,我们可以知道静态网页和动态网页的本质区别是,能否对数据库操作。
5.web容器:(一种服务程序,是处理从客户端发出的请求)
web容器工作包括解析请求,创建对象,处理请求,根据请求对象创建回应等。其实也就是说,我们只需要关注如何将我们的程序与这个黑匣子的线头一一接好,web容器这个黑匣子会帮我们处理发出的动态请求。图解web容器在动态网页中的作用:
现在来看web开发历程:
静态网页->APPlet->动态网页
由于静态网页不能实现绚丽多姿的用户体验和对数据库操作,所以出现了APPlet,但是由于APPlet只能实现表面的体验改观,不能进行文件的读写、无法对数据库操作、且必须有单独的客户端(胖客户端)这些问题依然存在。前两者都是在客户端进行一些改变,且存在以上问题,所以出现了动态网页。这里指出实现动态网页的5种方式:CGI,PHP,ASP,ASP.NET,JSP。
在动态网页中,我们不再需要JVM虚拟机,而是直接通过浏览器,在服务器端进行了改变,有了web服务插件来识别静态还是动态的请求,若是动态请求就通过web容器对动态请求作出处理,再将所有的响应传送到web服务器上,通过HTTP回应将信息回应道web浏览器上。
这就是web的艰险历程。
1.2企业开发架构
首先还是搞清楚几个概念。
1.B/S C/S
B/S:Browse/Server(浏览器/服务端)
在浏览器上运行的程序架构,以浏览器作为客户端,在服务端安装软件,用户通过浏览器则可访问客户端。
C/S:Client/Server(客户端/服务端)
需要在本地计算机上安装工作软件,管理维护都是需要在客户端和服务端一起改动。
也就是说,B/S将C/S中所需要安装在用户计算机的一些软件直接安装到服务端(具体区别http://jingyan.baidu.com/article/b0b63dbfc9a2874a483070c0.html)
所以呢,企业开发架构我们现在来看。如果要分开发动态web,通过B/S模式,对不同的功能单独进行相关处理,修改时候也能单独进行修改,所以现代企业当中我们更多的采用B/S模式,更好分工嘛。
开发模式:
JAVA EE就是一种开发平台。
1.3JAVA EE架构
理解概念。
1.JAVA SE:JAVA设计语言与平台的总称
Java SE:Java标准版,也是Java的核心。
对JAVA EE来说,JAVA SE相当于是一种语法规定,是以JavaSE为基础的。JAVA EE(JAVA企业版)本可以更方便的移植、健壮、可伸缩且安全的服务器端 Java 应用程序。
2.NET开发架构:也是一种平台开发,且是基于JAVA EE的一种企业开发架构。
JAVA EE架构到底是什么呢?有什么呢?从上面可以知道,JAVA EE是开发平台的一种中间体。整个JAVA EE架构由容器、组件、服务组成。理解成某一具体操作对应一种组件(这里讲组件就是APPlication程序,就是APP),而容器相当于我们说的黑匣子(一个容器装一种组件),我所理解的java ee服务就是我们在平台上所看到的各种各样的功能,而且这些功能是JAVA EE自有的,不需要我们单独写组件装容器的一些服务。
而且我们知道了JAVA EE用于企业版本平台的开发,那么在整个企业平台开发中,它包括的三个层次也理解一下。客户层<->中间层<->企业信息系统层,不同用户通过浏览器或者是应用程序通过中间层层得到服务,并将所有需要保存的数据放在企业信息系统层。
1.4JAVA EE核心设计模式
明白概念。
1.JSP:java服务器页面。
一种使软件开发者可以响应客户端请求,而动态生成HTML、XML或其他格式文档的Web网页的技术标准。 是将静态技术(如HTML)与动态技术(java)结合的动态web技术。
2.JAVABean:一种JAVA语言写成的可重用组件。
为写成JavaBean,类必须是公共和具体的,且具有无参数的构造器。从这个地方看,我理解成控相当于函数的调用,控制层调用模型层的模型组件,通过模型组件访问持久层中数据库,得到的一些数据我们通过JavaBean组件进行重用,最后由JavaBean和JSP显示。
MVC设计模式:JAVA EE当中最核心的设计模式就是MVC设计模式.用户通过浏览器发出请求,请求回到控制层被处理,处理结果是调用模型层的模型组件,通过组件往数据库访问,再将所有结果保存在JAVABean中,最后JSP和JAVABean一起完成页面显示。
图解MVC设计模式:
1.5Struts开发框架
对于一般项目不需要MVC设计模式这么多,因而出现了Struts,Struts出现的主要作用是在web层上的开发问题。
学习了第一章节,从web发展历程-企业开发架构-java ee开发架构-java ee核心设计模式:mvc设计模式-struts开发框架
了解如HTTP通讯协议,胖客户端与瘦客户端,JVM虚拟机,APPlet,容器等概念,与设计动态网页完整的思路次序,不同的部分所需要的技术,不同部分之间的如何联系,他们之间的关系。
java web开发阅读笔记:第一章的更多相关文章
- Camel In Action 阅读笔记 第一章 认识Camel 1.1 Camel 介绍
1.1 Camel 介绍 Camel 是一个为了您的项目集成变得高效有趣的集成框架,Camel 项目在2007年初开始的,相对来说它还比较年轻,但它已然是一个非常成熟的开源项目,它所使用的是Apach ...
- Java开发工程师(Web方向) - 01.Java Web开发入门 - 第6章.蜂巢
第6章--蜂巢 蜂巢简介 网站开发完,就需要测试.部署.在服务器上运行. 网易蜂巢: 采用Docker容器化技术的云计算平台 https://c.163.com 容器管理:容器可被视作为云主机的服务器 ...
- Java开发工程师(Web方向) - 01.Java Web开发入门 - 第4章.Maven
第4章--Maven Maven实战 Java Web应用的部署: 手动式: 编译:javac -cp $CATALINA_HOME/lib/servlet-api.jar web-inf/class ...
- Java开发工程师(Web方向) - 01.Java Web开发入门 - 第3章.Tomcat
第3章--Tomcat Tomcat安装与运行 Tomcat:目前最常用的基于java的web应用服务器 本课程中所有的Java代码最终都需要部署到Tomcat中运行 Tomcat的配置文件是XML的 ...
- 《图解HTTP》阅读笔记---第一章网络基础
第一章.网络基础TCP/IP:----------传输控制协议Transmission Control Protocol / 网络协议Internet Protocol是一种用于Internet(因特 ...
- 《Interest Rate Risk Modeling》阅读笔记——第一章:利率风险建模概览
目录 第一章:利率风险建模概览 思维导图 一些想法 第一章:利率风险建模概览 思维导图 一些想法 久期向量模型类似于研究组合收益的高阶矩. 久期向量模型用的是一般多项式表达高阶久期,试试正交多项式? ...
- Java开发工程师(Web方向) - 01.Java Web开发入门 - 第1章.Web应用开发概述
第1章--Web应用开发概述 Web应用开发概述 浏览器-服务器架构(BS-architecture) browser/ App ---- request ----> server ...
- Java开发工程师(Web方向) - 01.Java Web开发入门 - 第5章.Git
第5章--Git 版本控制简介 VCS (version control system) 版本控制系统:记录若干文件的修订记录的系统,帮助查阅/回到某个历史版本 LVCS本地 CVCS集中式(Cent ...
- Java编程思想读书笔记 第一章 对象导论
抽象过程 纯粹的面向对象程序设计方式: 万物皆为对象: 对象可以存储数据,还可以在其自身执行操作 程序是对象的集合: 通过发送消息告诉彼此要做的 每个对象都有自己的由其它对象构成的存储:可以在程序中构 ...
随机推荐
- 主窗口QMainWindow和启动画面
在较为大型复杂,功能较多的应用程序中,我们通常继承QMainWindow类来进行开发.该主窗口为搭建应用用户界面提供了非常好的框架,请看下图: 可以看出该主窗口类为我们提供了菜单栏(Menu Bar) ...
- JavaScript之打印页面局部区域
/** * [print part area of html page] * @Author JohnnyZen * @DateTime 2017-10-23 * @copyright [johnny ...
- 字典取KEY,占位符,延迟刷新
flash 监听事件者 与 事件发出者 比如说现在有A和B,A.addChild(B)A监听鼠标点击事件那么当点击B时,target是B,currentTarget是A也就是说,currentTarg ...
- C# 进程的挂起与恢复
1. 源起: 仍然是模块化编程所引发的需求.产品经理难伺候,女产品经理更甚之~:p 纯属戏谑,技术方案与产品经理无关,芋头莫怪! VCU10项目重构,要求各功能模块以独立进程方式实现,比如:音视频转换 ...
- Activity生命周期详解
http://blog.csdn.net/liuhe688/article/details/6733407 onPause 回到 onResume 的过程“在一般的开发中用不上”,但是作为开发者还是有 ...
- 爬虫之验证码IP攻防心得——小总结
小前言: 一般来说,现在很多平台注册.登录的时候会涉及到验证码,这样做的目的是为了防止恶意程序恶意访问,从而给服务器造成一定的压力,会浪费一定的资源,大家也都知道,现在这种短信平台,邮箱平台等都是收费 ...
- 实用技能之Python打包制作成EXE可执行程序
制作环境:Andconda3,python3.6 一.安装pyInstaller 方式一): 在命令行输入:pip install pyinstaller 方式二): ① 下载pyInstalle ...
- Java 集合系列0、概述
概述: Collection 框架中 从最上层的核心主干可以看到:Iterator.Collection.Map 三个接口(拓展思考1)1.Collection 接口:主要包括了集合中的一些常用操作, ...
- 升级版updateOozie.sh
以前的版本检测当天的Tar包,并只能选择1个Tar包进行更新代码,当天生成多个版本时需修改脚本中配置,并不方便. 升级版兼容目录下存在一个或者多个Tar包的情况: 1.单个Tar包时,直接解压缩到当前 ...
- Linux mmc framework2:基本组件之mmc
1.前言 本文主要mmc组件的主要流程,在介绍的过程中,将详细说明和mmc相关的流程,涉及到其它组件的详细流程再在相关文章中说明. 2.主要数据结构和API TODO 3. 主要流程 3.1 mmc_ ...