Servlet的创建
1、实现 Servlet 接口
因为是实现 Servlet 接口,所以我们需要实现接口里的方法。
1 //Servlet的生命周期:从Servlet被创建到Servlet被销毁的过程 2 //一次创建,到处服务 3 //一个Servlet只会有一个对象,服务所有的请求 4 /* 5 * 1.实例化(使用构造方法创建对象) 6 * 2.初始化 执行init方法 7 * 3.服务 执行service方法 8 * 4.销毁 执行destroy方法 9 */ 10 public class ServletDemo1 implements Servlet { 11 12 //public ServletDemo1(){} 13 14 //生命周期方法:当Servlet第一次被创建对象时执行该方法,该方法在整个生命周期中只执行一次 15 public void init(ServletConfig arg0) throws ServletException { 16 System.out.println("=======init========="); 17 } 18 19 //生命周期方法:对客户端响应的方法,该方法会被执行多次,每次请求该servlet都会执行该方法 20 public void service(ServletRequest arg0, ServletResponse arg1) 21 throws ServletException, IOException { 22 System.out.println("hehe"); 23 24 } 25 26 //生命周期方法:当Servlet被销毁时执行该方法 27 public void destroy() { 28 System.out.println("******destroy**********"); 29 } 30 //当停止tomcat时也就销毁的servlet。 31 public ServletConfig getServletConfig() { 32 33 return null; 34 } 35 36 public String getServletInfo() { 37 38 return null; 39 } 40 }
2、继承 GenericServlet 类
它实现了 Servlet 接口除了 service 的方法,不过这种方法我们极少用。
1 public class ServletDemo2 extends GenericServlet { 2 3 @Override 4 public void service(ServletRequest arg0, ServletResponse arg1) 5 throws ServletException, IOException { 6 System.out.println("heihei"); 7 8 } 9 }
3、继承 HttpServlet 方法
1 import java.io.IOException; 2 3 import javax.servlet.ServletException; 4 import javax.servlet.http.HttpServlet; 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletResponse; 7 8 public class Servlet5 extends HttpServlet { 9 @Override 10 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 11 12 doPost(req, resp); 13 } 14 15 @Override 16 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 17 resp.getWriter().write("hello,servlet5..."); 18 }
Servlet配置
1、 传统web.xml文档中部署servlet
1 <servlet> 2 <servlet-name>LifeServlet</servlet-name>//创建的servlet名字 3 <servlet-class>servlet.LifeServlet</servlet-class>//完整的包名+类名 4 </servlet> 5 <servlet-mapping>//映射配置 6 <servlet-name>LifeServlet</servlet-name>//和上面的名字保持一致 7 <url-pattern>/LifeCycle</url-pattern>//servlet的映射路径 8 </servlet-mapping>
注意:如果有form表单和servlet有关联,<url-pattern>后面应填入与action参数相同,例如
<form action=”LifeCycle” method=”post”>
则<url-pattern>/LifeCycle</url-pattern>=
2、 注解方式部署servlet
1 @WebServlet("/LifeServlet")
2 public class LifeServlet extends HttpServlet{}
从浏览器发送请求时,会直接寻找@WebServlet后对应的url地址,调用并执行相应的servlet