目录
2.3 测试
三、其它知识
本章先不调用servlet的封装直接使用servlet接口实现,看一下复杂度
一、使用serlvet接口编写servlet
在前一章《hualinux servlet 2.6: IDEA 2020.1 建立简单的servlet》所建立的项目基础上,直接使用src右击新建立servlet,使用java继承servlet接口的方式。
在建立接口之前再看一下javaEE 8 API说明文档,找到servlet,看一下使用说明,如下图所示:
因为是接口,得知有5个方法是必须继承的
二、编写实现代码
2.1 建立java类继承servlet
src-->T1.java,鼠标点一下Servlet,按“Alt+Enter”
这样会自动弹出要继承的方法,继承接口的话,接口中所有方法得实现
上面有5个方法,这也与EE中的API文档一致,在自动生成的代码中,每个方法都添加输出并添加一个无参的构造函数
2.2 在web.xml注册servlet做映射
要使用servetl则需要web.xml注册
2.3 测试
运行tomcat,并在弹出的浏览器尾部添加t1,效果如下:
看到空白页之后,再看IDE控制台如下:
再刷新一下,发现多了一个service方法...
从上面看出destroy()方法没有调用,点左边红色方块停止按钮
,则destroy会被调用
三、其它知识
3.1 servlet的生命周期
Serv1et生命周期的方法:以下方法都是由Serlvet容器负责调用。
1).构造器:只被调用一次。只有第一次请求Servlet时,创建Servlet的实例。调用构造器.
这说明Serlvet的单实例的!
2). init 方法:只被调用一 次。在创建好实例后立即被调用。用于初始化当前Servlet.
3). service: 被多次调用,每次请求都会调用service 方法。实际用于响应请求的。
4). destroy: 只被调用一 -次。在当前Serv1et所在的WEB应用被卸载前调用。用于释放当前Serv1et所占用的资源。
3.2 load-on-startup参数
1).配置在 servlet节点中:
<servlet> <!-- Servlet注册的名字--> <servlet- name> secondServ1et</ servlet - name> <!-. Servlet的全类名--> <servlet-class>com. atguigu. javaweb. SecondServ1et</servlet-class> <!--可以指定Servlet被创建的时机--> <load- on-startup>2</load-on-startup> </serv1et>
2). load-on-startup: 可以指定 Serlvet被创建的时机。若为负数,则在第- 次请求时被创建.若为日或正数,则在当前WEB应用被Serlvet容器加载时创建实例,且数组越小越早被创建。
3.3 关于servlet-mapping
1).同一个Servlet可以被映射到多个URL上。 即多个<servlet- mapping>元素的<servlet-name>子元素的设置值可以是同一个
Serv1et的注量名。
2)。在Servlet映射到的URL中也可以使用 *通配符,但是只能有两种固定的格式。
- -种格式是“.扩属名”。另一种格式是以正科杠(/)开失并以“/*"结尾.<serv1et- mapping> <serv1et- name>secondServ1et</serv1et -name> <ur1- pattern>/*</url-pattern> </serv1et- mapping> OR <serv1et -mapping> <serv1et - name> secondServlet</ servlet - name> <ur1- pattern>* .do</ur1- pattern> </serv1et -mapping> 注意:以下的既带/又帚扩展名的不合法。 <servlet-mapping> <servlet-name> secondServ1et</serv1et -name> <ur1-pattern>/* .action</ur1- pattern> </servlet- mapping>