Tomcat

客户端会话技术--Cookie

给你一囗甜甜゛ 提交于 2020-10-18 06:32:46
客户端会话技术--Cookie 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 概念 客户端会话技术,将数据保存到客户端 快速入门 创建Cookie对象,绑定数据 new Cookie(String name, String value) 发送Cookie对象 response.addCookie(Cookie cookie) 获取Cookie,拿到数据 Cookie[] request.getCookies() 实现原理 基于响应头set-cookie和请求头cookie实现 cookie的细节处理 一次可不可以发送多个cookie? 可以 可以创建多个Cookie对象,使用response调用多次addCookie方法发送cookie即可。 cookie在浏览器中保存多长时间? 默认情况下,当浏览器关闭后,Cookie数据被销毁 持久化存储: setMaxAge(int seconds) 正数:将Cookie数据写到硬盘的文件中。持久化存储。并指定cookie存活时间,时间到后,cookie文件自动失效 负数:默认值 零:删除cookie信息 cookie能不能存中文? 在tomcat 8 之前 cookie中不能直接存储中文数据。 需要将中文数据转码---一般采用URL编码(%E3) 在tomcat 8

Spring Boot 2.3 优雅关闭新姿势,真香!

最后都变了- 提交于 2020-10-18 03:23:31
最新的 Spring Boot 2.3 发布快半个月了: https://spring.io/blog/2020/05/15/spring-boot-2-3-0-available-now 其中有个新特性叫: Graceful shutdown(优雅关闭) 之前也分享过这样的文章,现在竟然出品官方姿势了,新功能嘛,肯定得去官方看下,下面是官方的说明: Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and Servlet-based web applications. When a grace period is configured, upon shutdown, the web server will no longer permit new requests and will wait for up to the grace period for active requests to complete. 下面,栈长给大家总结下: 优雅关闭支持所有 4 个嵌入式 Web 服务器:Jetty, Reactor Netty, Tomcat, Undertow

2020年的Java程序员如何才能做到不接私活也能月薪40k?

流过昼夜 提交于 2020-10-17 13:49:48
接私活 对程序员这个圈子来说是一个既公开又隐私的话题,不说全部,应该大多数程序员都有过想要接私活的想法,当然,也有部分得道成仙的不主张接私活。但是很少有人在公开场合讨论私活的问题,似乎都在避嫌。就跟有人下班后跑滴滴一样,程序员私有时间接点活挣点钱不也很正常么,不过不要在上班时间就行,就跟你上班期间出去跑滴滴一样。 但是我是不建议接私活的,接私活会浪费自己在一大部分的精力, 就算不接私活,利用好工作后的八小时也能比别人强,月薪也绝对不会比那些接私活的少。 把有限的时间花在提升自己的能力上,技术深度,技术广度,或者多阅读书籍,丰富自己,这样有可能比做外包收益大。 回想自己做开发的这八年多,我获得了很多,技术能力、培训、出国、大公司的,还记得刚刚出来第一年那段时间,太多东西不懂的,我都是一切听从老大的安排,敲敲代码,看看数据库,测试自己和别人的代码;这样干了一年 第二年的时候我就在想,自己还要这样吗? 当然是否定的,不可能的,一年的经验自己完全可以入行了,是时候该学习怎么进行需求分析,怎么设计数据库,怎么写各类文档,怎么写更好的代码? 所以说:一个人在一家公司呆久了,千万不要模式化,一直待着舒适区,因为当你一旦离开这家公司,找工作的时候就会很容易碰壁,在这里:我建议大家一定要提前计划着去学习 ... 我在这里给那些想达到这个高度甚至想往架构师发展的程序员提供一份进阶路线图

JVM干货!最全最详细的JVM性能优化专题

雨燕双飞 提交于 2020-10-17 08:48:26
俗话说,路要一步一步走,饭要一口一口吃。我们学java的也一样,不能上来就给你上那些消息队列呀,分布式架构思维那种文章。 对vm-性能优化不太熟悉,掌握不透彻的小伙伴可以借此学习一下。对vm-性能优化很熟悉,掌握很好的小伙伴可以当作复习巩固,写的不一定你们都会哟! 话不多说,咱们直接上干货! 类加载机制深度剖析 1、类加载过程 多个java文件经过编译打包生成可运行jar包,最终由java命令运行某个主类的main函数启动程序,这里首先需要通过类加载器把主类加载到JVM。 主类在运行过程中如果使用到其它类,会逐步加载这些类。 注意,jar包里的类不是一次性全部加载的,是使用到时才加载。 类加载到使用整个过程有如下几步: 加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载 加载:在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的main()方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口 验证:校验字节码文件的正确性 准备:给类的静态变量分配内存,并赋予默认值 解析:将符号引用替换为直接引用,该阶段会把一些静态方法(符号引用,比如main()方法)替换为指向数据所存内存的指针或句柄等(直接引用),这是所谓的静态链接过程(类加载期间完成)

牛掰!Spring Boot 2.3.0 新特性:如何优雅停机?

