Java EE

tomcat集群搭建集成nginx负载均衡

假如想象 提交于 2020-11-29 01:52:07
软件基础+版本:   1、3台centos7系统,其中都已经配置完成了jdk环境,jdk的版本为 [root@node03 bin]# java - version java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8 .0_144- b01) Java HotSpot(TM) 64 -Bit Server VM (build 25.144 -b01, mixed mode) 具体的linux的jdk配置方式可见其他文章   2、解压版的linux的tomcat,版本如下: [root@node02 soft]# ll 总用量 191220 -rw-r--r-- 1 root root 10291220 11月 26 15:44 apache-tomcat-8.5.49.tar.gz   3、 [root@node02 soft]# ll 总用量 182060 drwxr -xr-x. 8 10 143 255 7月 22 2017 jdk1. 8 .0_144 -rw-r--r--. 1 root root 185515842 9月 4 17 : 09 jdk-8u144-linux- x64.tar.gz drwxr -xr-x 9 nginx nginx 186 11月 26 16 : 58

跨域三种方式

吃可爱长大的小学妹 提交于 2020-11-28 04:18:18
一、什么是跨域,跨哪些域   协议(http、https) 域名(ip) 端口号(80、8080) 二、前后端分离为什么要跨域   如果前后端没分离那么都在同一个服务器中,请求协议、域名以及端口一致自然不存在跨域问题   前后台分离之后前后台有可能分开部署,也有可能使用不同端口,会存在跨域问题 三、跨域实际上是浏览器级别的限制   我们在发出请求以及获取响应的时候实际上是成功了,但是由于浏览器做了拦截处理,所以无法获取数据 四、跨域知道的有三种 1、jsonp 只能适用get请求 $.ajax({ url: "http://localhost:8080/aaaaa", type: "GET", dataType: "jsonp", //指定服务器返回的数据类型 success: function (data) { alert(“success”); } }) 2、添加<meta http-equiv="Access-Control-Allow-Origin" content="*" /> 只能适用同一个域 3、cors(Cross-origin resource sharing),,,从服务端设置跨域信息 可以支持get、post、head、delete请求类型   注意在发起delete请求的时候会先询问服务器是否支持delete请求,如果不支持的话会发送options请求

SpringBoot源码分析

北战南征 提交于 2020-11-28 02:45:47
一:SpringBoot 1、SpringBoot三大特性 1、帮助开发者快速整合第三方框架(原理Maven依赖封装) 2、内嵌服务器(原理Java语言创建服务器) 3、完全注解形式替代XML(原理包装Spring体系注解)spring-boot-starter-web 整合Spring,SpringMVC 2、SpringBoot与SpringCloud概念 SpringCloud的RPC远程调用依赖SpringMVC编写接口(Http+json) SpringCloud是微服务一站式解决方案,基于SpringBoot之上搭建起来的 3、常用注解归纳 @EnableAutoConfiguration:启动SpringMVC,启动时,扫包范围当前包下 @ComponentScan:启动时扫包范围 @Configuration:标识当前类为配置类,结合@Bean注入bean @SpringBootApplication:整合前面三个注解,扫包范围当前同级包及子包 4、SpringBoot整合多数据源 1.分包名(推荐使用) 2.注解形式: @EnableTransactionManager注解默认开启 多数据源分布式事务问题产生在同一个项目中,有多个不同的数据库连接( jta+automic )两阶段提交协议。将数据源统一交给全局xa事务管理 5、全局捕获异常

这份GitHub上价值49K的SpringBoot2+Thymeleaf企业应用实战,真香

≯℡__Kan透↙ 提交于 2020-11-27 20:49:59
Java经过多年的发展,市面上出现的开发框架多不胜数,技术发展日新月异。程序员群体是一个求知若渴的群体,也是一一个容易接受新知识的群体,为了学习新技术,多少人食不知味、夜不能寐。 本书期望给读者提供一整套的企业应用开发方案,包括目前流行的Spring Boot. Thymeleaf、Spring Data以及多个JavaScript框架,学习完本书知识后,读者掌握的并不是一两个技术框架,而是一整套当前流行的开发技术。 本书以Spring Boot与 Thymeleaf为核心,以如何使用Thymeleaf为主线,对Thymeleaf这个目前颇为流行的模板框架进行了系统讲解,既展现了它的技术特性,又辅之以原理分析,务求让读者充分掌握这个模板框架 本书特点 笔者长期工作于企业的 IT 门, 有着丰富的企业应用开发经验, 因此 书有以下特点 1. 涵盖多个技术框架 笔者期望本书能给读者提供一整套的企业应用开发方案,因此本书介绍了目前最为流行的SpringBoot hymeleaf Sprin ata 以及多个 JavaScript 框架 学习完本书知识后,读者掌握的并不是一两个技术框架,而是 整套当前非常流行的开发技术 2. 内容深入 本书以 pring Boot Thymeleaf 为核心,其中 Thymeleaf 是目前非常流行 模板框架,本书对该框架进行了系统讲解,内容由浅入深

JavaWeb学习总结(一)——JavaWeb开发入门

人盡茶涼 提交于 2020-11-27 06:30:00
一、基本概念 1.1、WEB开发的相关知识   WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。   Internet上供外界访问的Web资源分为: 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同 。   静态web资源开发技术:Html   常用动态web资源开发技术:JSP/Servlet、ASP、PHP等   在Java中,动态web资源开发技术统称为Javaweb。 1.2、WEB应用程序   WEB应用程序指供浏览器访问的程序,通常也简称为web应用。例如有a.html 、b.html…..多个web资源,这多个web资源用于对外提供服务,此时应把这多个web资源放在一个目录中,以组成一个web应用(或web应用程序)   一个web应用由多个静态web资源和动态web资源组成,如:html、css、js文件,Jsp文件、java程序、支持jar包、配置文件等等。    Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射 1.3、WEB发展史   WEB发展的两个阶段:静态、动态 1.4、静态WEB   *htm、*html

javaweb学习总结四——Http协议

不打扰是莪最后的温柔 提交于 2020-11-27 06:16:57
一、什么是HTTP协议   HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。 二、HTTP协议的版本   HTTP协议的版本:HTTP/1.0、HTTP/1.1 三、HTTP1.0和HTTP1.1的区别   在HTTP1.0协议中,客户端与web服务器建立连接后,只能获得一个web资源。   在HTTP1.1协议,允许客户端与web服务器建立连接后,在一个连接上获取多个web资源。 四、HTTP请求 4.1、HTTP请求包括的内容    客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求 。 一个完整的HTTP请求包括如下内容: 一个请求行、若干消息头、以及实体内容 范例:    4.2、HTTP请求的细节——请求行   请求行中的GET称之为请求方式,请求方式有:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT,常用的有: GET、 POST   用户如果没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问

从普通JAVA程序员到阿里架构师,他用了六年

帅比萌擦擦* 提交于 2020-11-27 05:49:38
工作年限:8 年服务公司:4 家(含四大门户中的两家)最近职业:Java 架构师职场关键词:社交平台、高并发系统架构设计、技术团队管理、多款从零到一的产品城市! 六年间,这位职人呆过四大门户中的两家,完成了工程师到架构师的蜕变。经手多款从零到一产品的开发和增长,也经历国内最大社交平台亿级流量和用户的架构设计及优化工作。工作上思路清晰、认真负责,是同事们心目中优秀 Problem Solver。 问:介绍一下你自己? 答 :我 2008 年硕士毕业后,前 2 年在一家传统 IT 公司,最近 6 年在互联网公司,历任 Java 开发工程师、高级工程师、架构师等职位。工作内容上,经历过多款产品从零到一的诞生开发过程,也经手过国内用户、内容和流量最大的社交/社区产品的架构改造优化工作,有丰富的社交产品的研发经验,目前在一家创业公司担任技术合伙人。 问:你擅长的技术领域是什么? 答 :擅长的编程语言是 Java、Golang、Scala,熟悉程度依次递减。专注于高性能、高并发系统架构设计和实现。 问:平时怎么向家人解释你的工作是做什么的? 答 :一般不详细解释,即使解释了也是徒劳。所以他们会按照自己的理解来描述我的工作,比如修电脑的,比如卖手机的。 问:你觉得程序员可以当一辈子吗?有没有想象过自己 40 岁时在做什么? 答 :应该还是会从事开发方面的工作吧,外企中有很多上了年岁的程序员啊。

使用maven构建项目时,SSM和springboot项目的打包与云服务器部署

旧城冷巷雨未停 提交于 2020-11-27 02:31:36
下面讲讲如何打包SSM和springboot项目,并部署到云服务器上。 由于使用的IDE不同,有的使用eclipse,有的使用idea,所以如果在IDE中按照 maven clean 再 maven install的方式打包会稍有不同,下面介绍一种通用的方式,不论SSM项目还是springboot项目,不论使用的是eclipse还是idea,我们直接在dos界面,使用命令进行打包。 以一个例子进行演示: 首先需要在pom.xml中定义打包的类型 然后在dos界面,进入该项目下,运行下面的命令进行打包。 mvn clean package -D maven.test.skip=true 这样就会在我们自己设置的output目录下(一般为target目录)生成该项目的war包 这样,我们就得到了该项目的war包,然后我们可以把springboot和SSM的war包放到tomcat的webapp目录下就可以了。 ~~~~~~~~~~~~~~~~~~~~~~~~~ 将springboot项目当为普通的web项目 部署在tomcat的webapp下时,需要加上下面这个类,并让它被扫描到。 import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web

ubuntu18.04安装Apache,配置多个虚拟主机,并整合tomcat

牧云@^-^@ 提交于 2020-11-26 16:48:05
ubuntu上配置Apache和centeros好像还不太一样,里面的配置文件好像有点区别,centeros上是httpd.conf,ubuntu是apache2.conf,记录一下ubuntu18.04系统下的操作: 一、安装Apache 1.直接用命令安装,sudo apt-get install apache2 2.安装完后,查看Apache的版本信息,apache2 -v 3.安装完,访问localhost,会显示默认页面,显示apache2 ubuntu default page apache已经安装成功。因为是使用命令安装,可以使用service命令操作apache: Service apache2 start; Service apache2 stop; Service apache2 restart; Service apache2 status; 配置文件都在/etc/apache2目录下面(可以用whereis apache2命令查看位置,具体目录的作用可百度) 二、配置多个虚拟主机 1.修改hosts文件,sudo /etc/hosts,添加: 2.进入目录/etc/apache2,其中有两个目录,sites-avaliable和sites-enabled,作用自己百度 3.在sites-avaliable中,复制000-default.conf文件

webuploader+文件夹上传

早过忘川 提交于 2020-11-26 09:37:59
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。 先说下要求: PC 端全平台支持,要求支持Windows,Mac,Linux 支持所有浏览器。 支持文件批量上传 支持文件夹上传,且要求在服务端保留层级结构。文件夹数量要求支持到10W。 支持大文件断点续传,要求刷新浏览器,重启浏览器,重启电脑后仍然能够继续上传。文件大小要求能够支持到50个G。 支持自动加载本地文件,要求能够自动加载指定的本地文件。 支持文件批量下载,要求不要在服务器打包。因为50G的文件在服务器打包时间比较长。 支持文件夹下载,要求不要在服务器打包,下载到本地后要求保留层级结构 文件列表面板支持路径导航,新建文件夹 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,struts上传的功能就是基于这个实现的。common-fileupload是依赖于common-io这个包的,所以还需要下载这个包。 一、开发环境搭建