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

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文件。出来请求之后,容器再把生成的页面反馈给客户端进行显示。

时间: 2024-10-07 16:29:46

JavaWeb开发学习(一)-JavaWeb开发概述的相关文章

IBatis .NET 开发学习笔记——.NET 开发环境搭建

大家好,今天给大家带来的是web应用程序配置,至于windows应用程序或者其他类型解决方案可以相同的配置,web应用程序配置文件为web.config,windows应用程序是app.config. 通过以下步骤可以建立属于你自己的环境: 1.首先,肯定是打开Visual Studio(文章后面简称VS),如果你有其他工具开发,我也不介意,反正我用VS,VS目前最新版是2013,不过我喜欢复古,所以,我目前用安装VS2010来当作教程,不管目前是多少版本了,都可以同理得到. 2.然后,新建一个

安卓开发学习笔记-安卓开发之环境配置

作为一个工作了五年左右的C#资深开发程序员,虽然知道现在开始学安卓开发有点半路出家的味道,但是俗话说技多不压身,由于大学期间学习了java这门语言,而安卓开发又是以java作为开发语言,所以我感觉自己可以稍微涉足安卓,不求涉深,只求能懂,当然如果能有小成,也是我所希冀的. 要想学习安卓开发,首先肯定是配置安卓开发环境,安卓开发不像是asp.net或者winfrom.mvc之类的,直接安装完一个vs了事,然后你就可以大行其道的进行基于C#语言的项目开发了,搭建安卓开发环境,首先我们需要安装java

吴裕雄--天生自然Android开发学习:android开发知识学习思维导图

原文地址:https://www.cnblogs.com/tszr/p/12017363.html

javaweb学习之Servlet开发(二)

javaweb学习总结(六)--Servlet开发(二) 一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数. 例如: 1 <servlet> 2 <servlet-name>ServletConfigDemo1</servlet-name> 3 <servlet-class>gacl.servlet

JavaWeb学习(一)---JavaWeb开发入门

本文整理自孤傲苍狼大大的博客,,, 一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变. 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同. 静态web资源开发技术:Html 常用动态web资源开发技术:JSP/Servlet.ASP

Javaweb开发学习路线及Java三大框架

Java web开发是什么? Java web开发,是用Java技术来解决相关web互联网领域的技术总和.web包括:web服务器和web客户端两部分.Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等.Java技术对Web领域的发展注入了强大的动力. Java web 开发 Java web开发学习路线 一:入门阶段 学习目标:Java程序员 1: 熟悉jdk,jvm,eclipse,安装于配置jdk

基于CentOS7上的搭建javaweb环境 - 学习笔记

一, 概述 上一篇记录了安装CentOS7的基本步骤及配置,现在要讲如何搭建基于CentOS7环境的javaweb环境了,我以 mysql + jdk1.8.0_91 + apache tomcat7.0.69 为例进行讲述. 二, 安装步骤 1, 首先在CentOS7下在线安装mysql数据库服务 (1)先查看是否已安装了mysql rpm -qa | grep mysql (2)若安装了,可以卸载,再重新安装 yum -y remove mysqlxxxxx (3)安装 yum -y ins

java学习笔记-JavaWeb篇

JavaWEB篇 1 Tomcat的安装和配置 1.部署并启动tomcat服务器 1). 解压tomcat安装包到一个非中文目录下 2). 配置一个环境变量 java_home(指向jdk安装的根目录)或jre_home 3). 通过tomcat安装目录bin目录下的startup.bat,启动服务器 4). 可以在浏览器中输入localhost:8080来检验Tomcat安装是否正确 5). 若已经启动了一个Tomcat应用,若再启动同一个Tomcat应用,会抛出异常: Java.net.Bi

【转】Android开发学习总结(一)——搭建最新版本的Android开发环境

最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是一直没有搭建开发环境去学习,Android的更新速度比较快了,Android1.0是2008年发布的,截止到目前为止Android已经更新Android5.0.1,学习Android开发的第一步就是搭建Android的开发环境,博客园里面有不少人也写了关于如何搭建Android开发环境的文章,我也看了一下,但是感觉都比较旧了,对照着做不一定能够搭建成功,但是有些搭建步骤是还是可