icode icode
首页
  • Android学习

    • 📁基础内容
    • 📺AndroidCore
    • 🎨Android-UI
    • 🏖️Components
    • 📊Fragment
    • 🔗网络操作
    • 🔏异步机制
    • 📦数据存储
    • 🗃️Gradle
  • 学习笔记

    • 『框架』笔记
    • 『Kotlin』笔记
    • 《Vue》笔记
    • 《Git》学习笔记
    • 『Bug踩坑记录』
  • ListView
  • RecyclerView
  • ViewPager
  • Java笔记

    • 🟠JavaSE
    • 🟢JavaWeb
    • 🔴JavaEE
    • ⚪JavaTopic
    • 🍳设计模式
  • 计算机基础

    • 📌计算机网络
    • 🔍数据结构
    • 📦数据库
    • 💻OS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 关于

    • 📫关于我
  • 收藏

    • 网站
    • 资源
    • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

iqqcode

保持对技术的探索实践与热爱
首页
  • Android学习

    • 📁基础内容
    • 📺AndroidCore
    • 🎨Android-UI
    • 🏖️Components
    • 📊Fragment
    • 🔗网络操作
    • 🔏异步机制
    • 📦数据存储
    • 🗃️Gradle
  • 学习笔记

    • 『框架』笔记
    • 『Kotlin』笔记
    • 《Vue》笔记
    • 《Git》学习笔记
    • 『Bug踩坑记录』
  • ListView
  • RecyclerView
  • ViewPager
  • Java笔记

    • 🟠JavaSE
    • 🟢JavaWeb
    • 🔴JavaEE
    • ⚪JavaTopic
    • 🍳设计模式
  • 计算机基础

    • 📌计算机网络
    • 🔍数据结构
    • 📦数据库
    • 💻OS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 关于

    • 📫关于我
  • 收藏

    • 网站
    • 资源
    • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • JavaSE

  • JavaWeb

    • BootStrap

    • Cookie和Session

    • JavaScript

    • JDBC

    • JQuery

    • JSON

    • JSP

    • Maven

    • Servlet

      • Servlet执行原理
        • Servlet生命周期
        • Servlet体系结构
        • Servlet之HTTP请求
        • Request对象
        • 登录案例
        • BeanUtils
        • Response响应
        • ServletContext对象
        • IDEA导入Eclipse SSM项目参考
      • Tomcat

      • XML

    • JavaEE

    • JavaTopic

    • 设计模式

    • 计算机基础

    • Java后端
    • JavaWeb
    • Servlet
    iqqcode
    2021-06-17
    目录

    Servlet执行原理

    在这里插入图片描述

    # 1.Servlet

    Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容

    Servlet:server applet 运行在服务器端的小程序

    servlet就是一个接口,定义了Java类被浏览器访问到(Tomcat识别)的规则。自定义一个类,实现servlet接口,覆写方法


    # 2.IntelliJ IDEA 中导入servlet包

    在使用 IntelliJ IDEA 中,当你使用javax.servlet包下的类时(例:javax.servlet.http.HttpServlet), 在你会发现在IntelliJ IDEA里无法成功编译这个程序,因为没有导入这个包。

    解决方案如下:

    1. 点击File,选择Project Structure
    2. 在弹出的窗口左端选择 Libraries;
    3. 点击顶端的一个类似加号 + 的图标,在右端选择第一项;
    4. 在弹出的窗口中选择Tomcat所在的目录,进入里面的lib目录,寻找servlet-api.jar这个jar包(如果JSP页面也有相关的JavaWeb对象,则还要寻找jsp-api.jar;如果只有Servlet,则只选择servlet-api.jar);
    5. 选中上述jar包,依次点击OK

    在这里插入图片描述

    # 3.快速入门

    1. 创建JavaEE项目

    2. 定义一个类,实现servlet接口

    3. 实现接口中的抽象方法

    4. 配置servlet

    【目录结构】

    ServletDemo

    package org.iqqcode.web.servlet;
    
    import javax.servlet.*;
    import java.io.IOException;
    
    /**
     * @Author: Mr.Q
     * @Date: 2020-01-28 10:20
     * @Description:Servlet入门Demno
     */
    public class ServletDemo 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("Hello Servlet!");
        }
    
        @Override
        public String getServletInfo() {
            return null;
        }
    
        @Override
        public void destroy() {
    
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38

    在web.xml中配置Servlet

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
    
        <!--配置Servlet-->
        <servlet>
            <!--Servlet name-->
            <servlet-name>ServletDemo</servlet-name>
            <!--配置全类名-->
            <servlet-class>org.iqqcode.web.servlet.ServletDemo</servlet-class>
        </servlet>
        <!--配置映射-->
        <servlet-mapping>
            <servlet-name>ServletDemo</servlet-name>
            <url-pattern>/ServletDemo</url-pattern>
        </servlet-mapping>
    
    </web-app>
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

    启动Tomcat访问ServletDemo 在这里插入图片描述

    【控制台输出】

    在这里插入图片描述

    每刷新一次,都会调用service方法,在控制台输出

    在这里插入图片描述


    注解配置

    在类前加上@WebServlet(urlPatterns="/AnnotationConfigDemo")即可 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

    # 4.Servlet执行原理

    在这里插入图片描述

    1. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的servlet的资源路径
    2. 查找web.xml文件,是否有对应的/标体内容
    3. 如果有,则在找到对应的/全类名
    4. Tomcat会捋字节码文件加载进内存,并且创建其对象
    5. 调用其方法
    编辑 (opens new window)
    上次更新: 2021/06/27, 10:49:09
    Maven
    Servlet生命周期

    ← Maven Servlet生命周期→

    最近更新
    01
    匿名内部类
    10-08
    02
    函数式接口
    10-08
    03
    ARouter-Kotlin踩坑
    10-05
    更多文章>
    Theme by Vdoing | Copyright © 2021-2023 iqqcode | MIT License | 备案号-京ICP备2021028793号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×