网站建设工单系统护语贵州专业网站建设

diannao/2026/1/16 16:38:16/文章来源:
网站建设工单系统护语,贵州专业网站建设,网站建设的行业市场的特点,青海最新消息今天目录 Tomcat概念 核心组件 Web容器 Web服务器之间解析请求的区别 Apache HTTP Server Nginx Tomcat Servlet容器 JSP容器 字节码文件 Tomcat表面处理请求的过程 Tomcat底层处理请求的过程 内部结构 Tomcat部署 JRE环境配置 PATH冒号位置的区别 安装Tomcat 目…目录 Tomcat概念 核心组件 Web容器 Web服务器之间解析请求的区别 Apache HTTP Server Nginx Tomcat Servlet容器 JSP容器 字节码文件 Tomcat表面处理请求的过程 Tomcat底层处理请求的过程 内部结构 Tomcat部署 JRE环境配置 PATH冒号位置的区别 安装Tomcat 目录结构 常见端口号 发布站点 JMeter压力测试 Tomcat优化 优化前后对比 Tomcat概念 免费、开源的Web应用服务器Apache软件基金会Apache Software FoundatioJakarta项目中的一个核心项目由Apache、Sun和一些公司及个人共同开发而成深受Java爱好者的喜爱并得到部分软件开发商的认可目前比较流行的Web应用服务器 核心组件 Tomcat 由一系列的组件构成,其中核心的组件有三个: web容器:完成web服务器的功能。 Servlet容器:名字为catalina用于处理Servlet代码。 JSP 容器:用于将 JSP动态网页翻译成Servlet代码。 Web容器 Web 容器负责接收所有HTTP请求根据请求的URL调用对应的Servlet映射来确定哪个Servlet来处理特定请求或直接解析静态资源然后将结果返回给客户端 Web服务器之间解析请求的区别 Apache HTTP Server Apache HTTP Server服务器本身是可以独立处理静态资源请求而对于动态资源的解析Apache需要通过开启mod_php等模块才能动态请求 Nginx Nginx服务器本身也可以独立处理静态资源请求对于动态资源的解析Nginx需要借助FastCGI等接口或者反向代理将动态资源请求传递给后端服务器来解析比如php-fpm、Node.js等服务器 Tomcat Tomcat可以独立处理静态资源和动态资源的请求Tomcat内置了Servlet和JSP的解析引擎无需借助额外的模块或接口解析动态请求。 在实际部署中因为Tomcat的静态解析效率不高所以通常会将静态资源的处理交给专门的前端服务器比如 Apache 或 Nginx而将动态内容交给 Tomcat 这样的应用服务器实现动静分离。 Servlet容器 在Java程序运行的时候需要一个基本的JREJava运行时环境环境JRE不是一个单独的进程而是一个容器Tomcat是跑在JRE容器的环境里运行的 Servlet有一个名字Catalina卡特琳娜负责加载和执行Servlet代码并处理Servlet相关的请求。 比如将JSP代码通过JSP容器翻译成Servlet代码然后由Servlet容器解析最后将解析的结果返回Web容器再由Web容器返回给用户 JSP容器 负责将JSP文件中的静态代码和Java代码编译成Servlet类。 一旦JSP文件被编译为Servlet类它会被编译成字节码文件.class并可以在Servlet容器中执行。 JSP页面中包含的Java代码需要被编译成字节码以便在Servlet容器中运行。这样做可以确保在每次请求时不需要重新解析和编译JSP页面而是直接执行已经编译好的字节码 字节码文件 什么是字节码文件比如使用记事本编写一个使用Main方法执行输出语句HelloWord的.java文件 然后在命令行使用javac命令对该文件进行编译得到了.class为后缀的字节码bytecode文件。 这个.class文件就是字节码文件可以在任何支持了JVMJava虚拟机的平台上运行而无需重新编译 总结 字节码文件是Java代码最终编译的目标它允许Java程序在JVMJava虚拟机上跨平台运行。 Tomcat表面处理请求的过程 tomcat默认端口号8080 当用户在浏览器中输入服务器的IP地址和端口向客户端发送一个请求Tomcat服务器收到请求后通过JSP容器将请求页面的代码转换为Servlet代码再转交给Servlet容器Servlet基于JREJava运行时环境解析请求如果请求的内容涉及到数据库需要在Servlet代码中连接数据库获取数据最后返回给用户 如果该服务器实现了动静分离比如Nginx和Tomcat当用户向Nginx的80端口发送动态解析请求时Nginx通过反向代理将动态请求传递给Tomcat由Tomcat处理后返回给Nginx再返回给用户 Tomcat底层处理请求的过程 当用户通过浏览器向服务器特定端口发送请求Connector接收请求后交给Container中的Engine容器通过用户输入的域名判断要访问的站点确定了要访问的站点就会将找到对应HostHost收到请求后再交给Context由Context当中的Servlet将代码进行解析解析完成后将请求返回给上层容器直到返回给Connector由连接器返回给用户 内部结构 容器 说明 Tomcat 可以看作是一个Tomcat服务器 Service Tomcat服务器里有一个Service容器每一个Tomcat只有一个Service容器是其他子容器的集合 Connector Service的子容器当用户在浏览器中向Tomcat发起请求Tomcat通过Connector连接器接收请求Tomcat可以有多个连接器每个连接器可以监听特定的端口。如果要在Tomcat部署基于端口的虚拟主机就要添加连接器每个连接器监听不同端口 Container Service的子容器最多只能有一个Container负责最终为用户提供代码的解析但是Container又包含了很多子容器 Engine Container的子容器最多只能有一个Engine负责管理基于域名的虚拟主机 Host Engine的子容器Host可以有多个每个Host都是一个虚拟主机 Context 上下文负责每一个Host对应站点的代码运行 Servlet Context可以包含多个Servlet负责处理来自客户端的HTTP请求执行一些逻辑比如业务逻辑、数据处理等然后生成符合HTTP标准的响应返回给客户端。 需要注意的是Tomcat只支持基于端口和基于域名的虚拟主机而没有基于IP的虚拟主机。 Tomcat部署 导入jdk的rpm软件包使用rpm -ivh jdk-8u171-linux-x64.rpm命令安装jdk环境 装完可以使用java -version命令测试是否正常显示版本信息还可以在/usr/下看到名为java的文件夹就是安装目录 JRE环境配置 为了确保Java能够正常运行需要设置配置环境变量在全局环境变量文件中使用export将Java家目录的路径和类库路径的添加为全局变量 并且将Java命令添加到系统查找命令的$PATH变量中也就是echo $PATH显示的多个路径系统会在这些路径下查找和用户输入内容所匹配的命令 最后使用source命令重新加载存放环境变量的文件然后再输出$PATH变量的值就可以看到Java命令的路径已经被追加到末尾了 此时JREJava运行时环境就配置好了 [rootlocalhost ~]# vim /etc/profile export JAVA_HOME/usr/java/jdk1.8.0_171-amd64 export CLASSPATH$JAVA_HOME/lib export PATH$PATH:$JAVA_HOME/bin[rootlocalhost jdk1.8.0_171-amd64]# source /etc/profile [rootlocalhost jdk1.8.0_171-amd64]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/java/jdk1.8.0_171-amd64/bin PATH冒号位置的区别 这里使用的PATH变量不是新建了一个PATH变量而是调用了系统已有的变量冒号:表示在该变量的值末尾追加指定值这里追加了Java命令的路径让系统可以在终端中识别Java命令 如果将PATH变量的冒号放到末尾去追加行不行呢 就变成了export PATH$JAVA_HOME/bin:$PATH 实际上是可行的但是实现的效果相反比如当你执行了export PATH$JAVA_HOME/bin:$PATH 这个命令会将$JAVA_HOME/bin的路径放在现有$PATH变量的开头就不是追加了但是$PATH会把$JAVA_HOME/bin放在$PATH的最前面在系统识别命令_时优先搜索Java命令 如果当你执行了export PATH$PATH:$JAVA_HOME/bin则会把$JAVA_HOME/bin放到$PATH变量的末尾当系统识别命令时会先搜索现有路径再搜索$JAVAHOME/bin 安装Tomcat 导入Tomcat的tar.gz包由于该包是直接解压使用的所以使用tar zxvf apache-tomcat-9.0.8.tar.gz命令直接解压然后通过mv apache-tomcat-9.0.8 /usr/local/tomcat命令将该包移动到/usr/local/下重命名为tomcat 目录结构 进入tomcat目录使用ll命令可以查看tomcat的目录结构 目录或文件 说明 bin 用于存放Tomcat的可执行文件比如启动和停止脚本 (startup.sh、shutdown.sh) 以及其他管理和维护 Tomcat 服务器的工具 conf 用于存放Tomcat的配置文件 lib 用于存放Tomcat运行时需要Java类库和依赖的JAR文件 logs 用于存储Tomcat的日志文件 temp 用于存放 Tomcat 运行时生成的临时文件比如编译后的 JSP 文件等。 webapps 存放Tomcat的默认web应用程序部署目录将你的WAR包放入后Tomcat 会自动解压并运行这些应用。 work 用于存放Tomcat运行时生成的servlet编译文件。 LICENSE 这是 Tomcat 的许可证文件包含了软件使用和分发的许可条款。 RELEASE-NOTES 这是该版本 Tomcat 的发行说明描述了新功能、改进和已知问题等信息。 RUNNING.txt 这个文件提供了关于如何运行 Tomcat 服务器的简要说明和提示。 常见端口号 打开/usr/local/tomcat/conf/server.xml文件在Tomcat的配置文件中可以看到多个容器的标签内都有Port的属性 这个Port属性就定义了在某个阶段监听的端口号下面一一列出重要的端口号 端口号 说明 8005 只能在本地用命令行关闭Tomcat服务的端口 8009 Tomcat服务器通过Connector连接器组件与客户程序建立连接使用的端口 8080 Tomcat的web服务端默认端口号HTTP 8443 访问Tomcat的HTTPS的端口 发布站点 这里我们要通过基于域名的虚拟主机发布两个站点先创建存放第一个站点的目录www新建index.jsp文件添加www.benet.com内容 再创建bbs站点步骤同上 [rootlocalhost tomcat]# cd webapps/ [rootlocalhost webapps]# mkdir www [rootlocalhost webapps]# cd www [rootlocalhost www]# vim index.jsp www.benet.com [rootlocalhost www]# cd .. [rootlocalhost webapps]# mkdir bbs [rootlocalhost webapps]# cd bbs [rootlocalhost bbs]# vim index.jsp bbs.benet.com 打开配置文件 [rootlocalhost ~]# vim /usr/local/tomcat/conf/server.xml 在tomcat的配置文件中添加站点在第148行可以看到Host容器修改name属性的域名为www.benet.com添加Context上下文标签指定该域名的网页文件位置开启自动重载然后再创建一个Host标签修改name等参数用于第二个站点的发布 Context标签内的path属性的作用是虚拟路径指定了在Web服务器上访问该Web应用程序的路径如果 path 设置为 空则该应用程序将作为根应用程序处理。如果设置为 /myapp则用户访问http://www.benet.com/myapp地址时该站点才会可用reloadable当类的内容发行改动时会自动重载而不需要人为重启 Host namewww.benet.com appBasewebappsunpackWARstrue autoDeploytrue Context docBase/usr/local/tomcat/webapps/www path reloadabletrue /Valve classNameorg.apache.catalina.valves.AccessLogValve directorylogsprefixwww_access_log suffix.txtpattern%h %l %u %t quot;%rquot; %s %b //HostHost namebbs.benet.com appBasewebappsunpackWARstrue autoDeploytrueContext docBase/usr/local/tomcat/webapps/bbs path reloadabletrue /Valve classNameorg.apache.catalina.valves.AccessLogValve directorylogsprefixbbs_access_log suffix.txtpattern%h %l %u %t quot;%rquot; %s %b //Host 首先关闭防火墙允许tomcat流量通过。最后运行tomcat的bin目录下的startup.sh启动tomcat [rootlocalhost tomcat]# systemctl stop firewalld [rootlocalhost tomcat]# cd bin/[rootlocalhost bin]# ./startup.sh [rootlocalhost bin]# netstat -anpt | grep java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 19470/java tcp6 0 0 :::8009 :::* LISTEN 19470/java tcp6 0 0 :::8080 :::* LISTEN 19470/java 使用Linux或Windows主机都可以测试但前提是在主机上的Hosts文件添加对应解析条目 192.168.10.101 www.benet.com bbs.benet.com 使用域名:端口号的方式来访问Tomcat服务器 JMeter压力测试 JMeter是基于JAVA开发的压力测试软件。用于在Windows系统上运行在短时间内向服务器发送大量请求来测试服务器压力承受的能力 打开一台Win10虚拟机或直接在宿主机上测试解压apachejmeter31.zip软件包进入bin目录下双击运行jmeter.bat批处理文件启动该工具 首先添加一个用户线程组 线程数每个线程代表一个虚拟用户将线程组的进程数设置为100JMeter将会模拟100个并发用户同时对目标系统进行请求这里用我们使用4000个线程 Ramp-up Periodin seconds每秒钟1个线程发送多少个请求 那么请求总量就是4000 * 20 80000也就是说总共向服务器在短时间内发送80000个请求让服务器来响应 右键测试计划是针对整个测试计划添加聚合报告和图形结果用于显示整个测试计划的测试结果 添加测试的请求 写入要测试的域名和端口号 测试该线程组时时可以把针对整个测试计划的图形结果和聚合报告删除右键线程组添加只针对线程组的聚合报告和图形结果 最终效果如下 然后右键线程组选Start 如果是第一次测试会提示你保存该线程组方便以后使用然后压力测试就已经开始了 当上方的箭头图标变绿了以后代表测试已经结束可以查看结果报告 打开聚合报告会显示出测试结果把优化前的测试结果截图保存用于和一会优化后的结果对比 Tomcat优化 打开tomcat配置文件 [rootlocalhost ~]# cd /usr/local/tomcat/conf/ [rootlocalhost conf]# vim server.xml 将连接器改为以下内容进行优化 Connector port8080 protocolHTTP/1.1connectionTimeout20000redirectPort8443 minSpareThreads50enableLookupsfalse disableUploadTimeouttrueacceptCount300 maxThreads500 processorCache500URIEncodingUTF-8 compressiononcompressionMinSize2048 compressableMimeTypetext/html,text/xml,text/javascript,text/css,tex t/plain,image/gif,image/jpg,image/png / 参数 说明 connectionTimeout20000 指定了连接超时时间单位是毫秒。在20秒内如果连接没有建立成功则超时。 redirectPort8443 指定了当需要进行重定向时使用的端口号一般用于HTTPS协议的情况这里是8443端口 minSpareThreads50 指定了最小空闲线程数。Tomcat会尽量保持至少这么多个线程处于空闲状态以备处理新的请求。 enableLookupsfalse 设置是否允许DNS查询。这里设置为false表示不允许Tomcat对客户端的IP地址进行DNS查询。 disableUploadTimeouttrue 禁用上传超时。设置为true时Tomcat将不会对上传操作设置超时限制。 acceptCount300 指定了在处理满负荷的情况下能接受的最大连接请求数。当达到这个数目后新的连接请求将会被拒绝。 maxThreads500 指定了连接器处理的最大线程数。当达到这个数目时新的连接请求会进入等待队列如果已满则会拒绝连接 processorCache500 指定了处理器缓存的大小。Tomcat在内部使用处理器对象池来重复使用已经创建的处理器。这里设置为500表示最多可以缓存500个处理器对象。 URIEncodingUTF-8 指定了URL的编码格式。这里设置为UTF-8 compressionon 启用响应内容的压缩功能 compressionMinSize2048 设置触发压缩的最小响应内容大小单位是字节。当响应内容大于这个值时才会进行压缩 compressableMimeType 指定可以进行压缩的MIME类型 重启tomcat [rootlocalhost conf]# ../bin/shutdown.sh [rootlocalhost conf]# ../bin/startup.sh 先访问tomcat能否在浏览器正常访问确保修改后的配置文件能够正常运行tomcat 优化前后对比 确保修改的配置文件能够正常运行tomcat后可以进行优化的压力测试此时打开JMeter工具 第二次测试之前先清除全部否则第二次测试的结果会和第一次的重叠 右键线程组 ——》Start 开始压力测试 待上方箭头图标变成绿色之后表示测试结束 此时将优化后的聚合报告也截图保存然后放到Word文档里可以进行对比 参数 说明 Label 表示每个HTTP请求或事务的名称或标识。用来区分不同请求或事务的名称。 Samples 表示测试中一共发出了多少个请求单位一般为毫秒 Average 平均响应时间越小越好 Median 中位数也就是 50 用户的响应时间 90% Line 90 用户的响应时间 95% Line 95 用户的响应时间 99% Line 99% 用户的响应时间 Min 最小响应时间 Max 最大响应时间 Error % 本次测试中出现错误的请求的数量/请求的总数 Throughput 吞吐量表示每秒完成的请求数。单位是请求/秒 Received KB/sec 每秒接收的数据量单位是KB/秒。 Sent KB/sec 每秒发送的数据量单位是KB/秒。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎样进入外贸公司网站曲靖企业网站

