Tomcat

servlet的url-pattern匹配规则

点点圈 提交于 2020-10-21 18:01:53
  首先需要明确几容易混淆的规则: servlet容器中的匹配规则既不是简单的通配,也不是正则表达式,而是特定的规则。所以不要用通配符或者正则表达式的匹配规则来看待servlet的url-pattern。 Servlet 2.5开始,一个servlet可以使用多个url-pattern规则,<servlet-mapping>标签声明了与该servlet相应的匹配规则,每个<url-pattern>标签代表1个匹配规则; 当servlet容器接收到浏览器发起的一个url请求后,容器会用url减去当前应用的上下文路径,以剩余的字符串作为servlet映射,假如url是http://localhost:8080/appDemo/index.html,其应用上下文是appDemo,容器会将http://localhost:8080/appDemo去掉,用剩下的/index.html部分拿来做servlet的映射匹配 url-pattern映射匹配过程是有优先顺序的 而且当有一个servlet匹配成功以后,就不会去理会剩下的servlet了。 一、四种匹配规则 1 精确匹配    <url-pattern>中配置的项必须与url完全精确匹配。 < servlet-mapping > < servlet-name > MyServlet </ servlet-name > < url

后端程序员必备的 Linux 基础知识+常见命令(近万字总结)

爱⌒轻易说出口 提交于 2020-10-21 17:22:05
大家好!我是 Guide 哥,Java 后端开发。一个会一点前端,喜欢烹饪的自由少年。 今天这篇文章中简单介绍一下一个 Java 程序员必知的 Linux 的一些概念以及常见命令。 如果文章有任何需要改善和完善的地方,欢迎在评论区指出,共同进步!笔芯! 1. 从认识操作系统开始 正式开始 Linux 之前,简单花一点点篇幅科普一下操作系统相关的内容。 1.1. 操作系统简介 我通过以下四点介绍什么是操作系统: 操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石。 操作系统本质上是一个运行在计算机上的软件程序 ,用于管理计算机硬件和软件资源。 举例:运行在你电脑上的所有应用程序都通过操作系统来调用系统内存以及磁盘等等硬件。 操作系统存在屏蔽了硬件层的复杂性。 操作系统就像是硬件使用的负责人,统筹着各种相关事项。 操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理 。 内核(Kernel)在后文中会提到。 1.2. 操作系统简单分类 1.2.1. Windows 目前最流行的个人桌面操作系统 ,不做多的介绍,大家都清楚。界面简单易操作,软件生态非常好。 玩玩电脑游戏还是必须要有 Windows 的,所以我现在是一台 Windows 用于玩游戏,一台 Mac

阿里大牛整理的阿里Java岗位从P5-P7的成长笔记【总共3283页PDF文档】

此生再无相见时 提交于 2020-10-21 14:32:57
今年的金九银十已经过去一大半了,在这其中参与过不少面试,2020都说工作不好找,这也是对开发人员的要求变向的提高了。 之前在Github上收获45K+star的Java核心神技(这参数,质量多高就不用我多说了吧)非常全面, 包含基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据结构等等内容 非常丰富,已经帮很多人拿下互联网一线公司的offer Java架构师成长笔记: 首先肯定是Java基础复习 SpringBoot快速上手 Web编程探索 SSM从入门到精通 戳这里免费领取,暗号:CSDN 1-3年高级工程师 微服务 并发编程进阶 戳这里免费领取,暗号:CSDN 深入Tomcat底层 JVM深度剖析 3-5年资深高级架构师 中间件&分布式 数据库 戳这里免费领取,暗号:CSDN Spark 除了这套pdf文档,我还为大家准备了一套体系化的架构师学习资料包以及BAT面试资料,供大家参考及学习, 戳这里免费领取,暗号:CSDN 已经将知识体系整理好(源码,笔记,PPT,学习视频)免费领取。 戳这里免费领取,暗号:CSDN 我已经把这些技术好文+面试题和架构视频,放在我的Java架构技术资源群里,群里会各种PDF书籍,也有资深HR可以推荐工作

frp做内网穿透访问家里的Web网站

