知识要点:

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

最新文章

  1. SQL Server 致程序员(容易忽略的错误)
  2. 8-07CONTIUE 、 BREAK、RETURN
  3. yum:在Red Hat和Fedora中使用
  4. PowerDesginer 生成的Oracle 11g 组合触发器代码编译错误(29): PLS-00103
  5. ACM: NBUT 1646 Internet of Lights and Switches - 二进制+map+vector
  6. HTTP Status 500 - An exception occurred processing at line 35
  7. [大牛翻译系列]Hadoop 翻译文章索引
  8. Java HexString
  9. 『重构--改善既有代码的设计』读书笔记----Inline Method
  10. myql 注意事项
  11. hdu4223(dp)
  12. !Web云笔记--HTML基础
  13. RocketMQ-quickstart(批量消费问题)
  14. Java通过NIO实现快速文件拷贝的代码
  15. PDF.js实现个性化PDF渲染(文本复制)
  16. laravel框架生產vender文件夹
  17. eBGP&iBGP 总结
  18. C中的volatile用法[转载]
  19. c需要注意的细节
  20. Qt学习 之 QWebView

热门文章

  1. P4551 最长异或路径 (01字典树,异或前缀和)
  2. 【POJ1276】Cash Machine(多重背包单调队列优化)
  3. Django时区配置:有次发现缓存的时间总是有问题,原来是时区配置需要改
  4. jq ajax之beforesend(XHR)
  5. p标签注意事项
  6. 使用KNN对iris数据集进行分类——python
  7. HDU 5972 Regular Number(字符串shift - and算法)
  8. 平衡树与可持久化treap
  9. ios 使用keychain具体方法
  10. Service 层实现