不知道你有没有看过凯瑟琳泽塔琼斯主演的《偷天陷阱》,里面主题思想是用银行结算系统的千年虫bug,精心设计,盗取银行几十亿的精彩动作片。所谓2000 年千禧年的千年虫,其实就是计算机计算闰年的bug。 这个闰年计算的历史源远流长&…

怎么用flash做视频网站如何注册公司企业邮箱

Fedora 36今天发布,这是最近一段时间以来又一个强大、前沿而又稳定可靠的Linux发行版本,除了这些特点外,Fedora 36还在原先的基础上增加了新的功能和细节打磨。 Fedora 36使用GNOME 42作为其默认的Fedora工作站桌面环境。 OpenSSL 3.0&#x…

免费微信网站制作便民的网站app怎么做

这也许是你一直期待的文章,在关注这部分技术问题的同时,请务必阅读有关面试中有关个人的问题和解答。和猎萝卜小编来一起了解。这里的回答并不是十分全面,这些问题可以通过多个角度来进行解释,也许你不必在面试过程中给出完全详尽…

美团网网站建设分析陕西省建设监理协会官网站

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 带有动画效果的折叠面板(Accordion)⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个…

网站建设考虑事项做信公众号首图的网站

通过IP地址定位,可以获取一些基本的信息,包括以下内容: 1. 地理位置:你可以确定IP地址所在的地理位置,包括国家、州或省、城市和地理坐标。这通常是通过将IP地址与地理位置数据库进行匹配来实现的。 2. ISP&#xff…

