知识要点:

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. [SCOI2005]繁忙的都市 (最小生成树)

    题目链接 Solution 裸的最小生成树. Code #include<bits/stdc++.h> using namespace std; const int maxn=500008 ...

  2. NOI热身赛A. 小w、小j和小z

    $n \leq 100000$个点在数轴上运动,给初始位置和速度.能删$k$个点,问最晚什么时候发生第一次碰撞. 这个贪心题有点惊.. 首先肯定二分答案,然后就是判断怎么删这$k$个点.我想可以把有冲 ...

  3. react-1 react需要的环境配置

    一.nodeJs简介和安装 1. 官网 https://nodejs.org/en/         NPM https://www.npmjs.com/ 2.检查安装成功的命令 node -v np ...

  4. cmd 命令提示符常用操作

    切换盘符: d: 进入子目录: cd web 返回上级目录: cd .. 查询子目录下所有文件:dir

  5. Software Engineering | Factory method pattern

    工厂对象通常包含一个或多个方法,用来创建这个工厂所能创建的各种类型的对象.这些方法可能接收参数,用来指定对象创建的方式,最后返回创建的对象. 有时,特定类型对象的控制过程比简单地创建一个对象更复杂.在 ...

  6. 【APIO2016】Gap

    题目描述 有 $N$ 个严格递增的非负整数 $a_1, a_2, \dots, a_N$($0 \leq a_1 < a_2 < \cdots < a_N \leq 10^{18}$ ...

  7. error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools":解决方案

    我是在安装scrapy时遇到这个问题的,安装其他组件也可能会遇到.但问题解决办法都是大致相同的. 以安装scrapy为例: 在pycharm中安装twisted时出现: error: Microsof ...

  8. Java加密技术(八)——数字证书

    原文:http://snowolf.iteye.com/blog/391931 请大家在阅读本篇内容时先阅读 Java加密技术(四),预先了解RSA加密算法. 在构建Java代码实现前,我们需要完成证 ...

  9. 移除array中重复的item

    //move the repeated item            NSInteger index = [orignalArray count] - 1;            for (id o ...

  10. [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!

    一.背景 最近的项目在用maven 进行install的时候,发现老师在控制台输出警告:[WARNING] Using platform encoding (UTF-8 actually) to co ...