1.利用socket获取HTTP协议字符串
操作系统管着这几层
操作系统管理的东西,真实的数据放在网卡当中,数据之间传输也是通过网卡传输的
网卡的来历:
如果只有两个计算机,只需要加一条电缆就行
因为本质也是电容信号;后来电脑多了,就出现了网卡,控制着网络设备的发送与接收,很显然,网卡属于物理硬件。
操作系统怎么操作网卡?
通过网卡驱动来进行管理的
socket和上述有什么关系?
socket用于应用层和操作系统如何通信,他作用于应用层与操作系统之间,socket的本质是 操作系统提供的程序员操作网络协议的接口
一个电脑发送一条信息给另一条电脑的流程:
应用层写一条信息,传给socket,socket传给操作系统,调用网络协议,在调用网卡驱动,传给网卡,最后通过网卡传给另一个电脑
Sokcet如何接收网络请求,样例代码:
/ 这段代码只能接收一个请求 / 需要开线程解决
ServerSocket主要用于监听端口
while循环在没有信息,没有死循环,处于阻塞状态,当数据来临结束阻塞状态
localhost代表ip地址
有a b c三个电脑,a b c 都有狠多软件,C中有qq,wx,tomcat,这些设备都能进行网络服务,当一个请求来的时候,数据根据ip地址找到访问方,在网卡接收之后,怎么知道给谁呢,这时候需要 发送方带上访问方的ip和端口号
模块一:监听状态
再根据浏览器请求,立用socket获取htttp协议字符串信息之后,需创建HTTPServeltRequest类,将http字符串进行拆分,将请求方式和请求地址封装到request对象当中
模块二:启动状态
启动tomcat,一旦启动tomcat,第一步通过工具类扫描固定文件夹下的文件路径获取类的全路径(与反射相关,扫描的就是webapp里的servelt)
第二步,利用反射获取自定义注解,@WebServlet,自己去写一个自定义注解
最后一步:
将访问路径作为key值,将通过类的全路径名获取到了反射对象设置为value值,放入到hasmap当中
tomcat
tomcat是如何运行的?
tomcat是servlet容器,servlet是javaweb一套工具
servlet有广义狭义之分
狭义上的servlet:servlet不断继承
Java的接口:接口是对行为的定义,可以把这种性为认定为一种方法。
servlet底层【定义着servlet的生命周期】拥有五个接口,分别是
init:初始化
getServletConfig():获取servlet的配置信息
service(ServletRequest,ServletReponse):服务:处理请求
getServletInfo():获取Servlet日志
destroy():销毁
对上了
广义上的servlet就是用户自定义的servlet
一个注解类的关键字是@interface,注解类中写的是变量,直接规定变量就行,default是默认值
元注解:@Target 该注解的作用是自定义注解类应该使用在什么地方,描述使用范围
@Retention--》标明我们自定义注解什么时候有效,一般用来描述生命周期
source:源文件保留 .java文件
class:编译期间保留 .java---》.class 成为class就G了!
runtime:运行期间保留