我怕爱的太早我们不能终老 提交于 2020-10-21 14:30:04
导读 大厂云做活动经常是1H 1G 1M的带宽,机器性能有限,如果web业务稍微大一些,可能连Mysql都跑不动。我们可以利用frp做内网穿透去访问家用电脑上的web服务。至少家用电脑是真材实料的物理核心。也可以充分利用带宽。 服务器端配置 服务器端的配置,参考之前的文章: 用FRP做内网穿透使用远程桌面连接家里的windows电脑 。参考之前的文章,在之前文章的基础上再加一个"vhost_http_port"参数,用于接收 HTTP 请求。服务器端的防火墙或者宝塔面板之类的,放行frp用到的端口。 需要额外注意,这里的演示的服务器端我用nginx监听了80端口,把来自域名的访问转发到frps使用的8080端口 。当然你也可以直接让frps使用80端口。 [common] bind_addr=0.0.0.0 bind_port = 7000 vhost_http_port = 8080 token=12310086 dashboard_port = 7500 dashboard_user = admin dashboard_pwd = admin123 用 frps执行修改的文件 ./frps -c frps.ini 内网提供Web服务的机器设置 内网提供Web端机器设置如下 [common] server_addr = 服务器IP server_port = 7000 token

掏空各大厂面试题库的“380JAVA面试题(性能优化+微服务+并发编程+开源框架+分布式)”跳槽大厂必备!

丶灬走出姿态 提交于 2020-10-21 13:33:43
一、性能优化面试专栏 1.1、tomcat性能优化整理 1.2、JVM性能优化整理 1.3、Mysql性能优化整理 二、微服务架构面试专栏 2.1、SpringCloud面试整理 2.2、SpringBoot面试整理 2.3、Dubbo面试整理 三、并发编程高级面试专栏 四、开源框架面试题专栏 4.1、Spring面试整理 4.2、SpringMVC面试整理 4.3、MyBatis面试整理 五、分布式面试专栏 5.1、分布式限流面试整理 5.2、分布式通讯面试整理 5.3、分布式数据库面试整理 由于文章字数原因,完整资料不能全部上传,我已经整理了一份PDF,需要的朋友可以一键三连后:“加我VX小助理”来免费获取到! 来源: oschina 链接: https://my.oschina.net/u/4367923/blog/4682501

OLAP数据库ClickHouse,补充你的弹药库

戏子无情 提交于 2020-10-20 04:13:54
ClickHouse是由俄罗斯搜索引擎公司Yandex公司开源的OLAP数据库,性能表现优异,官方的基准测试中,平响速度是Hive的126倍,MySQL的429倍。 从2016年开源以来,飞速发展,在官网的使用者列表里,你会发现有许多国内互联网公司在用,有云产品、日志产品、银行数据分析等等。每个后面都会有相对应的PPT或视频。 官网在介绍ClickHouse是什么时,用下面两张图形象的来传达一个「列式」数据库带来的查询速度的提升,以及在OLAP是多么的合适。 短短几年的发展,从DB-Engines上的这条红线就能看出势头迅猛 除了基础数据类型外,ClickHouse还提供了对复合数据类型的支持,像数组、元组、枚举和嵌套,通过 array、json、tuple、set等复合数据类型,业务Schema 能更灵活。 由于ClickHouse设计之初,就是OLAP的需求,所以提供的特性,自然契合和满足OLAP的场景,比如下面的特点: 读多于写 不同于事务处理(OLTP)的场景,比如电商场景中加购物车、下单、支付等需要在原地进行大量insert、update、delete操作,数据分析(OLAP)场景通常是将数据批量导入后,进行任意维度的灵活探索、BI工具洞察、报表制作等。数据一次性写入后,分析师需要尝试从各个角度对数据做挖掘、分析,直到发现其中的商业价值、业务变化趋势等信息

这一次搞懂SpringBoot核心原理(自动配置、事件驱动、Condition)

孤者浪人 提交于 2020-10-19 08:52:20
@ 目录 前言 正文 启动原理 事件驱动 自动配置原理 Condition注解原理 总结 前言 SpringBoot是Spring的包装,通过自动配置使得SpringBoot可以做到开箱即用,上手成本非常低,但是学习其实现原理的成本大大增加,需要先了解熟悉Spring原理。如果还不清楚Spring原理的,可以先查看博主之前的文章,本篇主要分析SpringBoot的启动、自动配置、Condition、事件驱动原理。 正文 启动原理 SpringBoot启动非常简单,因其内置了Tomcat,所以只需要通过下面几种方式启动即可: @SpringBootApplication(scanBasePackages = {"cn.dark"}) public class SpringbootDemo { public static void main(String[] args) { // 第一种 SpringApplication.run(SpringbootDemo .class, args); // 第二种 new SpringApplicationBuilder(SpringbootDemo .class)).run(args); // 第三种 SpringApplication springApplication = new SpringApplication