1、第一种实现方式
1.实现Servlet接口
2.重写这个接口的五个方法
3.给当前类设置URL路径(XML方式)
public class FirstServlet implements Servlet {
private ServletConfig config;
// 初始化方法 会在Servlet创建时调用,并且只会调用一次
// 默认情况下,在第一次请求时创建当前Servlet
public void init(ServletConfig config) throws ServletException {
this.config = config; // 将局部变量的值赋予给成员变量
System.out.println("我是FirstServlet的初始化方法!");
}
// 获取到config对象
public ServletConfig getServletConfig() {
return config;
}
// 服务方法 最重要的方法 每一次请求访问这个方法
public void service(ServletRequest req, ServletResponse resp)
throws ServletException, IOException {
System.out.println("我是FirstServlet的service方法!");
}
// 返回当前Servlet的信息
public String getServletInfo() {
return "我是FirstServlet";
}
// 销毁方法,会在Servlet被销毁时执行,并且只执行一次 服务器关闭时
public void destroy() {
System.out.println("FirstServlet被销毁了!");
}
}
设置xml的路径:
<!--设置Servlet的URL路径-->
<servlet>
<servlet-name>first</servlet-name>
<servlet-class>pack0410.servlet.FirstServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>first</servlet-name>
<!--/代表根目录 webapp文件就是根目录-->
<url-pattern>/a</url-pattern>
</servlet-mapping>
2、第二种实现方式
1.继承GenericServlet抽象类
2.重写service方法
3.在web.xml中注册当前Servlet
public class SecondServlet extends GenericServlet {
@Override
public void service(ServletRequest req, ServletResponse resp)
throws ServletException, IOException {
System.out.println("我是SecondServlet的服务方法!");
}
}
设置xml的路径:
<servlet>
<servlet-name>second</servlet-name>
<servlet-class>pack0410.servlet.SecondServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>second</servlet-name>
<url-pattern>/b</url-pattern>
</servlet-mapping>
2、第三种实现方式(最常用的实现方式)
1.继承HttpServlet,只针对于Http协议
2.重写doGet和doPost请求
3.使用注解的方式来注册Servlet(注解和xml方式可以互换)
@WebServlet("/c")//注解
public class ThirdServlet extends HttpServlet {
// 处理所有的get请求
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("我是ThirdServlet的get请求");
}
// 处理所有的post请求
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("我是ThirdServlet的post请求");
}
}