zoukankan      html  css  js  c++  java
  • Tomcat使用

    servlet介绍

    简介

    Servlet 全称是server Applet简称,称为服务端小程序,是javaEE平台下的技术标准,web容器和应用服务器实现了servlet标准,因此需要运行在web容器或应用服务器中实现。Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要:接收请求数据;处理请求;完成响应。

    特点

    单进程多线程的方式运行,这样能提升性能以及是基于线程去解决遇到的问题,相对直接解决进程(CGI,FastCGI 是基于进程的服务外部程序规范)遇到的问题要容易


    以下内容是基于web容器(TomCat进行实现的)

    Tomcat的使用

    Tomcat是完全免费的,通过:tomcat官网,下载解压即可使用。(需要注意的是,要正确配置环境变量,配置过jdk的就无需配置)

    Tomcat目录介绍

    • bin:存放tomcat命令文件,在文件夹中,以.sh结尾的是Linux命令,而.bat结尾的(windows命令),Mac可以使用终端启动
    • conf:主要存放配置文件。配置文件是由4xml组成,分别是context.xml(公用环境配置,tomcat服务器会定时扫描这个文件,文件被修改,会自动加载,无需重启),web.xml(是web应用的配置文件,是所有web应用的web.xml文件的父文件), server.xml(这是核心配置文件,每一个元素都对应tomcat中的一个组件[后续写出],tomcat-user.xml(访问tomcat用户以及角色的配置文件)。
    • lib:存放tomcat运行需要加载的jar包
    • logs:存放运行过程中日志文件
    • temp:目录存放运行中临时文件(清空不影响运行)
    • webapps:存放应用程序,当tomcat启动会加载该目录下应用程序
    • work:存放运行时编译后文件

    Tomcat启动关闭

    控制台乱码

    这是由于编码格式造成的,默认是UTF-8,而中文Windows使用的是GBK,因此将 conf 目录中的 logging.properties 文件重新指定的编码方式为GBK就可以。

    配置Tomcat Manager

    • 默认情况下,tomcat未配置任何默认用户,需要以用户角色进行登陆并授权才能使用对应功能。需通过 tomcat-users.xml进行配置直接在文件结尾进行配置,这里配置了2个角色
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <user username="tomcat" password="tomcat" roles="manager-gui,manager-script"/>
    
    • 角色分类有:

    manager-gui 角色:
    允许访问 HTML GUI 和状态页面(即 URL 路 径 为 /manager/html/*)

    manager-script 角色:
    允许访问文本界面和状态页面(即 URL 路径为/manager/text/*)

    manager-jmx 角色:
    允许访问 JMX 代理和状态页面(即 URL 路径为/manager/jmxproxy/*)

    manager- status 角色:
    仅允许访问状态页面(即 URL 路径为/manager/status/*)

    Tomcat原理

    tomcat原理

    Tomcat架构图

    tomcat架构图

    Tomcat组件

    • server组件:启动server(单进程多线程集一个jvm),监听的是8005端口接收shudown的命令。一个机器启动多个server实例,需要配置不同的端口,默认
    <Server port="8005" shutdown="SHUTDOWN">
    
    • service 是引擎和连接器的绑定,每个连接器通过特定的端口和协议接收请求,并将请求转给引擎(engine)
    • connector 一个引擎可以有多个连接器,默认是http连接器
    • engine 是servlet的实例
    • host 位于引擎中用来接收请求并处理的虚拟主机
    • contxte 为虚拟机加载web应用 context path 既浏览器访问项目的访问路径。docBase:相应的 Web 应用程序的存放位置

    Tomcat处理请求的过程

    请求处理过程

    1、用户访问 localhost:8080/test/index.jsp,请求被发送到 Tomcat,被监听 8080 端口并 处理 HTTP/1.1 协议的 Connector 获得。
    2、Connector 把该请求交给它所在的 Service 的 Engine 来处理,并等待 Engine 的回应。
    3、Engine 获得请求 localhost/test/index.jsp,匹配所有的虚拟主机 Host。
    4、Engine 匹配到名为 localhost 的 Host 虚拟主机来处理/test/index.jsp 请求(即使匹配不到会请求交给默认 Host 处理),Host 会根据/test 匹配它所拥有的所有的 Context。
    5、匹配到的 Context 获得请求/index.jsp。
    6、构造 HttpServletRequest 对象和 HttpServletResponse 对象,作为参数调用 JspServlet 的 doGet()或 doPost().执行业务逻辑、数据存储等程序。
    7、Context 把执行完之后的结果通过 HttpServletResponse 对象返回给 Host。
    8、Host 把 HttpServletResponse 返回给 Engine。
    9、Engine 把 HttpServletResponse 对象返回 Connector。
    10、Connector 把 HttpServletResponse 对象返回给客户 Browser。

    悲观者正确,乐观者成功
  • 相关阅读:
    python 前置程序窗口,还原最小化的窗口
    GreenDao官方文档翻译(上)
    Android 使用Instrumentation进行界面的单元测试
    Android:View中的performClick()触发条件
    Java 单元测试(Junit)
    再看薄荷
    单例模式-Singleton
    Java 如何防止线程意外中止
    Java Error和Exception区别
    linux的进程1:rootfs与linuxrc
  • 原文地址:https://www.cnblogs.com/freebule/p/13631771.html
Copyright © 2011-2022 走看看