• Servlet


    什么是Servlet

    • Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口)
      ​ 1.servlet接收响应请求
      ​ 2.filter过滤器
      ​ 3.listener监听器
    • 用来处理客户端请求、响应给浏览器的动态资源
    • servlet的实质就是java代码,通过java的API动态的向客户端输出内容
    • 以后写的程序就不在是在本地执行了。而是编译成字节码,放到服务器上来去执行。
    • 编写程序时, 不需要有main函数了。因为写完后,就把编写的程序编译成字节码,放到服务器上面。当前发送就一个请求的时候,服务器就会按照一定规则调用编写的代码

    Servlet快速入门

    ​ ​ 1.创建一个web工程
    ​ ​ 2.在JavaResource中src下创建一个包名称为com.myxq.servlet
    ​ ​ 3.在创建的servlet包当中创建一个class文件起名为FirstServlet
    ​ ​ 4.进入该class实现一个Servlet接口,实现它未实现的方法
    ​ ​ 重点看service方法
    ​ ​ 在该方法当中写入一句话进行输出
    ​ ​ 5.在web.xml当中进行配置

    ​ 6.不过后期会通过在servlet中引入注解的形式在web.xml中自动注册servlet

    ​ 表现形式

    ​ @WebServlet("/Myservlet")

    生命周期

    Servlet什么时候被创建

    • 默认情况下第一次访问的时候创建
    • 可以通过配置文件设置服务器启动的时候就创建

    init方法

    • servlet对象创建的时候调用
    • 默认第一次访问时创建

    service方法

    • 每次请求都会执行一次

    destroy方法

    • servlet对象销毁的时候执行
    • 默认服务器关闭时销毁

    < load-on-startup >标签(在项目web.xml中里添加标签)

    • 对象在服务器启动时就创建
    • 参数为数值,代表优先级;数据越小,优先级越高,不能为负数

    Servlet配置信息

    ​ < init-params >(在项目web.xml中里添加标签)

    <init-params>
        <init-name>名称</init-name>
        <init-value>值</init-value>
    </init-params>
    

    ​ config参数

    • 该servlert的配置信息
    • 获得web.xml当中参数
    • 初始化参数
    • 获取servletContext对象

    url-patten

    1.完全匹配
    <url-pattern>/firstServlet</url-pattern>
    2.目录匹配
    <url-pattern>/my/xq/*</url-pattern>
    3.扩展名匹配
    <url-pattern>*/myxq</url-pattern>
    

    缺省Servlet

    ​ 访问的资源不存在时,就会找缺省的地址

    <url-pattern>/</url-pattern>
    

    全局Web.xml

    • 对于部署在服务器上的所有应用都有效
    • 先到自己工程当中找web.xml配置
    • 再到全局web.xml当中去找配置
    • 如果两个当中有相同的配置,自己当中配置的内容会生效

    静态资源加载过程

    • 在path后面写的静态资源名称index.html或是其它的.html,它都是会找ur-pattern当中有没有匹配的内容
    • 如果有,就加载对应的servlet;如果没有就到自己配置当中找缺省的url-pattern
    • 如果自己配置文件当中没有缺省的,就会找全局配置缺省的url-pattern
    • 在全局配置当中有一个缺省的url-pattern对应的是default的Servlet
    • defaultServlet内部会到当前访问的工程根目录当中去找对应的名称的静态资源,如果有,就把里面的内容逐行读出。响应给浏览器。
    • 如果没有,就会报404错误

    欢迎页面

    ​ Welcome-file-list

    • 不写任何资源名称的时候,会访问欢迎页面
    • 默认从上往下找

  • 相关阅读:
    [cf621E]Wet Shark and Blocks
    [学习笔记]数论
    [CZYZ2016]day8
    Python 对 Excel 操作用法详解
    HTML学记笔记
    Django 2.2_错误:UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in position 9737: illegal multibyte sequence
    Python在终端通过pip安装好包以后,在Pycharm中依然无法使用的解决办法
    div的移动特效
    jQuery各种动画效果
    jqZoom插件
  • 原文地址:https://www.cnblogs.com/mumuyinxin/p/10604048.html
Copyright © 2020-2023  润新知