知识要点:

1、HTTP协议

2、web服务器的缺陷及其解决方案

3、对Servlet的认识

4、Servlet的主要任务

5、web容器对Servlet的支持包括的内容

HTTP协议---(HyperText Transfer Protocol)

超文本传输协议,是网络应用层的协议,建立在TCP/IP协议的基础之上,是一种无状态的协议,遵循请求/响应模式。

http请求:请求行、请求头、消息体以及分割请求头和消息体的空行;

http响应:状态行、响应头、消息体以及分割响应头和消息体的空行;

HTTP的事务处理步骤:

1、客户端与web服务器建立连接;

2、客户端发送HTTP请求;

3、服务端接收客户端发送的HTTP请求,生成HTTP响应,并回送;

4、服务器端关闭连接,客户端解析回送的响应,恢复页面。

Web服务器的缺陷及其解决方案

缺陷:只能向客户端提供静态网页内容

解决思路:增加一个辅助应用程序,生成动态页面。

具体解决方案:

1、CGI:通用网关接口---Common Geteway Interface

2、微软的ASP技术和ASP.NET技术

3、JAVA方案:web容器与Servlet

CGI方案:

1、优点:多种语言可以实现此种方法

2、缺点:只要客户端发出请求,就会创建一个CGI对象,造成服务器资源浪费,效率低下。

JAVA解决方案:

1、Servlet是单例多线程,不用每次请求都创建对象;

2、Servlet本身已实现HTTP协议,对开发者来说,不用对HTTP协议进行深入的理解。

Servlet的任务:

A、认识

1、Servlet是常规的Java代码,代码中用了一些新的API,但是不涉及新的语法;

2、Servlet代码有我们不熟悉的语句,Servlet不属于J2SE,它属于单独的规范;

3、Servlet对标准类(Http Servlet)进行了扩张;

4、Servlet没有main()方法。

B、任务

1、读取客户端发送的显式的或隐式的数据;

2、生成结果;

3、向客户端发送显式数据(文档)和隐式数据(http响应请求)

Web容器

1、Web容器负责管理和运行Servlet,为Servlet提供所需的环境

2、Web容器使程序员可以把注意力放在Servlet如何实现业务逻辑上,而无需其他系统问题;

3、Web容器对Servlet的支持

a、通信支持:web容器可以把请求和响应流封装成请求和响应对象,方便用户对流数据进行操作;

b、生命周期管理:Servlet的生成、调用和销毁,全部由容器来管理,用户执行按Servlet的标准来书写业务逻辑;

c、多线程支持:线程的产生、进行和同步问题由web容器来进行;

d、对JSP进行相关的处理

e、安全性处理,可以处理用户进行业务逻辑时抛出的异常。

web容器主要用户给处理容器中的应用程序组件(Servlet、JSP)提供一个环境,使Servlet、JSP直接跟容器的环境变量交互,这样,我们就可以把注意力放在用Servlet实现业务逻辑上,而不必关注其他系统问题。

Java web应用程序目录结构的组成:配置文件、静态文件和JSP、类文件和包。

WEB-INF不能被客户端直接访问。

Tomcat的目录结构:

1、bin:tomcat的命令目录

2、conf:配置目录

3、lib:tomcat运行使用的包;

4、logs:存放日志文件

5、webapps:存放web应用;

6、work:用于JSP支持。

web应用打包成war包的命令:先从控制台进入web应用的文件夹,命令为:jar -cf wenjianming.war WEB-INF *.jpg *.html

