• 20220419Servlet和HTTP请求协议


    主要内容:
    1,Servlet_快速入门
    2,Servlet_生命周期方法
    3,Servlet_3.0注解配置
    4,Servlet_IDEA与tomcat相关配置
    5,Servlet_体系结构与urlpartten配置
    6,HTTP请求协议
     
    一,什么是servlet?
    运行在服务器上的一个小程序,一个可以让浏览器找到java类的接口,类似.net种的一般处理程序ashx(request和response)
     
     
    二,怎么使用servlet(2.0版本)?
    1,创建一个J2EE的类才可以访问servlet。
    2,实现(implement)servlet接口。
    3,实现(implement)servlet接口中的抽象方法。
    4,在web.xml配置servlet,两个节点:servlet和servlet-mapping。两个都有一个servlet-name。不用点为servlet-class(全类目)和url-pattern
     
     
    三,servlet执行原理和过程是怎样的?
    1,用户通过浏览器地址和端口找到tomcat,tomcat根据url中的资源类。
    2,在web.xml中找url- pattern。
    3,找到url-pattern一样的类名。
    4,再根据mapping,找到对应的全类名(看到全类目就想到反射)。
    5,将全类名内容字节码反射到内存中,并创建类对象。
    6,调用servlet方法。
     
    ---------------------------------------------------------------------------------------------------------------------------------------------------- 
     
    四,servlet的生命周期
    1,主要是3个方法。
    2,init方法,只执行一次,并且可以通过servlet的配置文件节点load-on-startup来决定执行时间点,默认是-1,在被第一次访问时执行,即小于0的情况,此时方法体里面是代码还没有被执行。
    大于等于0的情况是代表服务被加载的时候执行init方法,可以看到init方法体里的输出。
    2,service方法,每次访问都会被执行,执行多次。
    3 ,destroy方法,程序正常关闭时执行此销毁方法,只执行一次。
    4,servlet是单例,所以尽量不要在servlet中定义成员变量,即使定义了,也不要对其进行赋值,这是为了防止线程安全。
     
    ---------------------------------------------------------------------------------------------------------------------------------------------------- 
     
    五,servlet3.0比2.0好处是什么?
    不用添加web.xml去做一堆配置了,直接在实现servlet的类上写上,即:注解配置
    @webservlet,再加上url-pattern资源路径即可
     
    ---------------------------------------------------------------------------------------------------------------------------------------------------- 
     
    六,Ideal与tomcat的关系和配置?
    1,Ideal调试的时候要打断点,同时点小虫debug。
    2,Ideal中项目每一个程序都有一个tomcat文件夹管理,可以在运行的log里面看到路径。
    3,tomcat运行找的的程序对象是在web文件夹下,即使是src文件,也会编译到web文件夹下调用。
     
    ---------------------------------------------------------------------------------------------------------------------------------------------------- 
     
    七,Servlet体系结构是怎样的?
    1,GenericServlet(儿子),它实现了servlet接口和所有抽象方法都做了空实现(因为那4个方法基本用的很少),只有service方法依然是抽象方法。 
    2,HttpSservlet(孙子)继承了GenericServlet,同时是对Http协议的封装,Http协议有7种请求方式(get,post,head,put,delete,options,trace),http协议对每一个都做了一个判断,然后继承httpServlet的类只要调用doGet,doPost等即可。
     
     
    八,webServlet路径urlpatten的配置方式有哪些?
    1,它本身定义的是数组类型,如果只写一个就/demo1,如果写多个用{}括起来,用,号分开。
    2,多层路径:/xx/xxx,也可以/xx/*
    3,随便访问/*
    4,随便访问*.do,这里前面不能加/,比如:demo.do即可找到资源路径
    注意*的优先级最低
     
    ---------------------------------------------------------------------------------------------------------------------------------------------------- 
     
    九,Http协议概念
    1,全称:Hyper text transfer protocol超文本传输协议
    2,基于TCP/IP的高级协议
    3,默认端口:80
    4,基于请求/响应模型,一次请求对应一次响应
    5,无状态:每次请求都相互独立,不能交互数据。
    6,1.1的版本对比1.0版本,应该是多了keep alive,就是请求完之后,会多等一会,如果还有请求,那么就复用之前的请求。
     
     
    十,请求行有哪些内容?
    1,请求方式:get、post等,请求路径:login.html页面,请求协议:Http 1.1
     
     
    十一,请求头有哪些主要内容?
    1,键值对形式。
    2,user-Agent:浏览器版本信息。
    3,Referer:告诉服务器从哪里请求过来的,用于防盗链,统计点击数等
     
     
    十二,get方式有请求体吗?
    没有,请求体只是封装了post的请求参数
     
  • 相关阅读:
    Nginx+keepalived高可用配置
    kubespahere安装kubenetes
    Fastdfs原理及集群搭建
    Spark 3.0.3集群安装文档
    Mybatis Plus 代码生成器
    redis集群方案
    Go 语言并发之道
    重构-改善即有代码的设计
    QT线程
    QT中的cout
  • 原文地址:https://www.cnblogs.com/faithfeng/p/16190906.html
Copyright © 2020-2023  润新知