云建设网站怎样建立俄罗斯网站

Hello,今天我们分享一些关于C入门的知识,看完至少让你为后面的类和对象有一定的基础,所以在讲类和对象的时候,我们需要来了解一些关于C入门的知识。 什么是C C语言是结构化和模块化的语言,适合处理较小规模的程序。对…

洛阳php网站开发什么是域名系统 网站建设教程

2014-02-0610325 0C# 檢舉文章 過年結束了,雖然還是學生所以其實還有兩個禮拜的假期,不過為了不讓自己發慌,趁著假期多利用充實自己,所以提早回到開工狀態,而這次總算要把一直說的自己動手繪製猜色直方圖文章寫出。 …

药学专业网站wordpress全是博客

迁移的初衷本人平时是做.net相关的工作,对于.net技术栈也有一些了解,自从新的.net能够跨平台之后,之前也有跨平台的ui框架Xamarin,现在微软推出了.NET MAUI这个说是 统一了开发体验,而且都RC版本了,所以本人…

网站改版设计思路网站建设安全性

转载于:https://www.cnblogs.com/dabaopku/archive/2012/05/08/2490164.html

怎么创建一个公司网站wordpress session 表

1 简介 开发者通过调用Camera Kit(相机服务)提供的接口可以开发相机应用,应用通过访问和操作相机硬件,实现基础操作,如预览、拍照和录像;还可以通过接口组合完成更多操作,如控制闪光灯和曝光时间、对焦或调焦等。 2 …

