javaweb
文章平均质量分 88
发呆程序员
好习惯要坚持下去
展开
-
Java线上应用故障排查:高CPU占用
原文地址:http://www.blogjava.net/hankchen一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。(友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hankchen)以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题。根据top命令,转载 2016-07-12 11:02:05 · 378 阅读 · 0 评论 -
redis分布式锁
背景在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制。Redis命令介绍使用Redis实现分布式锁,有两个重要函数需要介绍SETNX命令(S...原创 2016-08-29 16:06:04 · 748 阅读 · 0 评论 -
TCP/IP、Http、Socket的区别
TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己转载 2017-01-13 09:33:21 · 1001 阅读 · 0 评论 -
JAVA网络IO(BIO、NIO、AIO)
例子一:“阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。换句话说,就原创 2017-02-13 09:49:01 · 531 阅读 · 1 评论 -
JSP页面中常用四种标签
JSP页面常用四种标签:1. EL表达式: ${}2. jstl表达式(sun apache): uri="http://java.sun.com/jsp/jstl/core" %> uri="http://java.sun.com/jsp/jstl/functions" %> uri="http://java.sun.com/jsp/jstl/fmt" %>3.转载 2015-09-23 14:43:12 · 26109 阅读 · 0 评论 -
GBK,UTF-8,和ISO8859-1编码区别与get,post请求中文乱码处理
1.编码基础知识 最早的编码是iso8859-1,和ascii编码相似。但为了方便表示各种各样的语言,逐渐出现了很多标准编码,重要的有如下几个。 1.1. iso8859-1 通常叫做Latin-1 最多能表示的字符范围是0-255,应用于英文系列。比如,字母a的编码为0x61=97。 很明显,iso8859-1编码表示的字符范围很窄,无法原创 2016-01-29 16:58:41 · 8241 阅读 · 2 评论 -
postman中 form-data、x-www-form-urlencoded、raw、binary的区别
原文地址:http://blog.csdn.net/wangjun5159/article/details/477814431、form-data: 就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type...转载 2018-07-19 11:25:15 · 76938 阅读 · 5 评论 -
手写迷你版本Mybatis
动手写一个迷你版的MyBatisMyBatis原理架构图其实对于MyBatis最为关键的就在于:XXXMapper mapper = sqlSession.getMapper(XXXMapper.class);大家可以以这个为切入口,进行源码跟踪,容易得到上面的调用链。我们先来看一下迷你版MyBatis的整体框架思路:迷你版MyBatis执行器MyExecu...翻译 2018-10-25 11:27:27 · 942 阅读 · 0 评论 -
手写迷你版spring mvc
前期准备我这里要写的是一个迷你版的Spring MVC,我将在一个干净的web工程开始开发,不引入Spring,完全通过JDK来实现。我们先来看一眼工程:工程代码结构第一,在annotation包下,我将提供自定义的注解,为了方便理解,就和Spring MVC保持一致。第二,为了模拟Spring MVC的方法调用链,我这里提供Controller/Service/Da...转载 2018-10-25 11:28:52 · 277 阅读 · 1 评论 -
SpringBoot打成jar包部署,Excel模板下载文件
问题一. 读取resource 目录下文件时出现路径找不到在本机测试都很顺利,当打包jar文件放到服务器上测试的时候发现了类似下面的异常信息:java.nio.file.NoSuchFileException: file:/app.jar!/BOOT-INF/classes!/xxx.xlsx原因:spring boot 将项目打包为jar,使用 java - jar 包名 在服务器上...转载 2019-01-08 15:55:00 · 4374 阅读 · 4 评论 -
搭建基于OAuth2和SSO的开放平台
原文地址:搭建基于OAuth2和SSO的开放平台开放平台介绍什么是开放平台开放平台在百科中的定义:开放平台(Open Platform) 在软件行业和网络中,开放平台是指软件系统通过公开其应用程序编程接口(API)或函数(function)来使外部的程序可以增加该软件系统的功能或使用该软件系统的资源,而不需要更改该软件系统的源代码。通俗或者说应景点的说法,开放平台,就是互联网企业...转载 2019-01-31 15:54:12 · 1013 阅读 · 0 评论 -
Java 定时任务的几种实现方式
原文地址:https://blog.csdn.net/kegumingxin2626/article/details/72854823/JAVA定时任务目前主要有以下几种实现方式: - JDK自带 :JDK自带的Timer以及JDK1.5+ 新增的ScheduledExecutorService; - Quartz :简单却强大的JAVA作业调度框架 - Spring3.0以后自带的ta...转载 2019-02-22 11:52:53 · 8699 阅读 · 0 评论 -
spring声明式事务 同一类内方法调用事务失效
原文地址:https://blog.csdn.net/jiesa/article/details/53438342一 宏观说明[问题]Spring的声明式事务,我想就不用多介绍了吧,一句话“自从用了Spring AOP啊,事务管理真轻松啊,真轻松;事务管理代码没有了,脑不酸了,手不痛了,一口气全配上了事务;轻量级,测试起来也简单,嘿!”。不管从哪个角度看,轻量级声明式事...转载 2019-03-05 09:29:04 · 2419 阅读 · 0 评论 -
SpringBoot配置Cors解决跨域请求问题
原文地址:https://www.cnblogs.com/yuansc/p/9076604.html一、同源策略简介同源策略[same origin policy]是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。 同源策略是浏览器安全的基石。什么是源源[origin]就是协议、域名和端口号。例如:http://www.baidu.com:80这个...转载 2019-03-04 16:48:54 · 5359 阅读 · 0 评论 -
javaweb学习之Http协议
一、什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。二、HTTP协议的版本 HTTP协议的...转载 2016-03-20 21:49:12 · 538 阅读 · 0 评论 -
nodejs环境安装
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞I/O模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用。nvm、npm、nodejs关系:nvm的官方叫法:nodejs版本管理工,nvm相当于是家长,一个家长可以管理多个孩子,也就是说:一个n...原创 2017-03-06 11:48:12 · 958 阅读 · 0 评论 -
Unicode 和 UTF-8 有何区别?
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为”字节“。再后来,他们又做了一些可以处理这些字节的机器,机器开动了,可以用字节来组合出很多状态,状态开始变来变去。他们看到这样是好的,于是它们就这机器称为”计算机“。 开始计算机只在美国用。八位的字节一共可以组合出256(2的8次方)种...转载 2017-10-13 14:39:00 · 249 阅读 · 0 评论 -
用Maven创建第一个web项目
原文地址:http://www.cnblogs.com/leiOOlei/p/3361633.html一.创建项目1.Eclipse中用Maven创建项目上图中Next 2.继续Next3.选maven-archetype-webapp后,next 4.填写相应的信息,Packaged是默认创建一个转载 2016-07-27 10:36:56 · 118379 阅读 · 15 评论 -
Mybatis最入门---代码自动生成(generatorConfig.xml配置)
本文我们将介绍一个能够极大提升我们开发效率的插件:即代码自动生成。这里的代码自动生成包括,与数据库一一对应的实体对象,Mapper基本结构文件,与Mapper对应的基本接口文件。本文,我们只介绍这个插件的基本用法,更多内容,就请读者先自行学习吧。MyBatis Generator中文文档地址:http://mbg.cndocs.ml/另一种使用通用Mapper的应用:https://git...转载 2016-12-19 16:59:42 · 2866 阅读 · 0 评论 -
我是一个Java class
前言:本文主要想讲一下Java虚拟机的故事, 可能有点偏门,不妥之处欢迎留言交流。第一回 陌生警察我出生在C盘下面一个很深层次的目录下, 也不知道是谁把我放到这里的。 我一直在睡觉,外边的日出日落,风雨雷电和我一点关系都没有。直到有一天,有个家伙咣咣咣砸我房门把我叫醒。 这个家伙穿着像警察的制服, 左手拿着一个对讲机, 右手递过来他的工作证: “你好转载 2016-11-09 17:07:45 · 415 阅读 · 0 评论 -
我是一个线程
我是一个线程,我一出生就被编了个号: 0x3704,然后被领到一个昏暗的屋子里, 这里我发现了很多和我一模一样的同伴。 我身边的同伴0x6900待的时间比较长, 他带着沧桑的口气对我说: “我们线程的宿命就是处理包裹。把包裹处理完以后还得马上回到这里,否则可能永远回不来了。” 我一脸懵懂,包裹,什么包裹? “不要着急,马上你就会明白了, 我们这里是不养闲人的转载 2016-11-09 16:58:39 · 342 阅读 · 0 评论 -
Servlet中的GET和POST之间的区别
get和post这是http协议的两种方法,另外还有head, delete等 这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串。post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。 在servlet开发中,以doGet()和doPost()分别处理get和post方法。原创 2015-09-23 14:50:25 · 694 阅读 · 0 评论 -
Tomcat服务器下部署项目几种方式
1、Tomcat服务器下部署项目几种方式 一、静态部署1、直接将web项目文件件拷贝到webapps 目录中 Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将JSP程序打包成一个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是原创 2015-09-23 15:01:59 · 537 阅读 · 0 评论 -
请求转发与重定向的区别
重定向与转发的区别:1.重定向访问服务器两次,转发只访问服务器一次。2.重定向可以看见目标页面的URL,转发只能看见第一次访问的页面URL,以后的工作都是有服务器来做的。3.重定向跳转后必须加上return,要不然页面虽然跳转了,但是还会执行跳转后面的语句,转发是执行了跳转页面,下面的代码就不会在执行了。4.在request级别使用信息共享,使用重定向必然出错5.还有一个大的区转载 2015-10-29 09:09:54 · 14950 阅读 · 6 评论 -
Java 连接数据库及字符编码
通过JDBC方式连接MYSQL数据库:public static Connection getConnection(){String username="root" ;String password="root";String driverClassName="com.mysql.jdbc.Driver";String url="jdbc:sqlserver转载 2015-11-19 20:59:08 · 1032 阅读 · 0 评论 -
session, sessionID和cookie
当客户端浏览器第一次访问服务器时,服务器为每个浏览器创建不同的HttpSession对象。在服务器端使用request.getSession()方法来获得HttpSession对象,并以此来使用HttpSession接口为我们提供的方法,需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session,可调用request.getS转载 2015-11-20 16:41:33 · 4478 阅读 · 0 评论 -
servlet监听器
1、servlet监听器按监听对象划分分为三类:第一、用于监听应用环境对象:ServletContext第二、用于监听用户会话对象:HttpSession第三、用于监听请求消息对象:ServletRequestListener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。当 增加一个HttpSessio原创 2015-11-22 17:27:36 · 540 阅读 · 0 评论 -
java 拦截器、过滤器
过滤器和拦截器:两者有很大的相似性。但似乎Struts2的拦截器在功能上不如Servlet的过滤器强大。原因有以下两点:① interceptor只能对action(相当于servlet)进行拦截,而对jsp页面无效② interceptor只能在提交表单之后发挥作用,而对于直接在地址栏输入的url无能为力。从而导致不能进行完整的身份验证。一、理解Struts2拦截器1.转载 2015-11-22 18:06:36 · 750 阅读 · 0 评论 -
利用Java的反射与代理机制实现IOC
在Java中,其反射和动态代理机制极其强大,我们可以通过其反射机制在运行时获取信息。而代理是一种基本的设计模式,它是一种为了提供额外的或不同的操作而插入到真实对象中的某个对象。而Java的动态代理在代理上更进一步,既能动态的创建代理对象,又能动态的调用代理方法。Java的反射和动态代理机制,使Java变得更加强大。 Spring框架这几年风头正劲,虽然使用者众多,但真正了解其内部实转载 2016-01-19 17:03:26 · 470 阅读 · 0 评论 -
利用Java的反射与代理机制实现AOP
在上一篇文章中,我们讲述了利用Java的反射机制中实现Spring中的IOC,在本文中,我们将更进一步,讲述用Java的反射和动态代理机制来实现Spring的AOP。一.AOP概述 AOP(Aspect Oriented Programing),即面向切面编程,它主要用于日志记录、性能统计、安全控制、事务处理、异常处理等方面。它的主要意图就要将日志记录,性能统计,安全控制、事务转载 2016-01-19 17:10:13 · 3182 阅读 · 1 评论 -
五分钟读懂UML类图
原文地址:https://www.cnblogs.com/shindo/p/5579191.html平时阅读一些远吗分析类文章或是设计应用架构时没少与UML类图打交道。实际上,UML类图中最常用到的元素五分钟就能掌握,下面赶紧来一起认识一下它吧:一、类的属性的表示方式在UML类图中,类使用包含类名、属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个E...转载 2019-02-22 17:47:30 · 297 阅读 · 0 评论