0
点赞
收藏
分享

微信扫一扫

认识Servlet

凶猛的小白兔 2022-03-25 阅读 45
javaidea

认识Servlet

Servlet简介

  • Servlet是Java提供的一门动态web资源开发技术.

  • Servlet是JavaEE规范之一,其实就是一个接口,将来我们需要定义Servlet类实现Servlet接口,并由web服务器运行Servlet.

Servlet执行流程

  1. Servlet由谁创建?Servlet由谁调用?

    • Servlet由web服务器创建,servlet方法由web服务器调用.
  2. 服务器为什么知道Servlet中由service方法?

    • 因为我们自定义的Servlet,必须实现Servlet接口并复写其方法,而接口中由service方法

Servlet生命周期

  • 对象的生命周期指一个对象从创建到被销毁的过程
  • Servlet运行在Servlet容器(web服务器)时,其生命周期由容器来管理,分为四个阶段
    1. 加载和实例化:默认情况下,当Servlet第一次被访问时,由容器来创建Servlet对象
    2. 初始化:在Servlet被实例化后,容器会调用Servlet的init()方法对Servlet对象进行初始化,完成一些配置文件及创建连接等初始化工作,方法只调用一次.
    3. 请求处理:每次请求Servlet时,Servlet容器都会调用Servlet的service方法对请求进行处理
    4. 服务终止:当需要释放内存或者容器关闭时,容器就会调用Servlet实例的destory()方法完成资源的释放.在destory()方法调用之后,Servlet示例会被释放,并被Java的垃圾收集器回收
@WebServlet(value = "URL",loadOnStartup = 1)

Servlet方法介绍

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

Servlet体系结构

接口或抽象类名描述
ServletServlet体系根接口
GenericServletServlet抽象实现类
HttpServlet对Http协议封装的Servlet实现类
  • HttpServlet使用步骤
    1. 继承HttpServlet
    2. 重写doGet(),doPost方法
  • HttpServlet原理
    1. 获取请求方式,并根据请求方式的不同调用不同的doXxx方法

Servlet的urlPattern配置

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

  1. 一个Servlet可以配置多个urlPattern

    @WebServlet(urlPattern={url1,url2})
    //url1,url2均为访问路径
    
  2. urlPattern配置规则

    1. 精确匹配

      @WebServlet(urlPattern="/select/demo")
      

      则需要在服务器的/select/demo才可以访问到

    2. 目录匹配

      @WebServlet(urlPattern="/select/*")
      

      则在/select目录下什么路径都可以例如/select/aaaa

    3. 扩展名匹配

      @WebServlet(urlPattern="*.do")//此处不需要"/"
      

      则只要带.do扩展名即可

    4. 任意匹配

      @WebServlet(urlPattern="/")
      //或者
      @WebServlet(urlPattern="/*")
      

      则任意路径均可访问到

      • "/""/*"的区别,当配置了"/",时会覆盖掉Tomcat中的DefaultServlet,当其他的url-Pattern都匹配不上时都会走这个Servlet
      • 当我们配置了"/*",意味着匹配任意访问路径

XML配置Servlet

  • 步骤

    1. 编写Servlet类

    2. 在web.xml中配置Servlet

      <servlet>
              <servlet-name>{与servlet-mapping的映射名}</servlet-name>
              <servlet-class>{类路径}</servlet-class>
      </servlet>
          <servlet-mapping>
              <servlet-name>{与servlet的映射名}</servlet-name>
              <url-pattern>{urlPattern配置}</url-pattern>
          </servlet-mapping>
      
举报

相关推荐

0 条评论