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编程思想读书笔记 第一章 对象导论
抽象过程 纯粹的面向对象程序设计方式: 万物皆为对象: 对象可以存储数据,还可以在其自身执行操作 程序是对象的集合: 通过发送消息告诉彼此要做的 每个对象都有自己的由其它对象构成的存储:可以在程序中构 ...
随机推荐
- js scroll函数
$(function () { $(".sticky").hide(); var top = $(window).scrollTop(); if (top >= 100) { ...
- Nginx 内核优化
内核参数的优化示例: /etc/sysctl.conf net.ipv4.tcp_max_tw_buckets = // timewait的数量,默认是180000. net.ipv4.ip_loca ...
- js计算数字长度
js调用toString方法转为字符串后取长度 var num = 123; alert(num.toString().length);
- [JSOI2008]球形空间产生器 (高斯消元)
[JSOI2008]球形空间产生器 \(solution:\) 非常明显的一道高斯消元.给了你n+1个球上的位置,我们知道球上任何一点到球心的距离是相等,所以我们 可以利用这一个性质.我们用n+1个球 ...
- jQuery - 字符串与json对象之间的转换
将字符串转换为json 在js中,我们是这样写的 var _data = eval('(' + data + ')'); 原理:eval() 函数可计算某个字符串,并执行其中的的 JavaScript ...
- Python 入门基础18 --re模块+内存管理
今日内容: 1.垃圾回收机制 2.re模块 一.垃圾回收机制 在计算机中,不能被程序访问到的数,称之为垃圾 1.1 引用计数 引用计数用来记录值的内存地址被记录的次数 每引用一次就对标记 +1 操作 ...
- 【转】CentOS 7.X 系统安装及优化
[转]CentOS 7.X 系统安装及优化 centos的演变 启动流程sysvinit 串行启动:一次一个,一个一个启动 并行启动:全部的一起启动 init优点 运行非常良好.主要依赖于shell脚 ...
- Django配置富文本编辑器kindeditor
一.简介 django是一个容易快速上手的web框架,用它来创建内容驱动型的网站(比如独立博客)十分方便.遗憾的是,django并没有提供官方的富文本编辑器,而后者恰好是内容型网站后台管理中不可或缺的 ...
- vue的学习(常用功能)
1.介绍vue MVP和MVVM模式!!! mvp模式,其中m是模型是ajax请求数据, v是视图层(html),p是控制器,就是使用jq来实现业务逻辑相关操作(DOM操作很多) MVVM模式,其中M ...
- suse系统开启ssh方法
1.防火墙放开ssh服务 打开/etc/sysconfig/SuSEfirewall2 文件,FW_SERVICES_EXT_TCP="ssh"可以定义开放ssh的服务 2.编辑s ...