博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Servlets & JSP 学习笔记002
阅读量:5021 次
发布时间:2019-06-12

本文共 1502 字,大约阅读时间需要 5 分钟。

Web应用体系结构

什么是容器?

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

 

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

 

我的理解:Tomcat就是这样的一个Web容器。


 

容器能提供什么?

 

 

  • 通信支持
  • 声明周期管理
  • 多线程支持
  • 声明方式实现安全
  • JSP支持

 


 

 

容器如何处理请求:

  1. 用户点击一个连接,指向一个servlet而不是一个静态一面。
  2. 容器“看出来”这个请求要的是一个servlet,所以容器创建两个对象:(1)HttpServletResponse;(2)HttpServletRequest。
  3. 容器根据请求中的URL找到正确的servlet,为这个请求创建或分配一个线程,并把请求和响应对象传递给这个servlet。
  4. 容器调用servlet的service()方法。根据请求的不同类型,service()方法会调用doGet()或doPost()方法。
  5. doGet()方法生成动态页面,并把这个页面“填入”响应对象。
  6. 线程结束,容器把响应对象转换为一个HTTP响应,把它发回给客户,然后删除请求和响应对象。


 

代码里有什么:(servlet何以成为一个servlet,人为什么成为人)

 

不想贴代码,贴图吧。si mi ma sen

 

 

我们写的serlvet都是继承于HttpServlet类,一般写的时候都要覆盖doGet()和doPost()方法。如果想看HttpServlet的源码,可以到官网上下载:官网首页->左边Download tomcat8->看下面的图

 


 

 

一个servlet可以有3个名字:

书上说了一大堆,看不懂。but,书上总结了:

  1. 客户知道的URL
  2. 部署人员知道的秘密内部名
  3. 实际的文件名

部署一个servlet的图片:上一节有讲到那些xml标签,不会的可以翻一下笔记。


 

 

Servlet&JSP中的MVC:

 

大佬的传送门:

 

采用MVC,不仅要求业务逻辑与表示分离……实际上,业务逻辑甚至根本不知道有表示存在。

 Servlet&JSP世界中的MVC:


 

 J2EE如何集成这一切:

J2EE应用服务器包括一个Web容器和一个EJB容器。

Tomcat是一个Web容器,而不是一个完整的J2EE应用服务器。

J2EE服务器包括:Servlet规范、JSP规范、EJB规范。

 

Q:那Tomcat是一个独立的Web容器啰……这是不是说也存在独立的EJB容器呢?

A:EJB容器都作为完整J2EE服务器的一部分,但独立的web容器依然存在(Tomcat)。独立的Web容器通常配置为一个与HTTP Web服务器(Apache)协作,不过Tomcat容器本身就能作为一个基本的HTTP服务器。但是在HTTP服务器功能方面,Tomcat没有Apache那么健壮,所以最常见的非EJB Web应用通常会结合使用Apache和Tomcat,Apache作为HTTP Web服务器,Tomcat作为Web容器。

所以在看书的时候遇到Web服务器(HTTP服务器)就不用管了,因为Tomcat里面有一个小的HTTP服务器。我是这样理解的。

转载于:https://www.cnblogs.com/zuosy/p/7623279.html

你可能感兴趣的文章
union和union all
查看>>
Github 开源:使用控制器操作 WinForm/WPF 控件( Sheng.Winform.Controls.Controller)
查看>>
PMD使用提醒
查看>>
Codeforces 887D Ratings and Reality Shows
查看>>
论文《A Generative Entity-Mention Model for Linking Entities with Knowledge Base》
查看>>
CentOS 6.7编译安装PHP 5.6
查看>>
Linux记录-salt分析
查看>>
Android Studio默认快捷键
查看>>
发布开源库到JCenter所遇到的一些问题记录
查看>>
第七周作业
查看>>
函数式编程与参数
查看>>
flush caches
查看>>
SSAS使用MDX生成脱机的多维数据集CUB文件
查看>>
ACM_hdu1102最小生成树练习
查看>>
MyBatis源码分析(一)--SqlSessionFactory的生成
查看>>
android中ListView点击和里边按钮或ImageView点击不能同时生效问题解决
查看>>
CTF常用工具之汇总
查看>>
java的面向对象 (2013-09-30-163写的日志迁移
查看>>
HDU 2191 【多重背包】
查看>>
51nod 1433 0和5【数论/九余定理】
查看>>