知识整理
了解C/S,B/S模式
C/S
(Cliennt/Server或客户/服务器模式)C/S结构的基本原则是计算机应用分解为多个子任务,由多台计算机分工 完成,即采用“功能 分布 ”原则。客户端完成数据处理,数据表示以及用户接口功能;服务器端完成DBMS的核心功能。这种客户请求服务、服务器提供服务的处理方式是一种新型的计算机应用模式。
优点:
(1)、应用服务器运行数据负荷较轻。
(2)、数据的储存管理功能较为透明。
劣势:
随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。
客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。
对客户端的操作系统一般也会有限制。可能适应于Win98, 但不能用于win2000或Windows XP。或者不适用于微软新的操作系统等等,更不用说Linux、Unix等。
C/S架构的劣势还有高昂的维护成本且投资大。首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由[数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。
其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。
B/S
(Browser/Server,浏览器/服务器模式)客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或 SQL Server等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过Web Server 同数据库进行数据交互。
B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装,零维护。系统的拓展非常容易。
B/S结构的使用越来越多,特别是需求推动了AJAX技术的发展,它的程序也能在 客户端电脑上进行部分处理 ,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新
基本区别
1)、硬件环境不同:
C/S一般建立在专用的网络上,小范围的网络环境,局域网之间在通过专门服务器提供连接和系统交换服务。
B/S建立在广域网之上的,不必是专门的网络 硬件环境,例如 电话上网,租用设备,信息自己管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行
2)、对安全要求不同
C/S一般面向固定的用户群 ,对信息安全的控制能力很强,一般高度机密的信息系统均采用 C/S结构适宜。可以通过 B/S发布部分可公开信息。
B/S建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用户。
3)、对程序构架不同
C/S程序可以更加注重流程,可以对权限多层校验,对系统的运行速度可以较少考虑
B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础上,比C/S有更高的要求。B/S结构的程序构架是发展的趋势,从MS的.Net系列的BizTalk 2000 Exchange 2000等,全面支持网路的构建搭建的环境 。SUN和IBM推JavaBean构件技术等,使B/S更加成熟。
4)、软件重用不同
C/S程序可以不可避免的整体性考虑,构建的重用性不如在B/S要求下的构件的重用性好。
B/S对的多重结构,要求构件相对独立的功能,能够相对较好的重用。
5)、系统维护不同
C/S程序由于 整体性、必须整体考察,处理出现的问题以及系统升级,升级难可能是在做一个全新的系统。
B/S构件组成,方面构件个别的更换,实现系统的无缝升级,系统维护开销减到最小,用户从网上自己下载就可以实现升级 。
6)、处理问题不同
C/S程序可以处理用户面固定,并且在相同区域,安全要求高,需求与操作系统相关,应该都是相同的系统。
B/S建立在广域网上,面对不同的用户群,分散地域,这是C/S无法做到的。与操作系统平台关系最小。
7)、用户接口不同
C/S多是建立的Window平台上,表现方法有限,对程序员普遍要求较高。
B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流 ,并且大部分难度降低 ,降低开发成本。
8)、信息流不同
C/S程序一般是典型的中央集权的机械式处理 ,相互性相对低
B/S信息流向可变化,B-B B-C B-G等信息、流向的变化,更像交易中心
maven管理工具
为什么要使用maven
1)、假如你正在Eclipse下开发两个Java项目,姑且把它们称为A、B,其中A项目中的一些功能依赖于B项目中的某些类,那么如何维系这种依赖关系的呢?
很简单,这不就是跟我们之前写程序时一样吗,需要用哪个项目中的哪些类,也就是用别人写好了的功能代码,导入jar包即可。所以这里也如此,可以将B项目打成jar包,然后在A项目的Library下导入B的jar文件,这样,A项目就可以调用B项目中的某些类了。
这样做几种缺陷
如果在开发过程中,发现B中的bug,则必须将B项目修改好,并重新将B打包并对A项目进行重编译操作
在完成A项目的开发后,为了保证A的正常运行,就需要依赖B(就像在使用某个jar包时必须依赖另外一个jar一样),两种解决方案,第一种,选择将B打包入A中,第二种,将B也发布出去,等别人需要用A时,告诉开发者,想要用A就必须在导入Bjar包。两个都很麻烦,前者可能造成资源的浪费(比如,开发者可能正在开发依赖B的其它项目,B已经存储到本地了,在导入A的jar包的话,就有了两个B的jar),后者是我们常遇到的,找各种jar包,非常麻烦(有了maven就不一样了)
2)、我们开发一个项目,或者做一个小demo,比如用SSH框架,那么我们就必须将SSH框架所用的几十个依赖的jar包依次找出来并手动导入,超级繁琐。
上面两个问题的描述,其实都属于项目与项目之间依赖的问题[A项目使用SSH的所有jar,就说A项目依赖SSH],人为手动的去解决,很繁琐,也不方便,所以使用maven来帮我们管理
maven简介
maven是apache下的一个开源项目,纯java开发,并且只是用来管理java项目的 对jar包统一管理
maven的核心功能便是合理叙述项目间的依赖关系,通俗讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包
若本地仓库(存放jar包)有的话,直接获取,如果没有就从网上下载到本地仓库,再从中取出jar包
servlet
处理请求和发送响应
init()方法
初始化 :在第一次创建Servlet时被调用。
service()方法
执行实际任务的主要方法。Servlet容器调用service()方法来处理来自客户端的请求 ,并把格式化的响应写回客户端
每次服务器接受 一个servlet请求时,服务器都会产生一个 新的线程并调用服务,service()方法检查HTTP请求类型(GET、POST、PUT、DELETE等),并在适当的时候 调用doGet、doPost、doPut、doDelete等方法
doGet()方法
GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理。
doPost()方法
POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。
destroy()方法
销毁
request对象
request就是将请求的文本封装而成的对象,所以通过request能获得请求文本中的所有内容,请求头、请求体、请求行。
img img imgresponse对象
imgcookie和session
cookie
概念:
在浏览某些网站的时候,这些网站会把一些数据存在客户端用于使用网站等跟踪用户,实现用户的自定义功能。
是否设置过期时间:
如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器,cookie就消失了
一般保存在内存,不在硬盘
如果设置了过期 时间,浏览器会把cookie保存在硬盘上,关闭再打开浏览器,这些cookie依然有效直到超过设置过期时间;
session
概念:
Session是存放在服务器端的类似于HashTable结构来存放数据
作用:
实现网页之间数据传递 ,是一个储存在服务器端的对象集合。
cookie和session的区别
-
cookie数据存放在客户的浏览器上 ,session数据放在服务器上
-
cookie不是很安全,别人可以分析存在本地的cookie并进行cookie欺骗考虑到安全应当 使用session。
-
session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能,考虑到减轻服务器性能方面 ,应当使用cookie。
-
单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。(session无限制)