JavaWeb02_servlet和web容器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb02_servlet和web容器相关的知识,希望对你有一定的参考价值。

JavaWeb02_servlet和web容器

OSI参考模型

应用层、表示层、会话层(TCP/IP:应用层——即程序,http层)
传输层(TCP/IP:传输层——TCP/UDP协议)
网络层(TCP/IP:网络层——IP,封装)
数据链路层、物理层(TCP/IP:物理层——最底层,网络接口,以太网,ATM,令牌环等)

客户端

主动 创建一个socket();
连接到指定计算机端口 connect();
写入信息到socket() send();
socket()关闭

服务器

被动 创建一个socket();
绑定端口号和监听端口
接收来自用户的请求
从socket取出字符
关闭连接

http

超文本传输协议
计算机网络通信的规则 
端口:80
是连接客户端和服务器的协议(遵循TCP/IP模型)
http处于应用层,应用程序协议
特点:① 无状态协议(不会建立持久连接,通信结束后断开)
② 遵循请求响应模型:所有的通信都在请求响应模型

http请求:

请求行:请求的方法,http版本,请求服务器的地址等
请求头:http头传递的元信息
空行:发送回车符合退行,用于分割请求头和消息体的内容
消息体:post提交将客户端传输的数据放在消息体里面,浏览器看不到内容

http响应

状态行:http版本和状态码(例如200、404、505等)
响应头:内容的描述,长度,以及服务器的一些信息
空行:发送回车符和退行,分割响应头和消息体
消息体:响应的内容

http执行的流程

1.客户端和服务器建立连接
2.客户端发送请求
3.服务器响应信息
4.服务器关闭连接,客户端解析响应内容

servlet和web容器

功能:用来解决CGI多进程的问题(用户第一次请求某个servlet,服务器产生一个进程,以后每次访问同一个servlet都是产生新的线程)

servlet四个特点:
1.常规的java代码(新的API)
2.不属于J2SE,属于单独的规范
3.对标准类(HttpServlet)进行了扩展
4.没有main()方法(容器来调用)

servlet的任务:
1.读取显式、隐式数据
2.生成结果
3.发送数据

什么是Web容器:
简单的说,web容器就是负责管理和运行servlet

容器和servlet之间的关系

1.通信支持:利用容器提供的方法,可以轻松让servlet和容器进行沟通,不需要建立server-socket、监听端口、流等等,只需要servlet的业务逻辑
2.生命周期管理:servlet都有生命周期,容器会自动加载类、调用方法、销毁servlet
3.多线程:容器会为每一个请求的用户创建一个新的java线程,运行完了http请求响应,线程就会自动销毁
4.jsp支持:容器自动将jsp翻译成java代码
5.处理安全性:javaweb程序需要实现安全性控制,限制用户可以访问到的资源

servlet规范

容器/服务器:
1.TOMCAT:免费,程序较小,易于操作和部署,开源
2.jboss:EJB的容器,也可以作为servlet容器
3.weblogic:大型系统或分布式网站
4.IIS:微软推出的一款服务器,可以直接用来运行.net程序
5.apache:apache公司除了TOMCAT又另外推出的一款付费服务器

tomcat的目录结构

bin:存放脚本文件,包括启动、关闭tomcat
conf:存放tomcat各种配置文件
lib:可供运行的jar包
logs:tomcat启动、关闭、运行的日志文件
temp:临时文件
webapps:存放开发的应用程序
work tomcat:工作目录,jsp翻译后的代码

JavaWen工程目录

工程名字
src:存放代码
webroot:META-INF(所有内容客户端无法访问)、WEB-INF(lib:jar包;web.xml:工程配置文件;classes:编译后的java代码)

总结:

1.http协议是计算机网络通讯的规则
2.web服务器不能支持服务器端动态网页
3.CGI和servlet都是web服务器辅助应用的实现
4.CGI消耗内存(多进程)
5.servlet和容器配合处理请求和响应
6.容器负责支持servlet,servlet负责处理业务流程
7.什么是servlet?servlet是运行在web服务器或应用服务器上的java程序,在web上创建动态内容的有效而强大的解决方案!!

























































以上是关于JavaWeb02_servlet和web容器的主要内容,如果未能解决你的问题,请参考以下文章

javaWeb_Servlet_Servlet基础_Servlet概述以及HelloWorld

javaweb01

WEB环境搭建

JavaWeb chapter 2 Servlet

java web 九大内置对象和四个作用域之间的关系是啥?

JavaWeb学习—Servlet