web
文章平均质量分 80
博大的Java世界
主要从事Java开发工作,熟悉web前端技术,如JS,JQUERY,DIV CSS,熟悉数据库如oracle,以及流行的后端开发框架,如spring,springMVC,mybatis,微服务,熟悉tomcat,weblogic服务器部署等。
展开
-
通过验证证明synchronsyncized 关键字的锁升级
对于java 开发synchronized并不陌生,在我们并发编程中有一定分量,jdk1.5之前为重量级锁,jdk1.6后由于业务需要进行锁优化(具体jdk1.5是否为重量级锁,由于没有使用过不在验证);首先我们要知道我们对象体有2词1补充的说法,什么意思呢?就是MARK WORD ,KCLASS WORD ,填充空间,看网上资料中提到mark最多的一张图:其实,我个人认为不是很准确,这个是可能是32位机器所说明的结构,一下为64位系统,与上述图有不同。结论1:* ----单线程(这里指我.原创 2021-03-09 20:41:18 · 290 阅读 · 0 评论 -
Linux忘记root用户的密码
操作步骤:步骤一:当开机启动出现启动的图标的时候,这时快速按下Esc或者E,一定要快点,不然总是来不及,也可以启动后就一直点。。。当按下Esc或者E会出现如下界面:步骤二:这时在此按e,上图中有解释e是做什么的,‘e’ to edit the commands before booting,意思就是在启动之前编辑命令。按下e后会出现下图界面:图中已经说明,使用上下箭头进行选择,这时我们选择kernel这一行,即要操作的内核,选中这一行后,继续按e,出现如下界...原创 2020-12-24 22:21:39 · 435 阅读 · 0 评论 -
Jersey Rest 异常统一处理机制
前言: 异常分为运行时异常和非运行时异常,所谓的运行时异常是指那些不需要异常捕获的异常,总是交由虚拟机接管,如:ArrayIndexOutOfBoundsException,我们在写程序时,并没有使用try..catch来捕获它。 以前,我们进行项目开发时,习惯性的喜欢使用大量的try...catch...finally方法来进行异常处理,并且,只是将异常信息保存到log日志中即可,并没有将一些异常信息以可读性的方式返回给前端用户。而在一些比较大的项目中,进行异常统一处理是架构师...转载 2020-12-01 10:31:34 · 302 阅读 · 0 评论 -
pom 配置最全详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_...转载 2020-03-08 11:30:32 · 2240 阅读 · 0 评论 -
Java生成短链接
因公司推广需要,需要一套短链接生成方案,正好前几天在MSDN看到有人发了一个.net版的短链接算法,我就把它转换成java版,拿出来共享一下生成思路:1.将"原始链接(长链接)+key(自定义字符串,防止算法泄漏)"MD5加密2.把加密字符按照 8 位一组 16 进制与 0x3FFFFFFF 进行位与运算,把得到的值与 0x0000003D 进行位与运算,取得字符数组 chars 索引...转载 2019-12-08 23:30:01 · 2098 阅读 · 0 评论 -
Java 压缩20M文件从30秒到1秒的优化过程
有一个需求需要将前端传过来的10张照片,然后后端进行处理以后压缩成一个压缩包通过网络流传输出去。之前没有接触过用Java压缩文件的,所以就直接上网找了一个例子改了一下用了,改完以后也能使用,但是随着前端所传图片的大小越来越大的时候,耗费的时间也在急剧增加,最后测了一下压缩20M的文件竟然需要30秒的时间。压缩文件的代码如下。 public static void zipFileNo...转载 2019-11-12 00:02:52 · 1261 阅读 · 0 评论 -
DNS原理及其解析过程
为什么需要DNS解析域名为IP地址?网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别如“202.96.134.133”之类的IP地址,而不能认识域名。我们无法记住10个以上IP地址的网站,所以我们访问网站时,更多的是在浏览器地址栏中输入域名,就能看到所需要的页面,这是因为有一个叫“DNS服务器”的计算机自动把我们的域名“翻译”成了相应的I...转载 2018-10-31 21:48:58 · 217 阅读 · 0 评论 -
web 项目解决跨域问题终极解决方案
一.跨域问题的由来二.怎么就算跨域(同源的定义)三.常见跨域解决方法四.总结一.跨域问题的由来为什么会产生这样一个问题,摆在我们面前呢??理解跨域,首先必须要了解同源策略。同源策略是浏览器上为安全性考虑实施的非常重要的安全策略。为了防止某些文档或脚本加载别的域下的未知内容造成泄露隐私,破坏系统等安全行为,哦~说的很有道理,但脑子中没有什么体会认知吧?那咱们换个角度来说这个问题...原创 2018-11-16 15:39:14 · 716 阅读 · 0 评论 -
servlet/filter/listener/interceptor区别与联系
一、概念: 1、servlet:servlet是一种运行服务器端的java应用程序,具有独立于平台和协议的特性,并且可以动态的生成web页面,它工作在客户端请求与服务器响应的中间层。最早支持 Servlet 技术的是 JavaSoft 的 Java Web Server。此后,一些其它的基于 Java 的 Web Server 开始支持标准的 Servlet API。Serv...转载 2018-12-18 12:50:32 · 430 阅读 · 0 评论 -
java web过滤器filter
1、Filter是什么?Filter 技术是servlet 2.3 新增加的功能。Filter翻译过来的意思就是过滤器,能对客户端的消息进行预处理,然后将请求转发给其它的web组件,可以对ServletHttpRequest和ServletHttpResponse进行修改和检查。例如:在Filter中可以检查用户是否登录,对未登录的用户跳转到登陆界面。2、过滤器快速入门要定义一个过滤器...转载 2019-07-19 11:49:26 · 118 阅读 · 0 评论 -
restful原理和jersey
概念:restful web,JAX-RS,jersey1、restful webREST 在 2000 年由 Roy Fielding 在博士论文中提出,他是 HTTP 规范 1.0 和 1.1 版的首席作者之一。REST 中最重要的概念是资源(resources),使用全球 ID(通常使用 URI)标识。客户端应用程序使用 HTTP 方法(GET/ POST/ PUT/ DE...转载 2018-10-15 11:29:56 · 525 阅读 · 0 评论 -
springcloud 注册中心模块eureka
最近学习了一下springcloud,今天介绍下eureka注册中心,首先我们带着这几个问题进行讲述。1.服务提供者怎么注册到服务中心首先我们导入eureka的相关开发包,服务提供者就是我们的相关客户端,那么我们从eureka的client入手,其实springcolund源码阅读与spring相同,其实是spring基础封装,如下图查看上图可知,我们在spring.propert...原创 2018-09-20 00:13:32 · 878 阅读 · 0 评论 -
spring 中解析xml dom的方法类
spring 中xml解析是一个经典的dom解析实例,通过研究源码看到了一个很好的工具,domutil,摘抄出来,可以帮我们dom解析时作为一个借鉴。/* * Copyright 2002-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "Licens...原创 2018-08-18 15:26:25 · 1359 阅读 · 0 评论 -
spring在普通类中获取request的方法
在web.xml中配置如下<listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener>在普...原创 2018-08-15 18:20:32 · 857 阅读 · 0 评论 -
ServletContextListener使用详解(监听Tomcat启动、关闭)
在 Servlet API 中有一个 ServletContextListener 接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。 当Servlet 容器启动或终止Web 应用时,会触发ServletContextEvent 事件,该事件由ServletContextListener 来处理。在 ServletContextListene...转载 2018-06-10 23:45:53 · 20201 阅读 · 1 评论 -
java 代理到动态代理演变及详解
1.在我们开发中代理设计其实无处不在,那么怎么实现代理呢?其实说白了就是我们调用一个类的时候,可以通过一个公共的类来实现不同方法的调用,也就是说完成代理之后的对象具有与目标类相同的属性及动作(方法)。话不多说,下面看一个简单的代理实现:1)假设场景,我们最熟悉的用户信息操作,有新增,修改,删除,查询。此时要求我们要对这些操作进行日志记录信息以便我们进行项目定位与维护。首先创建一个u简单user对象...原创 2018-02-05 21:15:28 · 129 阅读 · 0 评论 -
java 代理到动态代理演变及详解
1.在我们开发中代理设计其实无处不在,那么怎么实现代理呢?其实说白了就是我们调用一个类的时候,可以通过一个公共的类来实现不同方法的调用,也就是说完成代理之后的对象具有与目标类相同的属性及动作(方法)。话不多说,下面看一个简单的代理实现:1)假设场景,我们最熟悉的用户信息操作,有新增,修改,删除,查询。此时要求我们要对这些操作进行日志记录信息以便我们进行项目定位与维护。首先创建一个u简单user原创 2018-02-05 21:08:08 · 155 阅读 · 0 评论 -
TCP 三次握手详解
在我们OSI 7层协议中,我们的TCP属于可靠的网络传输层控制协议,这种协议是一个基础,我们有必要了解,一些面试可能会问到。1.联机3次握手,先理解用到名词:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequ...原创 2018-12-24 15:14:00 · 219 阅读 · 0 评论 -
weblogic 调优
1. 尽量开启本地 I/O 通过启动管理控制台,在域(如:mydomain)> 服务器 > server 实例(如:myserver)> 配置 > 调整选择启用本地 I/O。2. 调整为产品模式 开发模式和产品模式的一些参数的默认值不同,可能会对性能造成影响,下面是对性能有影响的参数列表:参数 开发模式默认值 产品模式默认值Execute Queue:...原创 2019-02-11 10:00:28 · 466 阅读 · 0 评论 -
spring启动component-scan类扫描加载过程---源码分析
最近因为写书的事情,一段时间没有写博客了,有朋友最近问到了spring加载类的过程,尤其是基于annotation注解的加载过程,有些时候如果由于某些系统部署的问题,加载不到,很是不解!就针对这个问题,我这篇博客说说spring启动过程,用源码来说明,这部分内容也会在书中出现,只是表达方式会稍微有些区别,我将使用spring 3.0的版本来说明(虽然版本有所区别,但是变化并不是特别大),另外,这里...转载 2019-02-18 18:06:25 · 223 阅读 · 0 评论 -
idea 使用weblogic 10 版本启动报Unsupported major.minor version 52.0问题
由于项目升级jdk,所以重新编译代码,部署weblogic报如上错误,原因是我们编译jdk版本与服务器运行版本不一致导致,所以升级weblogic12,因为52版本对应weblogic12,安装成功启动错误解决。网上好多是修改idea配置,但是真正遇到并不能解决,所以首先要版本对应。...原创 2019-09-24 16:11:35 · 865 阅读 · 0 评论 -
spring2.5.6+JDK1.8报错的解决办法 Context namespace element 'annotation-config'或ComponentScan配置 jdk1.5
最近系统为了兼容springboot项目,需升级jdk,为了避免风险暂时不进行spring升级,所以启动idea项目jdk1.8环境时,报jdk版本太低,开始郁闷明明环境使用的是1.8,怎么会报这个错误。后来查看spring2.5.6版本,在进行获取xml元数据时,namsesapce处理类加载xml配置时会校验配置数据正确性,其中有一项是javaversion检测,看下面源码:我一般是...原创 2019-09-24 16:02:59 · 903 阅读 · 2 评论 -
XSS(跨站脚本)漏洞详解之XSS跨站脚本攻击漏洞的解决
XSS(跨站脚本)漏洞详解XSS的原理和分类跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户...转载 2019-09-21 23:48:31 · 2824 阅读 · 0 评论 -
SpringMVC_放行静态资源
静态资源到处都是坑!明白原理才能绕过这些坑!web.xml配置servlet中四种路径的区别在web.xml文件的配置中,四种路径编写方式优先级如下图:其中b和d都能接收所有请求,仅仅是在优先级上有区别。d是优先级最低的,所以如果一个路径有”人”要就不会执行到d,tomcat服务器(无论什么服务器)有一个默认的请求处理方案:在tomcat服务器的配置文件: tom...转载 2019-09-17 23:04:00 · 250 阅读 · 0 评论 -
Quartz 定时任务设置某个时间区间每隔一定时间触发的cron表达式
Cron表达式Quartz使用类似于Linux下的Cron表达式定义时间规则,Cron表达式由6或7个由空格分隔的时间字段组成。Cron表达式时间字段(从左到右依次为):位置 时间域名 允许值 允许的特殊字符 1 秒 0-59 , - * / 2 分钟 0-59 , - * / 3 小时 0-23...原创 2019-08-29 11:34:09 · 3031 阅读 · 0 评论 -
Spring经典面试题和答案
Spring 概述1. 什么是spring?Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。2. 使用Spring框架的好处是什么?轻量: Spring 是轻量的,基本的版本大约2MB。 控...原创 2019-07-28 20:06:28 · 117 阅读 · 0 评论 -
web开发基础jsp知识大全
一、JSP基础语法1、JSP模板元素JSP页面中的HTML内容称之为JSP模版元素。JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观。2、JSP脚本片段JSP脚本片断(scriptlet)用于在JSP页面中编写多行Java代码(在<%%>不能定义方法)。语法:<%多行java代码 %>例如:<%intnum=0...原创 2019-07-24 17:05:09 · 462 阅读 · 0 评论 -
easyui的datagrid里getSelections只能获取一行值
使用getSelections只能获取到一行的值,检查了半天是因为idField属性值写错,更正之后ok。解决办法二:改为使用getChecked,idField写错无影响,注:getSelections、getChecked的idField属性注掉,也可以获取到多行的值了。 getSelected:取得第一个选中行数据,如果没有选中行,则返回 null,否则返回记录。get...原创 2019-02-19 15:04:56 · 869 阅读 · 0 评论 -
Spring事务管理之几种方式实现事务
先了解一下事物概念:1、事务认识大家所了解的事务Transaction,它是一些列严密操作动作,要么都操作完成,要么都回滚撤销。Spring事务管理基于底层数据库本身的事务处理机制。数据库事务的基础,是掌握Spring事务管理的基础。这篇总结下Spring事务。事务具备ACID四种特性,ACID是Atomic(原子性)、Consistency(一致性)、Isolation(隔离性)和Dur...原创 2019-02-24 12:43:46 · 4590 阅读 · 0 评论 -
遇到java 文件不编译问题
在开发中有时我们会遇到在我们IDE改写文件之后不编译问题,那么怎么处理,这是我的处理方式。1.今天在开发中遇到我的classpath下的properties文件不编译问题,因此进行了手动编译,将我们文件拷贝到classes路径下,其实便宜一个文件对我们来说so easy,但是这个编译文件是一个servlet文件,直接编译会不成功,因为我们jdk没有servlet-api.jar,所以我们需要将原创 2018-02-04 10:18:36 · 3148 阅读 · 0 评论 -
javaweb读取配置文件的4种方法
方式一:采用ServletContext读取获取配置文件的realpath,然后通过文件流读取出来或者通过方法getReasurceAsStream()。因为是用ServletContext读取文件路径,所以配置文件可以放入在WEB-INF的classes目录中,也可以在应用层级及WEB-INF的目录中。文件存放位置具体在eclipse工程中的表现是:可以放在src下面,也可放在WEB转载 2018-02-04 09:37:26 · 245 阅读 · 0 评论 -
servlet3注解和可插拔性
在web应用中,使用注解的类仅当它们位于WEB-INF/classes目录中,或它们被打包到位于应用的WEB-INF/lib中的jar文件中时它们的注解才将被处理。 Web应用部署描述符的web-app元素包含一个新的“metadata-complete”属性。“metadata-complete”属性定义了web描述符是否是完整的,或是否应该在部署时检查jar包中的类文件和web fra转载 2017-09-09 23:30:33 · 1021 阅读 · 0 评论 -
NAT技术基本原理与应用
转载自:http://www.cnblogs.com/derrick/p/4052401.html?utm_source=tuicool&utm_medium=referral#undefined1 概述1.1 简介1.1.1 名词解释公有IP地址:也叫全局地址,是指合法的IP地址,它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个转载 2017-09-26 14:26:43 · 627 阅读 · 0 评论 -
HTTP 协议详解(图文介绍)_网络协议
当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。使用Fiddler工具非常方便地捕获HTTP Request和HT转载 2017-09-09 21:07:01 · 248 阅读 · 0 评论 -
HTTP请求错误400、401、402、403、404、405、406、407、412、414、500、501、502解析
HTTP 错误 400 400 请求出错 由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。 HTTP 错误 401 401.1 未授权:登录失败 此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。 请与 Web 服务器的管理员联系,以确认您是否具有访问所请求资源的权限。 401.2 未授权:服务器的配置导致登录失败 此错误表明转载 2017-09-09 20:59:00 · 314 阅读 · 0 评论 -
JavaScript闭包实例详解
一、充电1、一切(引用类型)都是对象,对象是属性的集合。2、函数是一种对象,但是函数却不像数组一样——你可以说数组是对象的一种,因为数组就像是对象的一个子集一样。但是函数与对象之间,却不仅仅是一种包含和被包含的关系,函数和对象之间的关系比较复杂,甚至有一点鸡生蛋蛋生鸡的逻辑。?123456function Fn()转载 2017-07-05 11:09:36 · 394 阅读 · 0 评论 -
动态修改easyui组件tab的title属性
最近一个应用场景,根据不同的业务类别显示不同的table页面,那么此时tab标题怎么转换处理呢?思路1: 其实我们tab组件依赖于panel,所以我们可以通过tab获取我们需要修改的panel,通过panel来修改它的标题。 如:$('#testTab').panel('setTitle','改变标题');思路二: 我们也可以通过tab的API,update方法修原创 2017-07-05 10:26:09 · 13379 阅读 · 0 评论 -
Java 驼峰与下划线的属性名互相转换
public class StringUtil { /** * 转换为下划线 * * @param camelCaseName * @return */ public static String underscoreName(String camelCaseName) {转载 2017-07-13 15:26:47 · 7184 阅读 · 0 评论 -
js打开新窗口的方法
一、window.open()支持环境:JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+二、基本语法:window.open(pageURL,name,parameters) 其中:pageURL 为子窗口路径 name 为子窗口句柄 parameters 为窗口参数(各参数用逗号分隔) 三、示例: wi转载 2017-07-04 15:40:08 · 1808 阅读 · 0 评论 -
js打印jsp获取html页面
body class="clsPageBody"> br> table cellspacing=0 cellpadding=0 border=1 bordercolor="#000000" bgcolor="#FFFFFF" width="98%" height="90%" align="center" style="border-coll原创 2017-07-04 15:34:10 · 1670 阅读 · 0 评论