Java Web工作原理(转载)的更多相关文章

  1. 第一章 Java Web工作原理

    一:在本章我们将学到如下的内容 >HTTP协议原理 >服务器端Web编程原理 >Servlet与Web容器 >Java Web应用程序的组成 >Tomcat介绍 一:1. ...

  2. Java Web工作原理

    解析HTTP协议 HTTP:超文本传输协议(HyperText Transfer Protocol) HTTP是一种无状态的协议,意思是指在Web浏览器和Web服务器之间不需要建立持久的连接. HTT ...

  3. HTTP协议和web工作原理

    本章学完之后能干什么? 要把 知识点学好,那就需要把它相关的周边知识点了解全面 HTTP协议是web学习的核心!!! 学东东切忌只学配置,不学原理:只学会框架有什么用,要会自己写框架!! web学习直 ...

  4. [Java] SpringMVC工作原理之一:DispatcherServlet

    一.DispatcherServlet 处理流程 在整个 Spring MVC 框架中,DispatcherServlet 处于核心位置,它负责协调和组织不同组件完成请求处理并返回响应工作.在看 Di ...

  5. Java虚拟机工作原理详解 (一)

    一.类加载器 首先来看一下java程序的执行过程. 从这个框图很容易大体上了解java程序工作原理.首先,你写好java代码,保存到硬盘当中.然后你在命令行中输入 javac YourClassNam ...

  6. C/S B/S 及WEB工作原理

     一.C/S B/S区别 (http://wenku.baidu.com/link?url=e8bxaqz_lYCXws6TlDRJEq1qsLumNTBhr3Es6eA1ZuhHhq9FZGbVgo ...

  7. Java虚拟机工作原理详解

    原文地址:http://blog.csdn.net/bingduanlbd/article/details/8363734 一.类加载器 首先来看一下java程序的执行过程. 从这个框图很容易大体上了 ...

  8. Java虚拟机工作原理具体解释

    一.类载入器 首先来看一下java程序的运行过程. 从这个框图非常easy大体上了解java程序工作原理.首先,你写好java代码,保存到硬盘其中.然后你在命令行中输入 javac YourClass ...

  9. web基础-web工作原理,http协议,浏览器缓存

    1,web工作原理 2,http协议 3,浏览器缓存 4,cookie和session -------------------------------------------------------- ...

随机推荐

  1. Java 学习(2):java 基础概念

    Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 基础语法: 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.以 ...

  2. poj 4001 To Miss Our Children Time

    To Miss Our Children Time Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65768/65768 K (Jav ...

  3. 11深入理解C指针之---指针和常量

    该系列文章源于<深入理解C指针>的阅读与理解,由于本人的见识和知识的欠缺可能有误,还望大家批评指教. 指针作为C语言的左膀右臂,使用方便,修改容易,引用数据快速都是很有前景的应用.C语言中 ...

  4. POJ 2577: Interpreter

    简略解题报告 Description A certain computer has 10 registers and 1000 words of RAM. Each register or RAM l ...

  5. win10下Vmware12虚拟机安装Ubuntu16.04

    一.下载VMware虚拟机: VMware12下载地址:点这里 VMware 12pro 专业版永久许可证密钥:  5A02H-AU243-TZJ49-GTC7K-3C61N 如果许可证不能用,参考这 ...

  6. 一分钟学会Spring Boot多环境配置切换

    一. 问题由来 开发环境.测试环境.生产环境--------我们的软件在不同的环境中,系统参数和配置可能会不一样,比如数据源配置.日志文件配置.以及一些软件运行过程中的基本配置,那每次我们将软件部署到 ...

  7. java反射原理运用

    1.首先用Java反射机制的要做到的一个目的:我们都知道通过得到一个对象中的指定方法或者属性等,基于这个原理我们来做一个 通用的功能,让客户端可以通过传入的对象和一个标识去调用这个对象里自己想要的方法 ...

  8. sql server trace

    http://www.cnblogs.com/zhijianliutang/p/4113911.html http://www.cnblogs.com/studyzy/archive/2009/01/ ...

  9. OracleCPU使用情况查询

      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ...

  10. Android:MVC模式(下)

    在上一篇文章中,我们将 View 类单独出来并完成了设计和编写.这次我们将完成 Model 类,并通过 Controller 将两者连接起来,完成这个计算器程序. 模型(Model)就是程序中封装了数 ...