• 【JAVA】Servlet


    目录

    【Servlet】

    【Servlet使用】

    【Servlet的执行】

    【Servlet的生命周期】

    【Servlet的方法】

    【Servlet体系结构】

    【HttpServlet原理】

    【HttpServlet使用步骤】

    【Servlet urlPattern配置】

    ​​​​​​​【XML配置Servlet】


    【Servlet】

    【概述】

    • Servlet 是 Java提供的一门动态web资源开发技术
    • Servlet 是JavaEE 规范之一,其实就是一个接口,将来我们需要定义Servlet类实现Servlet接口,并由web服务器运行Servlet

    【Servlet使用】

    1、创建 web项目,导入 Servlet依赖坐标

    1. <dependencies>
    2. <dependency>
    3. <groupId>javax.servletgroupId>
    4. <artifactId>javax.servlet-apiartifactId>
    5. <version>3.1.0version>
    6. <scope>providedscope>
    7. dependency>
    8. dependencies>

    2、创建:定义一个类,实现 Servlet接口,并重写接口中所有方法,并在 service方法中输入一句话

    1. public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
    2. }

    3、 配置:在类上使用@WebServlet 注解,配置该 Servlet的访问路径

    1. @WebServlet("/demo1")
    2. public class ServletDemo1 implements Servlet {
    3. }

    4、访问:启动 Tomcat,浏览器输入URL 访问该Servlet

    http://localhost:8080/"+当前项目名+"/demo1

    【Servlet的执行】

    • Servlet由web服务器创建,Servlet方法由web服务器调用。
    • 我们自定义的Servlet,必须实现Servlet接口并复写其方法,而Servlet接口中有service方法

    【Servlet的生命周期】

    Servlet运行在Servlet容器(web服务器)中,其生命周期由容器来管理,分为4个阶段:

    1. 加载和实例化:默认情况下,当Servlet第一次被访问时,由容器创建Servlet对象
    2. 初始化:在Servlet实例化之后,容器将调用Servlet的init()方法初始化这个对象,完成一些如加载配置文件、创建连接等初始化的工作。该方法只调用一次
    3. 请求处理:每次请求Servlet时,Servlet容器都会调用Servlet的service()方法对请求进行处理。
    4. 服务终止:当需要释放内存或者容器关闭时,容器就会调用Servlet实例的destroy()方法完成资源的释放。在destroy()方法调用之后,容器会释放这个Servlet实例,该实例随后会被Java的垃圾收集器所回收

    【注意】:

    @WebServlet(urlPatterns = "/demo",loadOnStartup = 1)

    1. 负整数:第一次被访问时创建Servlet对象
    2. 0或正整数:服务器启动时创建Servlet对象
    3. 数字越小优先级越高

    【Servlet的方法】

    • 初始化方法,在Servlet被创建时执行,只执行一次
    void init(ServletConfig config) 
    
    • 提供服务方法, 每次Servlet被访问,都会调用该方法
    void service(ServletRequest req, ServletResponse res) 
    
    • 销毁方法,当Servlet被销毁时,调用该方法。在内存释放或服务器关闭时销毁Servlet
    void destroy() 
    
    • 获取ServletConfig对象
    ServletConfig getServletConfig() 
    
    • 获取Servlet信息
    String getServletInfo() 
    

    【Servlet体系结构】

    【HttpServlet原理】

            HTTP 协议中,GET 和 POST 请求方式的数据格式不一样,将来要想在Servlet中处理请求参数,得在service方法中判断请求方式,并且根据请求方式的不同,分别进行处理:

    1. //获取请求方式
    2. String method =request.getMethod();
    3. //判断
    4. if("GET".equals(method)){
    5. //get逻辑请求
    6. doGet(servletRequest,servletResponse);
    7. }else if ("POST".equals(method)){
    8. //post逻辑请求
    9. doPost(servletRequest,servletResponse);
    10. }

    【HttpServlet使用步骤】

    1. 继承HttpServlet
    2. 重写doGet和doPost方法

    【Servlet urlPattern配置】

    Servlet 要想被访问,必须配置其访问路径(urlPattern)

    1、一个Servlet,可以配置多个urlPattern

    @WebServlet(urlPatterns = {"/demo1", "/demo2"})

    2、urlPattern配置规则

    • 精确配置

    配置路径:@WebServlet(urlPatterns = "/user/demo5")

    访问路径:localhost:8080/HTTP/user/demo5

    • 目录匹配

    配置路径:@WebServlet(urlPatterns = "/user/*")

    访问路径:localhost:8080/HTTP/user/任意名称

    • 扩展名匹配

    配置路径:@WebServlet(urlPatterns = "*.do")

    访问路径:localhost:8080/HTTP/任意名称.do

    • 任意匹配

    配置路径:@WebServlet(urlPatterns = "/")或@WebServlet(urlPatterns = "/*")

    访问路径:localhost:8080/HTTP/任意名称

    【注意】

    • / 和 /* 区别:
    1. 当我们的项目中的Servlet配置了"/",会覆盖掉tomcat中的DefaultServlet,当其他的url-pattern都匹配不上时都会走这个Servlet
    2. 当我们的项目中配置了"/*",意味着匹配任意访问路径
    • 优先级:

    精确路径>目录路径>扩展名路径> /* > /

    ​​​​​​​【XML配置Servlet】

    【步骤​​​​​​​】

    1. 编写Servlet类
    2. 在web.xml中配置该Servlet
    1. <servlet>
    2. <servlet-name>demo7servlet-name>
    3. <servlet-class>com.itheima.web.ServletDemo7servlet-class>
    4. servlet>
    5. <servlet-mapping>
    6. <servlet-name>demo7servlet-name>
    7. <url-pattern>/demo7url-pattern>
    8. servlet-mapping>
  • 相关阅读:
    论文阅读笔记 | 三维目标检测——PartA2算法
    机器学习笔记 - 时间序列预测研究:法国香槟的月销量
    vue学习笔记,购物车清单制作
    springboot毕设项目疫情下药店管理系统xcu0u(java+VUE+Mybatis+Maven+Mysql)
    协程: Flow 异步流 /
    通过1688APP分享商品链接淘口令获取商品详情接口,淘口令返利接口,1688淘口令API接口,淘口令解析接口演示案例
    Spring bean 和 Java Bean的区别
    FME2016与ARCGIS10.3.1集成
    中科创达怎么样-是外包公司吗-智能网联汽车和智能物联网推动业务快速增长
    2022年最新最详细在IDEA中配置Tomcat(含有详细图解过程)、建立使用IEDA建立一个Web项目的案例
  • 原文地址:https://blog.csdn.net/huihu__/article/details/126074891