Java Web服务器开发概述 一

来源:互联网 发布:轻淘客cms网站 编辑:程序博客网 时间:2024/06/07 20:44

Java Web 是用Java技术来解决相关Web互联网领域的技术总和.

包括Web服务器和Web客户端两部分。

这里只简单阐述了一些Web服务器开发的最基本的概念。


一、从Java Servlet说起。

我们知道访问网页的过程就是:客户端Browser通过HTTP协议和Web服务器交互的过程。

因为HTTP协议服务器实现较为复杂,所以并不是说每个网站都要有一个完全独立开发的服务器,相反,通常情况是利用已经实现的服务器端软件,而这些软件为我们留出了扩展接口,我们只需按一定规则提供相应功能就可以。所以具体说Web服务器的处理响应过程就是:服务器接收到客户请求后,判断请求是访问我们提供扩展功能,如果是,就交由我们编写的程序处理,处理完成后,程序处理结果返回给Web服务器软件,Web服务器软件拿到结果信息后,再将结果作为响应信息返回给客户端

Java Servlet就是Java给我们提供的编写扩展功能的技术。运行在服务器端,由Servlet容器管理。编写一个Servlet,实际上就是按Servlet规范写一个Java类。

注:Java Servlet和Java Applet一样,都不是由程序员直接调用的,而是生在在容器中,由容器管理(所以没有main()方法),但Applet运行在浏览器中,Servlet运行在Servlet容器中。且...Applet已经好像已经快挂掉了.

二、Servlet容器

Servlet容器(也叫servlet引擎)是web服务器或程序服务器的一部分,用于在发送的请求和响应之上提供网络服务。根据他的工作模式不同,分为独立的servlet容器,进程内的servlet容器,进程外的servlet容器

要知道,大多数的Web服务器并非基于Java,当我们使用基于Java技术的Web服务器时,Servlet容器作为构成web服务器的一部分存在,这个时候就是独立的servlet容器。当在不是基于java的服务器中,Servlet容器就是另两种工作模式。

Tomcat就是一个包含独立的Servlet容器基于java的web服务器

            Tomcat 服务器接收客户请求并作出响应的过程图

1、客户端访问Web服务器,发送HTTP请求

2、Web服务器接收到请求后,传递给Servlet容器

3、Servlet容器加载Servlet实例,向其传递表示请求和响应的对象

4、Servlet实例使用请求对象得到客户端的请求信息,然后处理

5、Servlet实例将处理结果通过响应对象发送回客户端,容器负责确保响应正确送出,同时将控制权返回给Web服务器


小结一下:也就是说,一个Web应用程序是由一组Servlet、HTML页面、类、以及其他资源组成的运行在Web服务器上的完整的应用程序。


那么,我们在来看看两个关于Web应用程序你不得不知道的事。

三、会话跟踪

HTTP协议本身是基于请求/响应模式的,无状态的协议,也就是说,客户端请求到来,服务器响应后,连接就关闭了。可是用户的活动在多个请求和响应之中,所以作为Web服务器来说,必须能够采用一种机制,来唯一的标识一个用户,同时记录该用户的状态,这是一个Web应用典型的需求。
以下是Web服务器的两种重要机制
1、会话:服务器应当能够标识出单个客户一系列请求,并把这些请求组成一个单独工作的会话
2、状态:服务器应当能记住前面请求的信息,以及对前面请求作出的处理信息

Java Servlet API使用Session来跟踪会话和管理状态!
过程是这样的:当客户第一次连接服务器时,服务器为其建立一个Session,并分配给客户一个SessionID,以后客户每次提交请求,都要将SessionID一起提交。服务器根据标识找出特定Session,用这个Session记录客户的状态!
Servlet提供三种机制用于会话跟踪:
1、SSL(Secure Socket layor)会话:运行在TCP/IP之上像HTTP这种应用层协议之下的加密技术
2、Cookies:服务器发送给客户的片段信息,存储在客户端浏览器的内存中或硬盘上
3、URL重写:就是URL中嵌入SessionID,客户端请求再发回来

四、JSP

JSP是一种建立在Servlet规范提供的功能之上的动态网页技术,通常在网页中嵌入脚本代码,用户产生动态内容。
JSP可以看成运行时的Servlet,它们的区别:
1、Servlet是JAVA对CGI的回应。它们在服务器上执行和解释浏览器的请求,承担客户端和其他应用程序之间的中间层的角色。Servlet主要是把动态的内容混到静态的内容中以产生HTML
2、JSP页面在HTML元素中嵌入Java脚本和JSP标记,格式更加清晰,另一方面,JSP把静态和动态内容分离,实现了内容和表示的分离。
3、使用JSP,不需要单独配置每一个文件,只要扩展名是.jsp,JSP容器(也就是Servlet容器)就自动识别,将其转换为Servlet为客户端服务。

另外,有个叫JavaBean的东西要说说。因为JSP页面混合了HTML代码和Java代码,页面显示逻辑和业务逻辑混杂在一起,不仅可读性差,也难维护。所以,一个很自然的想法就是单独写一个类来封装页面的业务逻辑,这个类就是JavaBean。

五、两个基本架构模型

使用JSP技术开发Web应用程序有两种基本架构模型

Model 1:   

JSP+JavaBeans。其中JSP实现页面的显示,JavaBean用来保存数据和实现业务逻辑。

如图,JSP页面独自响应请求并将处理结果返回,所有的数据通过JavaBean处理。

Model 2: 

在Model1中JSP嵌入了“流式控制代码”和“逻辑处理代码”,我们可以讲这部分代码提取出来,放到一个单独的角色中,这个角色就是控制器角色,这就是模型2。模型2符合MVC架构模式

 Servlet充当控制器,它接受请求,并且根据请求信息将它们分发给适当的JSP页面来产生响应。Servlet还根据JSP视图需求生成JavaBean实例并输出给JSP环境。






原创粉丝点击