域对象
修改配置文件(web.xml)后需要重启
servlet介绍:
(151条消息) JavaWeb——Servlet(全网最详细教程包括Servlet源码分析)_刘扬俊的博客-CSDN博客_servlet
配置servlet:
(151条消息) web.xml中servlet配置及其含义_丑八怪28的博客-CSDN博客_web.xml中servlet配置及其含义
init( ),service( ),destroy( )是Servlet生命周期的方法。
1.init( ), 当Servlet第一次被请求时,Servlet容器就会开始调用这个方法来初始化一个Servlet对象出来,但是这个方法在后续请求中不会在被Servlet容器调用,就像人只能“出生”一次一样。我们可以利用init( )方法来执行相应的初始化工作。调用这个方法时,Servlet容器会传入一个ServletConfig对象进来从而对Servlet对象进行初始化。
2.service( )方法,每当请求Servlet时,Servlet容器就会调用这个方法。就像人一样,需要不停的接受老板的指令并且“工作”。第一次请求时,Servlet容器会先调用init( )方法初始化一个Servlet对象出来,然后会调用它的service( )方法进行工作,若在后续有多次请求,Servlet容器会不停调用service方法。
3.destory, 当要销毁Servlet时,Servlet容器就会调用这个方法,就如人一样,到时期了就得死亡。在卸载应用程序或者关闭Servlet容器时,就会发生这种情况,一般在这个方法中会写一些清除代码。
下面使用一个程序进行对servlet生命周期的验证,其中需要进行servlet类的定义和对应xml文件中的配置,在service方法中设置一个计数器i,从而进行对servlet服务调用的计数工作。
- package com.edu;
-
- import java.io.IOException;
-
- import javax.servlet.Servlet;
- import javax.servlet.ServletConfig;
- import javax.servlet.ServletException;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
-
- public class Servlet03 implements Servlet{
- int i=1;
-
- @Override
- public void destroy() {
- // TODO Auto-generated method stub
- System.out.println("Servlet03 is being destroyed.");
- }
-
- @Override
- public ServletConfig getServletConfig() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public String getServletInfo() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public void init(ServletConfig config) throws ServletException {
- // TODO Auto-generated method stub
- System.out.println("Servlet03 is inited.");
- }
-
- @Override
- public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
- // TODO Auto-generated method stub
- System.out.println("Servlet03 is serving at."+ (i++) +"times");
-
- }
-
- }
在配置Servlet时,需要配置以下两点:
(1)
(2)
注意:这里的映射路径一定要写成/servlet,不能是servlet,一定要带斜杠 / 表明映射的地址!
- "1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
- <display-name>myweb01display-name>
- <welcome-file-list>
- <welcome-file>index.htmlwelcome-file>
- <welcome-file>index.htmwelcome-file>
- <welcome-file>index.jspwelcome-file>
- <welcome-file>default.htmlwelcome-file>
- <welcome-file>default.htmwelcome-file>
- <welcome-file>default.jspwelcome-file>
- welcome-file-list>
-
- <servlet>
- <servlet-name>Servlet03servlet-name>
- <servlet-class>com.edu.Servlet03servlet-class>
- servlet>
-
- <servlet-mapping>
- <servlet-name>Servlet03servlet-name>
- <url-pattern>/Servlet03url-pattern>
- servlet-mapping>
-
- web-app>
配置结束后启动servlet,可以发现控制台中servlet被初始化了,多刷新几次后可以发现servlet不断的在进行服务。
在servers窗口手动关闭Tomcat服务器后,可以发现调用了destroy方法,servlet被销毁。至此一个生命周期结束。
servlet有两种创建方式,一种是创建dynamic web project时版本号选2.5,此时需要在web.xml文件中进行配置,其次,在创建项目时选择4.0的版本号,则可以通过注解直接引入servlet,而无需再进入配置文件中进行配置。