当前位置:文档之家› JavaWeb工作原理

JavaWeb工作原理

[JavaWeb工作原理]
[第一章]
一什么是JavaWeb?
JavaWeb是用Java技术来解决相关web互联网领域的技术总和。

web包括:web服务器和web客户端两部分,在第一个项目(贷款计息查询服务器)的时候已经知道在Web服务器的作用是接受客户端请求,然后向客户端返回一些结果.浏览器的作用是允许用户请求服务器上的某个资源,并且向用户显示请求的结果,HTML用于告诉浏览器怎样向用户显示内容,HTTP是WEB上客户端和服务器之间通信所用的协议
二HTTP协议
Http是一种超文本传输协议(HyperText Transfer Protocol),他是一套计算机在网中通信的一种规则,在TCP/IP体系结构中,HTTP属于应用层协议,位于TCP/IP协议的顶层.HTTP是一种无状态的协议,意思是指在WEB浏览器和WEB服务器之间不需要建立持久的连接,HTTP 定义的事物处理由以下四步组成:
1.客户端和WEB服务器建立连接
a)客户端和服务器的连接就是与客户端与服务器的一个TCP Socket套接字连接
2.客户端发送HTTP请求
a)请求包含:请求行--请求行是一个ACCII文本行,由请求的HTTP方法,请求的
URL,HTTP版本组成,中间用空格分开,
b)请求头---HTTP协议使用HTTP头来传递请求的元信息,
c)空行---发送回车符和退行,通知服务器以下不再有请求头
d)消息体--HTTP请求中带有查询字符串时,如果是GET方法,查询字符串或表单
数据附加在请求行中,那么消息体就没有内容,如果是POST方法,查询字符串或
表单数据就添加在消息体重
3.服务器端接收客户端的HTTP请求,生成HTTP相应回发
a)响应包含:状态行---每个HTTP响应以一个状态行开头,它由HTTP协议版本,
响应状态码,响应描述组成,中间用空格分开
b)响应头---响应头与请求头一样,也是一个用冒号分隔符的名称/值对,冒号前面
是HTTP头得名称,后面是HTTP头得值
c)空行---发送回车符和退行,通知服务器以下不再有响应头
d)消息体---要发送回客户端的HTML文档或其他要显示的内容等,WEB服务器
把要发送给客户端的文档信息放在消息体中
4.服务器端关闭连接,客户端解析并回发响应,恢复页面
a)HTTP响应到达客户端后,浏览器先解析HTTP响应中的状态行,查看请求是否
成功的状态代码,然后开始一步步解析响应
三WEB服务器缺陷与CGI
WEB服务是被设计用来向客户端提供HTTP服务的,它只是能向客户端提供静态网页内容.我们知道,静态网页只是原封不动的待在WEB服务器目录中,服务器知道静态页面,并把它原样传回到客户端,每个客户端看到的页面都是一样的,所以WEB服务器它本身并不具备动态页面,所以在最早有了解决办法CGI,
CGI即通用网关接口(Common GateWay Interface),是最早用于创建动态服务器端内容的一种技术,使用CGI,WEB服务器可以将客户端的请求传递给一个外部程序,这个外部程序可以执行,创建内容,并且将响应传递给客户端,
但是他在处理一个请求的时候还行,但是在处理对个请求的时候是没有一个用户请求就新开一个进程,我们都知道进程是有独立的内存空间的,如果请求用户多的时候那么就会导致服务器的崩溃,
四Java的解决方案
在java里,Servlet以及web容器,被设计用来解决CGI的问题,为WEB开发者创建一个健壮的服务器环境,
一、Servlet
a)Servlet是J2EE规范,
b)它是一个普通的JAV A类,集成于HttpServlet,用于处理动态页面的响应
c)它是与平台无关的JAV A类,能够编译成平台中立的字节码,从而被基于JAV A技术
的WEB服务器动态装载和运行
d)Servlet在服务器端得工作主要是执行如下任务
i.读取客户端发送的显示和隐式数据
ii.生成结果
iii.向客户端发送显示数据(文档)和隐式数据(HTTP响应数据)
二、WEB容器
a)WEB容器主要是如Tomcat,Jboss,WebLogic,WebSphere,Oracle9iAS等,其中Tomcat
是一种用的很广泛的Web容器,它是一个开放源代码的免费的中间件产品
b)WEB容器必须对Servlet支持以下几点
i.通信支持
ii.生命周期管理
iii.多线程支持
iv.JSP支持
v.处理安全性
三、Servlet与WEB容器配合处理请求和响应
a)与GUI类似,Servlet允许一个请求被一个程序处理.并且使用同样的程序产生动态的
响应,此外,Servlet特别定义了一个有效的生命周期,使得用单个进程管理所有请求
成为可能,它消除了CGI的多进程缺陷,允许主进程在多个Servlet和多个请求之间
共享内存资源.
b)Servlet运行在一个主进程或者一个父进程中,每个用户发送请求信息到服务器,就会
在Servlet进程里创建一个线程,它们共享一个资源
c)最后,WEB容器和Servlet对请求和响应的处理如下
i.客户端向WEB服务器发起一个HTTP请求
ii.HTTP请求被WEB服务器几首,如果请求的是静态页面,则由WEB服务器负责处理,如果请求的是JAV A WEB组件(Servlet或者JSP),则移交给WEB容器, iii.WEB容器根据Servlet的配置文件(web.xml),确定调用的具体Servlet类,并把request对象,response对象传给它
iv.Servlet通过request对象知道客户端的使用者是谁,客户的请求信息是什么和其他的一些信息
v.一旦Servlet完成了请求的处理,WEB容器就会刷新response,把控制权返回给WEB服务器
五Java Web应用程序的组成
1.配置文件---每个WEB应用程序包括一个配置文件,WEB.XML
2.静态文件和JSP
3.类文件和包---WEB应用程序装载和管理自定义的JAV A代码
4.网页可以放在WEB应用程序的根目录下,根据动态网页或者静态网页放在不同的目录里
5.图像一般会放在images子目录中,不过这是习惯,不是必须的
6.Servlet类,JavaBean类---编译为Class文件后是防在WEB-INF/classes目录的
7.Lib目录用来包含应用程序任何所需要的jar文件
8.标记描述其放在WEB-INF目录下
9.Applet程序放在应用的目录下
10.WEB-INF目录下存放web.xml部署描述文件器
剩下的WEB容器Tomcat主要是在实践中应用,在这里不做总结。

相关主题