JavaEE

Java的特点

简单性,面向对象,分布性,编译和解释性。 java特点包括简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等,java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

程序架构

分为B/S架构程序和C/S架构程序。

B/S架构程序

又称浏览器或服务器架构程序,这种模式只要客户机安装一个浏览器,服务器安装数据库浏览器通过Web Server 同数据库进行数据交互。

例:

B/S架构

 B/S架构工作原理

 

C/S架构程序

c/s架构就是客户机和服务器结构,它是一种网络体系结构。其中客户端是用户运行应用程序的PC端或者工作站,客户端要通过服务器获取资源。

例:

  C/S架构工作原理

 Web服务器

Web服务器

是可以向发出请求的浏览器提供文档的程序

提供网上的信息浏览服务

常用的Web服务器

Microsoft:  IIS

Apache:Tomcat

Oracle: WebLogic

IBM: WebSphere

Nginx

.........

静态Web站点

静态Web站点:每次访问返回页面相同,客户端与服务器端不能交互。

步骤1-Web浏览器请求静态页。

步骤2-Web服务器查找页。

步骤3-Web服务器将页发送到请求浏览器。

动态Web应用:无数据库

动态Web应用:每次请求客户端可以输入一些参数,服务器接收后,返回不同的页面。

例如,使用百度搜索。

步骤1-Web浏览器请求动态页。

步骤2-Web服务器查找该页并将其传递给应用程序服务器。

步骤3-应用程序服务器查找该页中的指令并完成页。

步骤4-应用程序服务器将完成的页传递回Web服务器。

步骤5-Web服务器将完成的页发送到请求浏览器。

动态Web应用:有数据库

多数Web应用都使用数据库存储数据。

步骤1-Web浏览器请求动态页。

步骤2-Web服务器查找该页并将其传递给应用程序服务器。

步骤3-应用程序服务器查找页中的指令。

步骤4-应用程序服务器将查询发送到数据库驱动程序。

步骤5-驱动程序对数据库执行查询。

步骤6-记录集被返回给驱动程序。

步骤7-驱动程序将记录集传递给应用程序服务器。

步骤8-应用程序服务器将数据插入页中,然后将该页传递给Web服务器。

步骤9-Web服务器将完成的页发送到请求浏览器。

HTTP协议

超文本传输协议

-无状态协议

-用于通过Internet发送请求消息和响应消息

-使用端口接收和发送消息,默认为80端口

-http(Hypertext transfer protocol)超文本传输协议,通过浏览器和服务器进行数据交互,进行超文本(文本,图片,视频等)传输的规定。也就是说,http协议规定了超文本传输所要遵守的规则。

什么是无状态:

无状态是指协议对于事务处理没有记忆功能。缺少状态意味着,假如后面的处理需求前面的信息,则前面的信息必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要前面信息时,应答就较快。直观地说,就是每个请求都是独立的,与前面的请求和后面的请求都是 没有直接联系的。

在实际中的使用情况

在web应用中,我们使用http协议,但是我们需要的web是有状态的,因此加入了cookie,session等机制实现有状态的web。

web=http协议+状态机制+其他机制

为什么不改变HTTP使其有状态

最初的http协议是用来浏览静态文件的,无状态协议已经足够了,这样实现的状态会比较轻(相对来说实现状态的代价是很高的,要维护状态根据状态来操作。)随着Web的发展,它需要变得有状态,但是不需要修改http协议使之有状态。因为我们经常长时间逗留在一个网页,然后进入到另一个网页,如果在这两个网页之间维护状态,代价是很高的。其次,历史让http无状态,按照软件领域的通常做法是,保留历史经验,在http协议上再加上一层实现我们的目的,所以引入了其他机制来实现这种有状态的连接。

哪些方法可以实现有状态连接:

cookies,session,application

HTTP协议

 URL(统一资源定位符)

包含了用于查找的资源的足够的信息,一般常用的就是URL,而一个完整的URL包含下面的及部分

例:http://www.fishbay.cn:80/mix/76.html?name=kelvin&password=123456#first

1.协议部分

该URL的协议部分为http:,表示网页用的是HTTP协议,后面的//为分隔符

2.域名部分

域名是www.fishbay.cn,发送请求时,需要向DNS服务器解析IP。如果为了优化请求,可以直接用IP作为域名部分使用

3.端口部分

域名后面的80表示端口,和域名之间用:分隔,端口不是一个URL的必须的部分。如果端口是80,也可以省略不写。

4.虚拟目录部分

从域名的第一个/开始到?为止,是文件名的部分。其中,虚拟目录也不是URL必须的部分,上面例子的虚拟目录是/mix/

5.文件名部分

从域名最后一个/开始到?为止,,是文件名的部分;如果没有?,则是从域名最后一个/开始到#为止,是文件名部分;如果没有?或#,那么就从域名的最后一个/从开始到结束,都是文件名部分。上面的例子的文件名是76.html,文件名也不是一个URL的必须部分,如果没有文件名,则使用默认文件名

6.锚部分

从#开始到最后,都是锚部分。上面例子的锚部分是first,锚也不是一个URL必须的部分

7.参数部分

从?开始到#为止之间的部分是参数部分,又称为搜索部分,查询部分。本例中的参数是name=kelvin&password=12345,如果有多个参数,各个参数之间用&作为分隔符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

籽小瓜甜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值