开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第六天,点击查看活动详情
servlet
概念: 运行在服务端的程序,是一个接口,定义了java类被浏览器访问到(tomcat识别)的规则
tomcat会读取web.xml文件中的配置
创建一个web项目
目录说明:
1.src:自动编译.java文件的目录
-
依赖的jdk版本
-
依赖的tomcat版本
-
build: 用来存放编译后的项目
-
web
META-INF:是存放工程自身相关的一些信息,元文件信息,通常由开发工具和环境自动生成。
MANIFEST.MF:配置清单文件
WEB-INF:
lib:用来存放依赖的第三方jar包
web.xml:web工程的配置文件,完成用户请求的逻辑名称到真正的servlet类的映射
导入tomcat的servlet-api包
实现servlet接口
配置web.xml
<servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>com.web.test.MyServelt</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/firstServlet</url-pattern>
</servlet-mapping>
servlet执行原理
1.当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的servelt的资源路径
2.查找web.xml文件,判断是否否有对应的<ur1-pattern>标签体内容。
3.如果有,则在找到对应的<serv1et-class>全类名
4.tomcat会将字节码文件加进内存,并且创建其对象
5.调用其方法
servlet生命周期
1.被创建:执init方法,只执行一次
Servlet什么时候被创建?
默认情况下,第一次被访问时, Servlet被创建
可以配置执行 Servlet的创建时机,在(这个标签内使用)
第一次被访问时,创建
的值为负数
在服务器后动时,创建
的值为0或正整数
注意点:
init只执行一次,说明servlet是一个单例对象。
2.提供服务:执行 service方法,执行多次
每次访问servlet时,service都会被调用一次
3.被销毁:执行 destroy方法,只执行一次
只有服务器正常关闭时,才会执行这个destroy方法。
destroy方法在servlet被销毁之前执行,一般用于释放资源
servlet注解
支持注解配置,可以不需要配置web.xml了。
@WebServlet("/资源路径");
如果注解只有一个属性,那么肯定是赋值给该属性。
如果注解有多个属性,而且前提是这多个属性都有默认值,那么你不写注解名赋值,会赋值给名字为“value”这属性。
如果注解有多个属性,其中有没有设置默认值的属性,那么当你不写属性名进行赋值的时候,是会报错的。