• 负载均衡集群中的session解决方案
    1.什么是Session1.1 什么是Session用户使用网站的服务,基本上需要浏览器与Web服务器的多次交互。HTTP协议本身是无状态的,需要基于HTTP协议支持会话状态(Session State)的机制。而这样的机制应该可以使Web服务器从多次单独的HTTP请求中看到”会话”,也就是知道哪些请求来自哪个会话的。具体实现方式为:在会话开始时,分配一个唯一的会话标识(SessionId),通过Cookie把这个标识告诉浏览器,以后每次请求的时候,浏览器都会带上这个会话标识来告诉Web服务器请求是属于哪个...
  • 29 个问答带你梳理 Spring !
    作 者:Java架构资源分享来 源:my.oschina.net/u/3779583/blog/1835233广而告之:由于此订阅号换了个皮肤,系统自动取消了读者的公众号置顶。导致用户接受文章不及时。可以打开订阅号,选择置顶(标星)公众号,重磅干货,第一时间送达!1、什么是 Spring 框架?Spring 框架有哪些主要模块? Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。Spring 帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序...
  • Web网站架构演变历程
    点击上方“后端技术精选”,选择“置顶公众号”技术文章第一时间送达!作者:小Mcnblogs.com/xiaoMzjm/p/5223799.html前言我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。该系统具备的功能:用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和管理阶段一、单机构建网站网站的初期,我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器,如tomcat、jetty、jboos,然后直接使用JSP/servlet技术,或者使用一些...
  • Web网站架构演变历程
    作者:小Mcnblogs.com/xiaoMzjm/p/5223799.html前言我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。该系统具备的功能:用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和管理阶段一、单机构建网站网站的初期,我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器,如tomcat、jetty、jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架如maven+spring+struct+hiberna...
  • 手把手教你用 Docker 部署网站[Docker 系列-8]
    大家好,我是本周的值班编辑 江南一点雨 ,本周将由我为大家排版并送出技术干货,大家可以在公众号后台回复“java”,获得作者 Java 知识体系/面试必看资料。在实际的开发环境或者生产环境,容器往往都不是独立运行的,经常需要多个容器一起运行,此时,如果继续使用 run 命令启动容器,就会非常不便,在这种情况下,docker-compose 是一个不错的选择,使用 docker-compose 可以实现简单的容器编排,本文就来看看 docker-compose 的使用。本文是 Docker 系列第八篇,阅读前...
  • SpringBoot整合web容器
    Spring是为简化Java开发而生的。与传统的如Sturts这样的框架相比,它采用最小侵入编程,让开发者更少的感知到它的存在。随着Spring越来越强大,Spring体系也越来越复杂。为了化解戴着镣铐跳舞的窘境,产生了SpringBoot。SpringBoot的理念是约定大于配置。大家都这么用,有了规范,一切就容易多了。这就实现了一个标准化->流程化->工具化的跃迁。复杂度大大降低。但是一般一个web工具,引用一个jar包是搞不定的。依赖的冲突问题仍然是一个业界痛点。一般一个web项目使用SpringBo...
  • 浅谈中间件漏洞与防护
    中间件漏洞可以说是最容易被web管理员忽视的漏洞,原因很简单,因为这并不是应用程序代码上存在的漏洞,而是属于一种应用部署环境的配置不当或者使用不当造成的。那么从实际情况来看,预防这种漏洞最大的难点,在于中间件安全该由谁负责?  我们在处理应急响应事件时经常遇到这么一种情况,客户网站代码是外包的,也就是第三方公司负责开发,而部署可能是由客户内部运维人员负责。暂不说他们对于中间件安全的重视程度与了解程度,只谈发现漏洞后如何处理,便是一团乱。开发商推卸说这并不是代码上的问题,他们完全是按照安全开发流程(SDL)走...
  • 27道高频Spring面试题,你能答对几个?
    点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!坚持看完,文末福利等你本文节选自 《Spring 5核心原理与30个类手写实战》一书,谭勇德(Tom) 著,电子工业出版社出版。本书基于编程开发实践,不仅深度解析Spring 5的原理与新特性,更从环境准备、顶层结构设计、数据访问等方面一步步地推导出Spring的设计原理。在每个知识点上,均以大量的经典代码案例辅助讲解,使理论紧密联系实际。最后手写30个类,以体会Spring作者的创作过程,让每一位读者学以致用。1、什么是Spring框架,Sp...
  • 用了这么多年 Spring MVC,你真的了解它吗?
    吐血推荐今天,正式介绍一下Java极客技术知识星球Spring 源码分析:不得不重视的 Transaction 事务Spring 源码学习(八) AOP 使用和实现原理这么火的 OKR,你不了解下?Java:控制反转(IoC)与依赖注入(DI)经过前面的 AOP(面向切面编程) 和 Transaction(事务管理),这次来到了 MVC(Web 应用,进行请求分发和处理)Spring MVC 定义:分离了控制器(Controller)、模型(Model)、分配器(Adapter)、视图(View)和处理程序...
  • 玩转 Tomcat 配置必备的 10 个小技巧!
    点击上方蓝色字体,选择“置顶公众号”优质文章,第一时间送达作者:Jason Brittain & Ian F. Darwin出处:http://www.orielly.com/ 译者:陈光 现在开发Java Web应用,建立和部署Web内容是一件很简单的工作。使用Jakarta Tomcat作为Servlet和JSP容器的人已经遍及全世界。Tomcat具有免费、跨平台等诸多特性,并且更新得很快,现在非常的流行。 你所需要做的就是:按照你的需求配置Tomcat,只要你正确配置,Tomcat一般都能适合你的要求...
  • 盘点一下企业最常用的几个 Spring Boot Starter
    Spring Boot让我们的Spring应用变的更轻量化。SpringBoot运行开发工具:jdk8,IDEA,STS,eclipse这些都支持快速启动SpringBoot工程。首先只用maven我们创建的maven工程直接以jar包的形式创建就行了,首先我们来引入SpringBoot的依赖首先我们需要依赖SpringBoot父工程,这是每个项目中必须要有的。@SpringBootApplication:之前用户使用的是3个注解注解他们的main类。由于这些注解一般都是一起使用,spring boot提供了一个统一的注解@SpringBootApplication。整合JdbcTemplate引入依赖: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> </parent> <dependencies> <!--引入WEB模块--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!
  • 为什么要放弃 JSP ?
    控制层负责接收参数,调用相关业务层,封装数据,以及路由到 JSP 页面。这就是为什么,越是大中型的 Web 应用,他们越是要解耦。使用 JSP 的痛点动态资源和静态资源全部耦合在一起,无法做到真正的动静分离。第一次请请求 JSP,必须要在 Web 服务器中编译成 Servlet,第一次运行会较慢。每次请求 JSP 都是访问 Servlet 再用输出流输出的 html 页面,效率没有直接使用 html 高。如果 JSP 中的内容很多,页面响应会很慢,因为是同步加载。减少后端服务器的并发压力,除了接口以外的其他所有 http 请求全部转移到前端 nginx
  • 详解http报文(2)-web容器是如何解析http报文的
    摘要在详解http报文一文中,详细介绍了http报文的文本结构。本文以jetty和undertow容器为例,来解析web容器是如何处理http报文的。在前文中我们从概览中可以了解到,http报文其实就是一定规则的字符串,那么解析它们,就是解析字符串,看看是否满足http协议约定的规则。start-line: 起始行,描述请求或响应的基本信息*: 头CRLF[message-body]: 消息body,实际传输的数据jetty以下代码都是jetty9.4.12版本如何解析这么长的字符串呢,jetty是通过状态机来实现的。具体可以看下 org.eclipse.jetty.http.HttpParse类 public enum State { START, METHOD,!w=1202&h=630&f=png&s=101034), SPACE1, STATUS, URI, SPACE2, REQUEST_VERSION, REASON, PROXY, HEADER, CONTENT, EOF_CONTENT, CHUNKED_CONTENT, CHUNK_SIZE, CHUNK_PARAMS, CHUNK, TRAILER, END, CLOSE, // The associated stream/endpoint should be closed CLOSED // The associated stream/endpoint is at EOF }总共分成了21种状态,然后进行状态间的流转。
  • 超实用:14种性能监控与负载测试工具
    来自公众号:51CTO技术栈“本文列出了 14 种针对应用程序性能监控与负载测试的工具,以帮助您构建和维护具有高性能和高可靠性的系统。众所周知,性能测试可以揭示一个系统在各种情况下的行为与响应方式。某个系统在 1,000 个并发用户下能够运行稳健,并不等于它在面对 100,000 个并发用户时,仍能运行正常。因此我们在系统性能方面,主要着眼于三个主要目标:速度可扩展性稳定性在此,我们列出了 14 种针对应用程序性能监控与负载测试的工具,以帮助您构建和维护具有高性能和高可靠性的系统。注意,虽然它们中的一些是开
  • 大型 Web 网站架构演变历程!
    扫描下方二维码试读专栏详细目录请移步至文末前言我们以 javaweb为 例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。keepalived配合上ipvsadm又可以做负载均衡,可谓是神器。在请求到达负载均衡器后,负载均衡器通过修改请求的目的IP地址,从而实现请求的转发,做到负载均衡。需要系统支持IP Tunneling协议,难以跨平台。
  • 细数 Spring 那些最常见的面试问题
    VersionFeatureSpring 2.5发布于 2007 年。Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。由于 Spring Frameworks 的分层架构,用户可以自由选择自己需要的组件。轻量级- Spring 在代码量和透明度方面都很轻便。容器- Spring 负责创建和管理对象的生命周期和配置。Spring 的事务支持也可用于容器较少的环境。Spring 核心容器– 该层基本上是 Spring Framework 的核心。Spring 配置文件是 XML 文件。Spring 应用一般有以下组件:接口- 定义功能。
  • 无Spring不编程,Spring面试必知必会
    从事JAVA开发的给小伙伴都知道,Spring是java开发当中必不可少的一个框架,不管是面试、开发还是工作当中,Spring的地位现在是独树一帜。比如现在SpringBoot,SpringColud等都是目前开发当中很火的框架。VersionFeatureSpring 2.5发布于 2007 年。Spring 是一个开源应用框架,旨在降低应用程序开发的复杂度。Spring Framework 支持 POJO 编程,从而具备持续集成和可测试性。Spring 的事务支持也可用于容器较少的环境。Spring 配置文件是 XML 文件。使用 Spring 有以下方式:作为一个成熟的 Spring Web 应用程序。Spring 框架的核心是 Spring 容器。Spring 容器使用依赖注入来管理组成应用程序的组件。
  • Spring 体系常用项目一览
    Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 上下文和Bean工厂都是 bean 容器 的实现。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。容器 负责将这些联系在一起。Spring的非侵入编程模型意味着这个类在Spring应用和非Spring应用中都可以发挥同样的作用。Spring的组件就是普通的Java Bean,这也使得单元测试
  • 一个完整的Java Web项目需要掌握哪些技术
    最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整java Web项目的同学一个比较完整的视角,提供一个所谓的“大局观”,也以便于同学们更有针对性地学习。由于HTML5的兴起,前端领域已经越来越火热,前端技术发展极快,今天我们不做过多介绍,因为现在的互联网公司,前端工程师和Java工程师是完全不同的两种技术岗位。所以我们还是以Java的角度去看待一个项目。在前端没有那么火的前几年,或者说在经典的Java
公众号