Servlet详解
1.servlet简单介绍
servlet是javaweb三大组件之一,他与filter ,listener 共同组成了javaweb的三大组件,Servlet(Server Applet)是Java Servlet的简称,解释为运行在服务器端的java小程序,
作用:用来接收客户端的请求,处理业务逻辑,响应动态内容
2.使用
创建一个java类,实现Servlet接口,重写抽象方法
1 public class MyServlet implements Servlet { 2 /** 3 * Servlet初始化的时候执行 4 */ 5 @Override 6 public void init(ServletConfig config) throws ServletException { 7 // TODO Auto-generated method stub 8 9 } 10 /** 11 *请求来的时候执行 12 */ 13 @Override 14 public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { 15 // TODO Auto-generated method stub 16 17 } 18 /** 19 * Servlet销毁的时候执行 20 */ 21 @Override 22 public void destroy() { 23 // TODO Auto-generated method stub 24 25 } 26 27 @Override 28 public String getServletInfo() { 29 // TODO Auto-generated method stub 30 return null; 31 } 32 @Override 33 public ServletConfig getServletConfig() { 34 // TODO Auto-generated method stub 35 return null; 36 } 37 38 }
3.Servlet的生命周期(Servlet对象是单例的)
创建:默认情况下,当请求来的时候,服务器会检查该类的对象有没有被创建,如果没有创建,服务器会反射创建该类的对象,并且调用init方法完成初始化的操作,然后调用serivce 方法完成相应的业务逻辑
服务:请求来一次就服务一次
销毁:当服务器正常关闭或者项目卸载的时候会销毁该Serlvet对象
1 /** 2 * Servlet初始化的时候执行 3 * 执行时机:默认情况下,当你去请求服务器的时候,服务器会检查有没有该Servlet对象, 4 * 如果没有,就会反射创建该类对象,并执行init方法完成初始化操作,紧接着调用 5 * service方法完成服务 6 * 执行次数:1次 7 */ 8 @Override 9 public void init(ServletConfig config) throws ServletException { 10 // TODO Auto-generated method stub 11 12 } 13 /** 14 *服务: 15 *执行时机:请求一次执行一次 16 *执行次数:多次 17 * 18 */ 19 @Override 20 public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { 21 // TODO Auto-generated method stub 22 23 } 24 /** 25 *销毁 26 *执行时机:服务器关闭或者是项目卸载的时候,会调用该方法 27 *执行次数:1次 28 */ 29 @Override 30 public void destroy() { 31 // TODO Auto-generated method stub 32 33 }
4.Servlet在web.xml中的配置详解
图解配置文件执行流程
url-pattern的写法
1.精确匹配写法 必须/打头 后面自定义 /aa/bb /aa/ccc/dddd
2.目录匹配写法 必须/打头 中间自定义 以/*结尾 /aa/* /aaa/dd/*
3.后缀名匹配写法 必须*.打头 *.jsp *.action *.do
load-on-startup配置项
修改servlet的默认初始化时机 servlet将会在服务器启动的完成加载
<load-on-startup>正整数</load-on-startup>
正整数:如果值越小优先级越高
defaultservlet:
路径 /
匹配上所有的资源 但是优先级最低
你不管的他管
你管不了的它管
5.Servlet运行流程