我是靠谱客的博主 直率画笔,最近开发中收集的这篇文章主要介绍Servlet的学习前言一、Sevrlet是什么?二、执行原理三、Servlet的生命周期四、Servlet3.0 注解配置总结,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 前言
- 一、Sevrlet是什么?
- 二、执行原理
- 三、Servlet的生命周期
- 1、被创建
- 2、提供服务
- 3、被销毁
- 四、Servlet3.0 注解配置
- 1、好处
- 2、步骤
- 3.IDEA和Tomcat的配置
- 4.Servlet的体系结构
- 总结
前言
Servlet是后端与前端进行交互的关键性接口,只有使用了Servlet才能让Java类被Tomcat识别。
一、Sevrlet是什么?
server applet :运行在服务器端的小程序,也可以看成是一个接口,它定义了java类被浏览器访问到(tomcat识别)的规则。
二、执行原理
- 当服务器接收到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
- 查找web.xml文件,是否有对应的标签体内容
- 如果有,则在找到对应的全类名
- tomcat会将字节码文件加载进内存,并且创建其对象
- 调用其方法
三、Servlet的生命周期
1、被创建
- 执行init方法,只执行一次
- Servlet什么时候被创建:默认情况下,第一次被访问时,Servlet被创建
- 可以配置执行Servlet的时机
- 在 标签下 : 1.第一次被访问时,创建 load-on-startup>值/load-on-startup>值为负数。2.在服务器启动时,创建
load-on-startup> 值/load-on-startup>值为正数或0 - Servlet的init方法,只执行一次,说明一个Servlet在内存中只有一个对象,Servlet是单例(多个用户同时访问时,可能存在线程安全问题)
解决办法:尽量不要在Servlet中定义成员变量。即使定义了成员变量,也不要对其修改值
2、提供服务
- 执行service方法,执行多次
- 每次访问Servlet时,Service方法都会被调用一次
3、被销毁
- 执行destroy方法,执行一次
- Servlet被销毁时执行。服务器正常关闭时,Servlet被摧毁(暴力关闭,不执行)
- destroy方法在Servlet被关闭之前执行,一般用于释放资源
四、Servlet3.0 注解配置
1、好处
支持注解配置,可以不需要web.xml了。
2、步骤
- 创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web.xml
- 定义一个类,实现Servlet接口
- 复写方法
- 在类上使用@webServlet:@WebServlet(“资源路径”)
public @interface WebServlet {
String name() default "";
String[] value() default {};
String[] urlPatterns() default {};
int loadOnStartup() default -1;
WebInitParam[] initParams() default {};
boolean asyncSupported() default false;
String smallIcon() default "";
String largeIcon() default "";
String description() default "";
String displayName() default "";
3.IDEA和Tomcat的配置
IDEA为每一个tomcat部署的项目单独部署建立一个配置文件
- 查看控制台log:Using CATALINA_BASE: “C:UserszhangAppDataLocalJetBrainsIntelliJIdea2020.1tomcatTomcat_8_5_31_day13_tomcat_2”
- 工作空间项目 和 tomcat部署的web项目
2.1:tomcat真正访问的是"tomcat部署的web项目","tomcat部署的web项目"对应着"工作空间项目"的web目录下的所有资源
2.2:WEB-INF目录下的资源不能被浏览器直接访问
2.3:断点调试
4.Servlet的体系结构
Servlet----接口
GenericServlet-----抽象类
HttpServlet-------抽象类
对HTTP协议的封装,简化操作
步骤:
定义类继承HttpServlet
复写doGet/doPost方法
GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法做为抽象方法(将来定义Servlet类时,可以继承GenericServlet,实现service()方法即可)
总结
Servlet是对前后端交互真正的连接点,构成真正的应用开发过程中我们需要完成的功能,它是非常重要的尤其是其中是使用。
最后
以上就是直率画笔为你收集整理的Servlet的学习前言一、Sevrlet是什么?二、执行原理三、Servlet的生命周期四、Servlet3.0 注解配置总结的全部内容,希望文章能够帮你解决Servlet的学习前言一、Sevrlet是什么?二、执行原理三、Servlet的生命周期四、Servlet3.0 注解配置总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复