Servlet基础01

得意处论地谈天,俱是水底捞月;拂意时吞冰啮雪,才为火内栽莲。

1、基础知识

1.1浏览器请求与服务器响应模型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-15Qugfvh-1579017493710)(1.PNG)]

  • HTTP是Web上客户端与服务器之间进行通信时所用的协议
  • 服务器使用HTTP向客户发送HTML

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uh8PZmRn-1579017493712)(2.PNG)]

这很重要,下面的字段是标准,所开发的接口都围绕着着写要素来展开,理解即可,尤其是一些重要的首部字段,决定这服务器与浏览器之间的交互方式与各自的动作!!!
请求流的关键要素

  • HTTP方法(要完成的动作)。
  • 要访问的页面(URL)。
  • 表单参数(如方法参数等)。

响应流的关键要素

  • 状态码(表示请求是否成功)
  • 内容类型(包括文本、图片、HTML等)。
  • 内容(具体的HTML、图片等)。

URL
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nOEVgQfT-1579017493713)(100.PNG)]

静态页面和动态页面

  • 静态页面:原封不动地呆在目录中。服务器找到静态页面,并把它原样传回给客户。每个客户看到的东西都一样。
  • Web服务器应用只提供静态页面,但是有一个辅助应用可以生成非静态的即时页面,而且这个辅助应用能与Web服务器通信。动态页面可以是一个编目、Web日志,甚至只是一个随机选择显示图片的页面.
    *

Eclipse中JavaWeb

目录结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h2MCWoWF-1579017493715)(4.PNG)]

2、Web应用体系

2.1、什么是容器

Servlet没有main方法。它们受控于另一个Java应用,这个Java应用称为容器

Tomcat就是这样一个容器。如果Web服务器应用得到一个指向某Servlet的请求(而不是其他请求,如请求一个普通的静态HTML页面),此时服务器不是把这个请求交给Servlet本身,而是交给部署该Servlet的容器。要由容器向Servlet提供HTTP请求和响应,而且要由容器调用Servlet的方法。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i8bX3I8x-1579017493717)(5.PNG)]

2.2容器能提供什么?

  • 通信支持:利用容器提供的方法,能够轻松的让Servlet与Web服务器对话。无需自己建立ServerSocket、监听端口、创建流等。容器知道自己与Web服务器之间的协议,所以你的Servlet不必担心Web服务器和自己Web代码之间的API。
  • 生命周期管理:容器控制着Servlet的生与死。它会负责加载类、实例化和初始化Servlet、调用Servlet方法,并使servlet实例能够被垃圾回收。有了容器的控制,你就不用太多的考虑资源管理
  • 多线程支持:容器会自动的为它接收的每个Servlet请求创建一个新的线程,针对客户的请求,如果servlet已经运行完响应的HTTP方法,这个线程就会结束(也就是会死掉)。这并不是说不用考虑线程安全性,还是会遇到同步的问题到 。
  • 声明方式实现安全:利用容器,可以使用XML部署描述来配置(和修改)安全性,而不必将其硬编码写到servlet(或其他)类代码中。 注解到底好不好
  • JSP支持

2.3 容器如何处理请求

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IYJtWZpc-1579017493718)(6.PNG)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dmYbIdi0-1579017493719)(7.PNG)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QW55Mcm5-1579017493720)(8.PNG)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kAjKjkWD-1579017493721)(9.PNG)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h2h3t8ZG-1579017493722)(10.PNG)]
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5AXa8NLB-1579017493723)(11.PNG)]](https://img-blog.csdnimg.cn/20200115000131376.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1pIT1VKSUFOX1RBTks=,size_16,color_FFFFFF,t_70)![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wR4aqnIn-1579017493724)(12.PNG)]](https://img-blog.csdnimg.cn/20200115000133154.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1pIT1VKSUFOX1RBTks=,size_16,color_FFFFFF,t_70)

2.4容器是怎样根据url找到servlet

使用部署描述文件将URL映射到Servlet
将Servlet部署到Web容器时,会创建一个相当简单的XML文档,这称为部署描述文件(DD),部署描述文件会告诉容器如何运行你的Servlet和JSP。尽管使用部署描述文件不只是为了映射Servlet名,最起码要知道,可以使用两个XML元素把URL映射到servlet,其中一个将客户知道的URL名映射到你自己的内部名,另一个元素把你自己的内部名映射到一个完全限定类名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值