servlet生命周期方法:
1) 构造器:只被调用一测次,只有第一次请求servlet时创建servlet的实例,调用构造器,这说明servlet是单例的。
2) init方法: 只被调用一次,在创建好实例后立即被调用,用于初始化当前servlet。
3)service: 被调用多次,每次请求都会调用service方法,实际用于响应请求的。
4)destroy : 只被调用一次,在当前servlet所在WEB应用被卸载前调用,用于释放当前servlet所占用的资源。
例:
public class HelloServlet implements Servlet {
@Override
public void destroy() {
System.out.println("destroy....");
}
@Override
public ServletConfig getServletConfig() {
System.out.println("servletConfig.....");
return null;
}
@Override
public String getServletInfo() {
System.out.println("servletInfo......");
return null;
}
@Override
public void init(ServletConfig arg0) throws ServletException {
System.out.println("init......");
}
@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("service...");
}
public HelloServlet() {
super();
System.out.println("gouzaohanshu ....");
}
}
servlet的配置与映射,一个servlet可以有多个映射即可以有多个url-pattern。
<servlet-class> 全类名 </servlet-class>
<url-pattern>/h</url-pattern> / 表示根目录 如 http://localhost:8080/servlet/
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>com.gekan.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/h</url-pattern>
</servlet-mapping>
load-on-startup :可以指定servlet被创建的时机,若为负数,则在第一次请求时被创建,若为0或正数,则在当前WEB应用被servlet容器加载时创建实例,且数组越小越早被创建。
servlet映射到的URL中也可以使用通配符,但只有两种固定的格式 ——> ① “*.扩展名” ②“/*”