• 【计算机网络】Tomcat和Servlet基础知识汇总


    目录

    1.Tomcat:

    2.Servlet:


    1.Tomcat:

    1. Tomcat是一个HTTP的服务器,本质上就是一个TCP服务器,只不过加上了一些按照HTTP协议格式进行解析/构造这样的代码。
    2. 学习Tomcat的目的就是能够熟练掌握Tomcat api,基于Tomcat开发网站后端程序,基于这些http服务器进行二次开发。
    3. 将前端和后端代码放到webapps目录里面就可以通过自己的浏览器来访问了。在webapps目录下创建一个文件就被视为一个webapp,文件创建好之后需要重启Tomcat,才可以在浏览器上正常访问到。
    4. Tomcat是运行在JVM上的,跨平台!默认的编码是UTF-8,而windows的cmd默认编码是gbk。
    5. 若没有写具体的路径则默认是在webapps的ROOT目录下进行查找若文件没有给出路径并且文件名也不在ROOT中存在,就会报404务必要保证是在webapps目录中进行访问!

    2.Servlet

    1. Servlet就是Tomcat给程序员提供的进行二次开发的api。
    2. 静态页面和动态页面的概念。静态页面意思就是页面是固定的(以文件的形式,放在硬盘指定的的目录当中),无论是什么时候什么人来访问都是一样的页面。而动态页面不是一个真实的硬盘文件,而是代码在内存上构造出来的”虚拟文件资源“,不同的人不同的时间访问的页面就会不同。举个例子:我开水果摊,静态页面就是已经切好的水果,每一盒都是一样的;动态页面就是个性搭配,需要现做一个。
    3. 静态页面直接拷贝到webapps里面就行;动态页面就需要基于Servlet api进行写代码实现。
    4. 使用Servlet来编写一个hello world,
      一共7个步骤:
      1.创建项目
      2.引入Servlet依赖
      3.创建目录结构
      4.编写代码 
      5.打包程序
      6.部署程序
      7.验证程序
    5. 第1步:创建一个maven项目。maven是一个作用不限于编译、打包、部署的构建工具(build)。我们使用maven主要就是借助maven进行编译、打包和管理依赖。
    6. 第2步:引入Servlet依赖。Servlet不是Java标准库自带的需要下载并引入到项目中。maven的一个核心功能就是能够自动的管理依赖,就会把咱们使用的库里依赖的东西自动从中央仓库上下载下来。
    7. 第3步:创建目录结构。虽然maven已经创建出了一些目录但是还不够,还需要搞一个符合Tomcat要求的目录结果。这个目录结构的位置名称层次都要严格的一致,还需要在web.xml中复制一段代码。schema文件就描述了xml中都允许写哪些节点,节点之间的层级关系,哪些属性是违法的。
    8. 第4步:编写代码。把要编写的代码放到java这个目录下。Tomcat可以关联上很多路径,这样就关联上了不同的类,也就执行了不同的方法了。
      @WebServlet("/hello")   会针对某些GET请求生效
      这里写的是“/hello”
      意思是 GET请求并且url里面的路径是 /hello 的请求才会生效
      这样Tomcat才会调用到这里的doGet方法
    9. 第5步:打包程序。之前我们写的代码都是带main方法的相当于一个小汽车自带发动机(自己就能跑),当前我们写的Servlet代码没有main方法,就相当于一个火车车厢必须要把车厢挂到车后后面才可以跑起来(车头就是Tomcat,Tomcat带main,自带个发动机)。把写好的代码挂到火车头后面的过程就是打包+部署。一个类就是一个.class文件,是在方法区里加载的。当打包完成之后(打成了jar包),但Tomcat不使用,因为Tomcat要求的压缩包格式是war包。因此需要在pom.xml文件中配置。
    10. 第6步:部署程序。就是把war包拷贝到Tomcat的webapps中
    11. 第7步:验证程序。通过浏览器构造一个HTTP请求来访问Tomcat中的服务器,Tomcat服务器就会解析请求。例如:构造一个请求:127.0.0.1:8080/servlet/hello  。大致是先匹配Context Path第一级路径(/servlet),再匹配Servlet Path第二级路径(/hello),最后匹配HTTP方法。
      浏览器发送的请求时怎么和自己写的代码建立联系的:
      Tomcat服务器解析请求:
      1.获取到URL中的第一级路径/servlet(Context Path / Application Path),就是确定一个webapp。
      2.找到webapp之后就会加载里面的类,重点就是去识别出@WebServlet注解修饰的类。
        取出URL中的第二级路径/hello(Servlet Path),
        就在@WebServlet注解中找到名字为/hello的这个类
        找到类之后创建实例,这个实例只会创建一次,如果之前创建过就直接使用上次的实例
      3.再解析出HTTP请求的方法(如果是GET),取出GET之后就根据HTTP方法来调用对应的Servlet中的(do...方法),
        同时Tomcat还会构造出HttpServletRequest对象和HttpServletResponse对象
    12. Tomcat中的main方法主要做的事情就是针对webapps里的webapp进行加载将Context Path、Servlet Path和请求的方法加载到内存上。
    13. 使用Servlet编写个hello world这7个步骤中,第5和6步可以合并在一起。在idea中可以使用第三方的Smart Tomcat插件(plugin)来完成”一键式“的打包和部署。
    14. 如果Tomcat已经启动了,此时smart tomcat调用的tomcat就会绑定端口号失败。“一山不容二虎”!
      一个程序能不能绑定多个端口号? 
         -> 一个人能不能有多个手机号? 可以
      一个端口号能不能被多个程序绑定? 
         -> 一个手机号能不能被多个人使用? 不可以
    15. tomcat的运行方式有多种?
      1.直接在startup.bat上运行,需要手动拷贝war包到webapps目录中
      2.直接通过java代码,调用Tomcat的jar包运行,不需要拷贝war包。
        在webapps的目录中不会有war包,也没有欢迎页面(没有加载webapps目录下的东西)
    16. Context Path分成俩种情况来看待:(这是Tomcat俩种不同的运行模式,这俩种模式对Context Path的认知是不一样的!)
    17. 使用Smart Tomcat 时经常会遇到的问题。404:路径写错了或者是你的webapp没有被tomcat正确的加载(web.xml写错了,web.xml是tomcat加载war包的重要依据!)。405:请求的方法服务器这里没有实现(GET请求,服务器这里是doPOST方法就会出现405)或者是没有把super给删了。500:服务器这里的代码出BUG了。空白页面:说明服务器没有响应。无法访问此网站:说明tomcat服务器没有启动或者是IP地址端口号写错了。

    如果对您有帮助的话,

    不要忘记点赞+关注哦,蟹蟹

    如果对您有帮助的话,

    不要忘记点赞+关注哦,蟹蟹

    如果对您有帮助的话,

    不要忘记点赞+关注哦,蟹蟹

  • 相关阅读:
    从一个非科班的角度唠唠我的编程技术学习成长之路,希望对你有帮助
    神经网络的图像识别技术,人工神经网络图像识别
    1.nginx学习
    屡试不爽的爆款软文套路,媒介盒子无偿分享
    ffmpeg视频解码器的配置选项含义
    华为机试真题 Java 实现【路灯照明】
    python+nodejs+php+springboot+vue 学生选课程作业提交教学辅助管理系统
    如何应对GNSS/GPS欺骗?GPS/GNSS防欺骗测试
    2310C++子类已调用基类构造器
    四线法与电桥
  • 原文地址:https://blog.csdn.net/qq_68993495/article/details/127893904