JavaWeb之Servlet核心技术

一、Servlet的基本概念

  • Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是Java语言编写的服务器端程序,换句话说,Servlet就是运行在服务器上的Java类。
  • Servlet用来完成B/S架构下客户端请求的响应处理,也就是交互式地浏览和生成数据,生成动态Web内容。

二、Servlet的编程步骤

1.建立一个Java Web Application项目并配置Tomcat服务器。
2.自定义类实现Servlet接口或者继承GenericServlet抽象类和HttpServlet抽象类,并重写service()方法。
3.将自定义类的信息配置到web.xml文件并启动项目。配置方式如下

 
    <servlet>
        
        <servlet-name>ServletDemo01servlet-name>
        
        <servlet-class>cn.xuguowen.servlet.ServletDemo01servlet-class>
    servlet>
    
    <servlet-mapping>
        
        <servlet-name>ServletDemo01servlet-name>

        <url-pattern>/ServletDemo01url-pattern>
    servlet-mapping>
  • 在浏览器上访问的方式是:
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方式

    <servlet>
        
        <servlet-name>ServletDemo01servlet-name>
        
        <servlet-class>cn.xuguowen.servlet.ServletDemo01servlet-class>
    servlet>
    
    <servlet-mapping>
        
        <servlet-name>ServletDemo01servlet-name>

        <url-pattern>/ServletDemo01url-pattern>
    servlet-mapping>
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
	<servlet>
        <servlet-name>ServletDemo02servlet-name>
        <servlet-class>cn.xuguowen.servlet.ServletDemo02servlet-class>
    servlet>
    <servlet-mapping>
        <servlet-name>ServletDemo02servlet-name>
        <url-pattern>/ServletDemo02url-pattern>
    servlet-mapping>
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
<servlet>
        <servlet-name>ServletDemo03servlet-name>
        <servlet-class>cn.xuguowen.servlet.ServletDemo03servlet-class>
    servlet>
    <servlet-mapping>
        <servlet-name>ServletDemo03servlet-name>
        <url-pattern>/ServletDemo03url-pattern>
    servlet-mapping>
3.在浏览器访问该servlet并查看控制台的输出信息

六、Servlet的生命周期

JavaWeb之Servlet核心技术_第1张图片

  • 代码验证
/**
 * @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之Servlet核心技术_第2张图片

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

你可能感兴趣的:(JavaWeb,tomcat,java,servlet)