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编程思想读书笔记 第一章 对象导论
抽象过程 纯粹的面向对象程序设计方式: 万物皆为对象: 对象可以存储数据,还可以在其自身执行操作 程序是对象的集合: 通过发送消息告诉彼此要做的 每个对象都有自己的由其它对象构成的存储:可以在程序中构 ...
随机推荐
- 有关Java内存溢出及内存消耗的小知识
内存溢出原理: 我们知道,Java程序本身是不能直接在计算机上运行的,它需要依赖于硬件基础之上的操作系统和JVM(Java虚拟机). Java程序启动时JVM都会分配一个初始内存和最大内存给这个应用程 ...
- MVC 部分视图:Partial() 、RenderPartial() 、 Action() 、RenderAction() 、 RenderPage() 区别
在视图里有多种方法可以 加载部分视图,包括: Partial() Action() RenderPartial() RenderAction() RenderPage() 方法. 以下是这些方 ...
- [C++]指针与引用(定义辨析)
1.定义: 1.1 &-----取地址运算符 功能:返变量的内存地址 Eg:int *p,m; 定义p为指向int类型变量的指针,同时定义变量m ...
- break case
#include<stdio.h> main() { ; switch (g){ : : printf("haha"); break; : printf("h ...
- python set()、len()、type()、保留小数、EOFError
1.集合set() set()存的数据为不重复的,可以用此来过滤重复的元素.可以用&求两个set的交集 c = a&b,用|求两个set的并集 c = a | b 用for i in ...
- springMVC入门(一)
1. SpringMVC入门 1.1SpringMVC是什么 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出 ...
- 【Linux】VMware虚拟机中如何配置静态IP
此处详解如何在VMware虚拟机中配置静态IP. 上图是一个草图,大致说明下VMware网络情况.网段指某个IP范围,例如一栋小区楼和另一栋小区楼就不是一个网段 如果你在A小区,你女朋友在B小区,你想 ...
- Python 对图片进行人脸识别
import cv2 def detect(path): img = cv2.imread(path) cascade = cv2.CascadeClassifier("/vagrant/d ...
- 关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决
转自:http://hi.baidu.com/qinfengxiaoyue/item/ff262ccfb53b4c2ba0b50a89 引自:http://blog.csdn.net/sptoor/a ...
- LOJ 2567: 洛谷 P3643: bzoj 4584: 「APIO2016」划艇
题目传送门:LOJ #2249. 题意简述: 有 \(n\) 个位置,第 \(i\) 个位置可以填在 \([a_i,b_i]\) (\(1\le a_i\le b_i\le 10^9\))之间的整数, ...