湖南平台网站建设公司酒店预订网站模板

同时两个朋友发来的,打开了还挺有意思。在新年到来的最后一天,收到这个小小的礼物还是很高兴,说明人家还记得你,常说君子之交淡如水,水其实我们不缺,我们往往缺的就是一句小小的问候,并且在一个…

做网站代理商好赚吗?网站建设与管理 期末

XML Schema中的elementFormDefault,用以指明xml的元素是否必须有命名空间的前缀。 它的取值可以为qualified、或者unqualified。默认值为unqualified。 当取值为qualified时,xml元素前必须有命名空间作为前缀; 当取值为unqualified时&#x…

河北建设厅录入业绩的网站wordpress移动端页面

无需转发 免费获取2023国赛模板,获取方式见文末 模板文件预览如下: 模板参考格式如下: (题目)XXXXXX 摘 要: 开头段:需要充分概括论文内容,一般两到三句话即可,长度控…

太仓做网站的公司息县网站建设

kotlin提供了过滤集合很方便过滤集合中特定的元素 1 如果是同一种类型的操作,建议使用filter 或者是partition 例如过滤出字符长度大于3的元素 使用partition val numbers listOf("one", "two", "three", "four")val …

毕业设计做系统网站好简单软件开发工具

注册表类: 普通注册表后门 在一般用户权限下,通常是将要执行的后门程序或脚本路径填写到如下注册表的键值中HKCU\Software\Microsoft\Windows\CurrentVersion\Run,键名任意。普通权限即可运行 cmd下操作: reg add "HKEY_…

