Tomcat
创始人
2024-03-19 16:26:18
0

用tomcat启动网站,实际就是将网站与tomcat合成一个项目。servlet没有主方法,借助tomcat的主方法来启动,

tomcat的运转流程

tomcat分成了两个阶段,分别是启动阶段和接收转发阶段

加载servlet信息:定义一个hashmap结构的容器,通过工具类扫描扫描webapp目录下的所有子目录和子文件,拿到所有的java类Class类信息之后会 利用class.forName()方法去for循环遍历每一个Class类信息,然后从Class类信息里去获取注解信息,拿到注解信息之后看哪些java的类信息里面有@WebServlet注解,挑选出来,通过newInstance() 生成类的实例。for循环里需要判断 是文件夹就递归,不是就判断是不是class文件,如果是class文件就放到定义的集合容器中去,key值是类对象,value是路径信息

监听请求端口:tomcat的主方法定义socket对象监听端口,我读源码的时候发现 这里的socket 和之前学的不一样,后来发现这里引用的是netty框架中的socket(还不会)。当用户请求过来之后创建线程将用户的信息交给读取用户请求信息的方法,然后继续阻塞监听;当tomcat 借助socket拿到http请求后并不是立即开启线程处理的,而是把它放入线程池中

读取用户请求信息的方法创建输入流对请求信息进行解析,把bit流转为字符串,判断是不是空请求,不是空请求的话获取请求里的url路径和访问方法;

根据url判断有没有访问数据、是静态资源还是动态资源,如果是静态资源就返回给response静态资源,如果是动态资源就调用分发器,分发器方法从hashmap容器里面找有没有对应的keyvalue值,如果没有就返回404页面,如果有通过反射的方式创建HttpServlet类型的servlet对象,然后调用service方法,获取到request里面的请求方式,判断是doget还是dopost,然后调用给各自的方法;

5.启动tomcat是如何将自定义的servlet加载到servlet容器当中的?

通过工具类扫描固定文件夹下的文件路径获取类的全路径名,就是扫描指定文件夹,是文件夹就递归,不是就判断是不是class文件,如果是class文件就放到定义的集合容器中去,这里利用这些绝对路径和java的反射机制得到他们的类对象;

6.自定义注解和元注解

自定义的注解@WebServlet是用在自定义的servlet上表示访问路径和名字,自定义注解是通过元注解来定义的;

@Target:用于描述注解的使用范围(被描述的注解可以用在什么地方),这里定义了用在类上;

@Retention:表示需要在什么级别保存该注释信息,用于描述注解的生命周期(SOURCE < CLASS < RUNTIM (12.120, -0.020, -0.16%)E),通常都是定义在运行(RUNTIME) 时;

现在知道了请求是get方式,那么请问怎么才能访问到MyServlet当中的doget方法的?

通过输入输出流判断并调用分发器,分发器从hashmap容器中匹配请求地址和servlet类对象,通过反射的方式创建HttpServlet类型的servlet对象并调用service方法,service方法通过request获取到是get请求,然后调用doget方法;

相关内容

热门资讯

南充内,那些职业学校好 南充内,那些职业学校好南充职业技术学院,这是南充最好的技术类专科学校了,综合性很高,名声不错,条件也...
送妈妈手镯的寓意是什么 送妈妈手镯的寓意是什么送妈妈手镯寓意吉祥和健康,因为我国古代手镯的设计的主题多为吉祥、安康。此外送妈...
小纸筒可以做什么手工 小纸筒可以做什么手工纸筒可以做的装饰如下所示:(1)纸筒墙饰:首先将空心纸筒裁出相同长度的圆弧形,然...
为什么我的手是断掌,生下来就是... 为什么我的手是断掌,生下来就是断掌,就是手心一条直线,在左手,右手没有,这是为什么?没事,很正常我也...
什么是断掌,我的右手是一条横线... 什么是断掌,我的右手是一条横线,左手中间有一条线断开了,还有就是断掌的男生多吗?请准确点回答,准确了...
奶块如何挂机杀动物? 奶块如何挂机杀动物?你好,朋友哪块儿挂机是杀死不了动物的,这个你可以选择上线,自己手动刷怪就可以了,...
禁止加沙沿海地区捕鱼及出海行为... 当地时间12日,以色列国防军阿拉伯语发言人阿维哈伊·阿德雷伊在其个人社交媒体发文称,以军已对加沙地带...
「出海一哥」还能突围吗 原标题:「出海一哥」还能突围吗 来源:Tech星球6月初,一个“多所高校禁用罗马仕充电宝”话题...
为什么明代小说家生平不详 为什么明代小说家生平不详因为古代书籍保存不易。一方面小说家没有地位。另一方面则是古代书籍保存不易,信...
浙江通报:曾某不符合招聘条件,... 澎湃新闻记者 朱敏骏7月11日17时25分,浙江省体育局就“招聘足球教练要求博士学历”一事进行情况通...