码迷,mamicode.com
首页 > 编程语言 > 详细

JavaWeb开发学习(一)-JavaWeb开发概述

时间:2015-05-09 11:29:01      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

1、Web相关概念

  Web程序也就是一般所说的网站,由服务器、客户端浏览器以及网络组成。Web程序的好处是使用简单,不需要安装、学习,有一台电脑、一根网线就可以使用。Web程序不是一般意义上的网站。网站的目的是提供信息服务,重在内容,程序往往比较简单。但一个Web程序往往比较复杂,背后结合数据库等技术。

  按照是否需要访问网络,程序可分为网络程序和非网络程序。其中网络程序又分为B/S和C/S结构。C/S是指客户端(Client)/服务器(Server)模式。这种模式的客户端需要安装一个桌面程序。桌面程序负责与服务器进行数据交换。一般的网络程序都是C/S结构,例如QQ、MSN、PP Live、迅雷等。B/S是指浏览器(Browser)/服务器(Server)模式。一般的网站都是B/S结构的,例如Google、百度。

2、Web开发背景知识

2.1 Web访问的基本原理

  (1)用户打开浏览器,输入网站的URL地址,也就是是通常说的网址。这个地址告诉浏览器要访问互联网中的哪台主机。

  (2)浏览器寻找到指定的主机之后,向Web服务器发出请求(request)。

  (3)Web服务器接受请求并做出相应的处理,生成处理结果,大多数生成HTML格式,也有其他响应的格式。

  (4)服务器把响应的结果返回发送给服务器。

  (5)浏览器接收到相对应的响应结果后,在浏览器中显示响应结构,比如Web页面。

技术分享

图1.1 浏览器访问Web过程

2.2 HTTP超文本传输协议

  HTTP协议是浏览器和服务器之间的应用层通信协议,它是基于TCP/IP之上的协议,不仅保证正确传输超文本文档,还确定传输文档中的那一部分,以及哪一部分内容首先显示(如文本先于图片)等。下面介绍基于HTTP协议的客户端/服务器模式的信息交换过程,它分为4个过程:建立连接。发送请求信息、发送响应信息、关闭连接。

  · 建立连接:连接的建立是通过申请套接字(Socket)实现的。客户端打开一个套接字并把它约束在一个端口上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟文件上些数据并通过网络向外传送。

  · 发送请求:打开一个连接后,客户机把请求消息送到服务器的停留端口上,完成提出的请求动作。

  · 发送响应:服务器在处理完饿虎短的请求之后,要向客户机发送响应消息。

  · 关闭连接:客户和服务器双方都可以通过关闭套接字来结束TCP/IP对话。

2.3 Web浏览器

  目前,有很多Web浏览器,主流的浏览器有:IE、Firefox、Opera、Chrome等。

2.4 Web服务器

  在服务器端,与通信相关的处理都是由服务器软件负责,这些服务器软件都由第三方的软件厂商提供,开发人员只需要把功能代码部署在Web服务器中,客户端就可以通过浏览器访问到这些功能代码,从而实现向客户提供的服务,常用的服务器有:

    · IIS是微软提供的一种Web服务器,提供对ASP语言良好的支持,通过插件的安装,也可以提供对PHP语言的支持。

    · Apache服务器是由Apache基金组织停工的一种Web服务器,提供对JSP和Servlet的支持,通过安装插件,同样可以提供对PHP语言的支持,但是Tomcat只是一个轻量级的JavaWeb容器,像EJB这样的服务在Tomcat中是不能运行的。

    · JBoss是一个开源的重量级的Javaweb服务器,在JBoss中,提供对J2EE各种规范的良好支持,而且JBoss通过了Sun公司的J2EE认证,是Sun公司认可的J2EE容器。

    · 另外J2EE的服务器还有BEA的Weblogic和IBM的WebSphere等,适合大型的商业应用。这些产品的性能都是非常优秀的,可以提供对J2EE的良好支持。

3 Web开发技术

3.1 Java Servlet

  Sun公司在上世纪90年代末就发布了基于Servlet的Web服务器。为了确保加载在各个类之间不起冲突,已经建立了一个称为Java Servlet API(应用编程接口)的编码标准。现在基本上所有的服务器都遵循这个编码标准,所以Servlet有很好的移植性。现在的Web服务器已经集成了Servlet容器,Servlet容器负责管理加载、卸载、重新加载和之行Servlet代码等操作。  

  与传统的CGI程序相比,Servlet有如下几个优点:

    · 只需要启动一个操作系统进程以及加载一个JVM,大大的降低了系统的开销。

    · 如果多个请求需要做同样处理的时候,这时只需要加载一个类,这也大大降低了开销。

    · 所有动态加载的类可以实现对网络协议以及请求解码的代码共享,大大降低了工作量。

    · Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。

  虽然Servlet改变了传统CGI程序的缺点,但是它也有不足的地方:Servlet可以建立动态生成的网页,而网页中可以包含从服务器断的Java对象所获得的数据。但是Servlet生成网页的方法是在Java类中嵌入HTML标签和表达式。也就是说对HTML坐一个小小的改动是,都需要修改和重新编译Servlet 源文件,然后重新部署到Servlet容器中。或许设计HTML页面和编写Servlet代码的不是同一个人,这就使得修改Servlet变得非常麻烦。

3.2 JSP: Servlet的模板

  Java Server Page(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,它是Servlet API的一个扩展。由于JSP页面在编译成Servlet之前也是可以使用的,所以它具有了Servlet的所有优点,包括访问Java API。又由于JSP是嵌入到Servlet中关于应用程序的一般表达代码,所以可以把它看成一种“彻底”的Servlet。访问一个JSP网站的过程如图1.2所示。

技术分享

图1.2 JSP页面访问示意图

3.3 JSP基本原理

  Web容器处理JSP文件请求需要经过三个阶段:

    · 翻译阶段:在这一阶段,编写好的JSP文件首先会被Web容器中的JSP引擎转换成Java源代码,也就是通过Servlet引擎。

    · 编译阶段:JSP文件所翻译成的Java源代码会被编译成可执行的字节码(可执行的字节码是二进制格式)。

    · 请求阶段:当容器接受了客户端的请求之后,就执行前面已经编译成二进制字节码的JSP文件。出来请求之后,容器再把生成的页面反馈给客户端进行显示。

JavaWeb开发学习(一)-JavaWeb开发概述

标签:

原文地址:http://www.cnblogs.com/CodingCodingCoding/p/4489418.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!