wordpress 资源站主题群晖wordpress

Ubuntu22部署MySQL5.7详细教程 一、下载MySQL安装包二、安装MySQL三、启动MySQL检查状态登录MySQL 四、开启远程访问功能1、允许其他主机通过root访问数据库2、修改配置文件,允许其他IP通过自定义端口访问 五、使用Navicat连接数据库 默认情况下,Ubuntu2…

大连城乡住房建设厅网站源码网站下载

1.《大学计算机》课程与其它类似的课程有什么不同?《大学计算机》是面向大学一年级学生开设的计算机通识类课程,类似的还有《大学计算机基础》、《计算机应用基础》,或者《计算机文化基础》、《信息技术基础》等课程,它和这些不同…

门户网站做商城的无锡做网站的企业

这个一个比较低级的问题,为避免两次犯这样的低级错误,特此记录。 发生这个问题的原因是未包含头文件,例如: test.h //在头文件中声明了导出函数test() #ifdef __cplusplus extern "C" { #endif /*__cplusplus 1*/ext…

外贸论坛网站有哪些阿里巴巴网站优化

1.证书 cer文件需要上传电脑CSR文件,所以其他电脑如需使用需要创建者导出,用于在项目在真机运行或archive的时候签名,Code Signing Identity. 项目App ID,Provisioning Profile只要有管理员权限就可以申请,与cer文件对…