北城以北 提交于 2020-10-17 02:47:37
1.什么是优雅停机 先来一段简单的代码,如下: @RestController public class DemoController { @GetMapping("/demo") public String demo() throws InterruptedException { // 模拟业务耗时处理流程 Thread.sleep(20 * 1000L); return "hello"; } } 当我们流量请求到此接口执行业务逻辑的时候,若服务端此时执行关机 (kill),spring boot 默认情况会直接关闭容器(tomcat 等),导致此业务逻辑执行失败。在一些业务场景下:会出现数据不一致的情况,事务逻辑不会回滚。 2.graceful shutdown 在最新的 spring boot 2.3 版本,内置此功能,不需要再自行扩展容器线程池来处理,目前 spring boot 嵌入式支持的 web 服务器(Jetty、Reactor Netty、Tomcat 和 Undertow)以及反应式和基于 Servlet 的 web 应用程序都支持优雅停机功能。我们来看下如何使用: 当使用 server.shutdown=graceful 启用时,在 web 容器关闭时,web 服务器将不再接收新请求,并将等待活动请求完成的缓冲期。 3.配置体验 此处支持的 shutdown

SpringBoot读取Resource下文件的几种方式

社会主义新天地 提交于 2020-10-16 18:23:05
最近在项目中涉及到Excle的导入功能,通常是我们定义完模板供用户下载,用户按照模板填写完后上传;这里待下载模板位置为resource/excelTemplate/test.xlsx,尝试了四种读取方式,并且测试了四种读取方式分别的windows开发环境下(IDE中)读取和生产环境(linux下jar包运行读取)。 第一种: ClassPathResource classPathResource = new ClassPathResource ( "excleTemplate/test.xlsx" ) ; InputStream inputStream = classPathResource . getInputStream ( ) ; 第二种: InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("excleTemplate/test.xlsx"); 第三种: InputStream inputStream = this . getClass ( ) . getResourceAsStream ( "/excleTemplate/test.xlsx" ) ; 第四种: File file = ResourceUtils . getFile (

NIO在Tomcat中的应用

允我心安 提交于 2020-10-16 13:00:46
对NIO的理解 个人单方面认为,NIO与BIO的最大区别在于主动和被动,使用BIO的方式需要等待被调用方返回数据,很明显此时调用者是被动的。 举个例子 阻塞IO 假设你是一个胆小又害羞的男孩子,你约了隔壁测试的妹子,但你并不敢主动约会,所以你把自己的手机号码给她,并暗示她想要约会的时候打电话给你。很明显此时你陷入了被动,约不约会的结果需要妹子主动告知你,如果她忘了,那么你要陷入长时间的等待中以及无尽的猜测和自我怀疑中(太惨了)。[如果你是一个胆小害羞又好色的男孩子,那就惨了] 非阻塞IO 我们知道,渣男通常有很多的备胎,我管这个叫做 备胎池(SpareTirePool) , 那么当他想要约会的时候,只要群发问妹子要不要约会,如果要约会的话就和妹子约会,约会结束之后,处理其他约会事件,如果没有继续下一次询问。在这个例子中约会可以视为IO事件,问妹子的过程可以视为备胎池的轮询。 如果你要学习NIO,可以 学习 Tomcat 如何使用NIO 既然是网络通信的I/O那必然有以下两个步骤 SeverSocket的启动 I/O事件的处理 关键代码在 package org.apache.tomcat.util.net.NioEndpoint 中 P.S. 文章太长,如果不想看可以直接阅读结论 ServerSocket的启动 在最开始看代码,是震惊的,真的,如果你看Reactor模型的话

Server Tomcat v8.0 Server at localhost failed to start 问题解决方法?

a 夏天 提交于 2020-10-16 10:32:40
Server Tomcat v8.0 Server at localhost failed to start 问题解决方法? 参考文章: (1)Server Tomcat v8.0 Server at localhost failed to start 问题解决方法? (2)https://www.cnblogs.com/liumce/articles/7746380.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4325541/blog/4503939

我在搜刮了全网的Java学习分享后,精选了这些最强干货!!

扶醉桌前 提交于 2020-10-15 05:20:20
内容包含:Spring boot、Spring cloud、Dubbo、Redis、ActiveMQ、Nginx、Mycat、Spring、MongoDB、ZeroMQ、Git、Nosql、Jvm、Mecached、Netty、Nio、Mina、性能调优、高并发、tomcat 负载均衡、大型电商项目实战、高可用、高可扩展、数据库架构设计、Solr 集群与应用、分布式实战、主从复制、高可用集群等。 有想获取以下干货视频资料的朋友:点赞+关注后,私信【Java干货】就可以了(一定要记得关注我,不然没办法回复陌生人私信) 学习路线图 坦克大战 干货视频,高级架构师最新java、spring、Redis、JVM、分布式、高并发。里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring,MyBatis,Netty源码分析,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点高级进阶干货 来源: oschina 链接: https://my.oschina.net/u/4389867/blog/4650809