JavaWeb|JavaWeb之Servlet核心技术

一、Servlet的基本概念

  • Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是Java语言编写的服务器端程序,换句话说,Servlet就是运行在服务器上的Java类。
  • Servlet用来完成B/S架构下客户端请求的响应处理,也就是交互式地浏览和生成数据,生成动态Web内容。
二、Servlet的编程步骤
【JavaWeb|JavaWeb之Servlet核心技术】1.建立一个Java Web Application项目并配置Tomcat服务器。
2.自定义类实现Servlet接口或者继承GenericServlet抽象类和HttpServlet抽象类,并重写service()方法。
3.将自定义类的信息配置到web.xml文件并启动项目。配置方式如下
>>ServletDemo01>cn.xuguowen.servlet.ServletDemo01 >>ServletDemo01/ServletDemo01

  • 在浏览器上访问的方式是:
http://localhost:8080/工程路径/url-pattern的内容

三、自定义类实现Servlet接口
1.自定义ServletDemo01类实现Servlet接口,并重写接口中的所有抽象方法
public class ServletDemo01 implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException {}@Override public ServletConfig getServletConfig() { return null; }@Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("浏览器成功访问了ServletDemo01这个类"); }@Override public String getServletInfo() { return null; }@Override public void destroy() {} }

2.配置web.xml方式
>>ServletDemo01>cn.xuguowen.servlet.ServletDemo01 >>ServletDemo01/ServletDemo01

3.在浏览器中访问该servlet 四、自定义类继承GenericServlet抽象类
1.自定义ServletDemo02类继承GenericServlet抽象类,并重写抽象类中的抽象方法
public class ServletDemo02 extends GenericServlet { @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("继承GenericServlet类实现Servlet程序!"); } }

2.配置web.xml
> >ServletDemo02 >cn.xuguowen.servlet.ServletDemo02 > >ServletDemo02 /ServletDemo02

3.在浏览器访问该servlet并查看控制台的输出信息 五、自定义类继承HttpServlet抽象类(开发中推荐使用)
1.自定义类继承HttpServlet抽象类,并重写抽象类中的抽象方法
public class ServletDemo03 extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("继承HttpServlet的方式实现Servlet程序!推荐以后的开发中使用这种方式!"); } }

2.配置web.xml
> >ServletDemo03 >cn.xuguowen.servlet.ServletDemo03 > >ServletDemo03 /ServletDemo03

3.在浏览器访问该servlet并查看控制台的输出信息 六、Servlet的生命周期
JavaWeb|JavaWeb之Servlet核心技术
文章图片

  • 代码验证
/** * @author 徐国文 * @create 2021-08-27 20:14 *Servlet的生命周期: *多次请求ServletDemo04之后,发现 *1.无参构造方法执行了一次,当第一次请求ServletDemo04时调用构造方法创建Servlet实例 *2.init()方法也执行一次,当创建好Servlet实例之后立即调用该方法实现初始化操作 *3.service()方法被多次调用。每次请求都会调用service()方法 *4.destory():只被调用一次,当该Servlet实例所在的Web应用被卸载前调用该方法释放资源 */ public class ServletDemo04 extends HttpServlet { /** * 无参构造方法 */ public ServletDemo04() { System.out.println("创建ServletDemo04对象"); }/** * 初始化方法 * @throws ServletException */ @Override public void init() throws ServletException { System.out.println("初始化ServletDemo04。。。"); }@Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("继承HttpServlet的方式实现Servlet程序!推荐以后的开发中使用这种方式!"); }/** * 销毁方法 */ @Override public void destroy() { System.out.println("销毁ServletDemo04。。。"); } }

七、使用注解的方式配置Servlet
1.在IDEA中直接创建Servlet,不需要自定义类实现接口或者继承的方式实现Servlet编程。
JavaWeb|JavaWeb之Servlet核心技术
文章图片

2.在该类头部的注解信息处配置servlet的访问路径,最后访问即可。
JavaWeb|JavaWeb之Servlet核心技术
文章图片

    推荐阅读