java
文章平均质量分 71
光光-Leo
奋斗在开发一线
展开
-
HashMap快问快答
他强由他强,清风拂山岗;他横由他横,明月照大江;他自狠来他自恶,我自一口真气足。 — 金庸 《倚天屠龙记》1.HashMap的底层使用了什么数据结构进行存储?HashMap使用哈希表进行数据存储,JDK1.7使用数组+链表实现,JDK1.8使用数组+链表+红黑树实现。2.HashMap的put过程?JDK1.8中HashMap进行put操作的过程如下:1.计算关于key的hashcode值(与Key.hashCode的高16位做异或运算) (key == null)原创 2020-08-23 12:43:40 · 161 阅读 · 0 评论 -
Extjs 上传文件 IE不兼容的问题[提示下载保存]
我最不喜欢的浏览器的是IE,但无奈很多项目的客户使用的是IE.在使用Extjs做文件上传时,其他浏览器没有问题,但IE却一个劲提示保存文件,看服务端运行,它其实是运行成功了已经,但客户端的进度条却一个劲的在加载。原因是: IE浏览器对Content-Type = application/json,会出现下载保存 IE浏览器对Content-Type = text/html,返回信息按html处原创 2015-11-01 10:39:33 · 2791 阅读 · 0 评论 -
poi 操作excel 常用操作
之前写过一篇类似的文章 这次重新写一下 添加了一些关于样式的代码package excel;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;原创 2015-11-01 14:00:25 · 2858 阅读 · 0 评论 -
windows下使用 Secure Shell Client工具操作linux常用命令
如果项目部署在linux系统上,而我们使用的是windows系统,那我们可以使用Secure Shell软件进行操作,那怎么使用它来操作tomcat呢?1.cd /usr/share/apache-tomcat-7.0.55/bin 进入tomcat的bin目录2../shutdown.sh 关闭tomcat3.ps -ef|grep tomcat 如果感觉使用2的命令没有停掉tomcat原创 2015-10-26 18:49:39 · 2483 阅读 · 0 评论 -
在做excel导出时如何将excel直接写在输出流中
之前做excel导出时,我都是先将文件写在服务器上,然后再下载下来,后来发现原来可以直接将文件写在输出流里边。下面是一个小demo:package com.huaqin.fcstrp.util;import java.io.IOException;import java.io.OutputStream;import java.io.UnsupportedEncodingException;原创 2015-11-11 13:55:23 · 17673 阅读 · 4 评论 -
文件下载实现
java代码:@RequestMapping(value = "/download") @ResponseBody public void download(HttpServletRequest request, HttpServletResponse response) throws FileNotFoundException { //获取服务器端文件保存路径 String r原创 2015-10-22 14:44:01 · 2970 阅读 · 0 评论 -
Poi 操作excel 定义单元格颜色
最近发现了一个巨牛的人工智能教程,不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!所以分享给大家,感兴趣的童鞋可以看看。点这里可以跳转到教程。使用java操作excel时可以指定单元格的颜色,有两种方法:1.使用提供的索引: //设置样式-颜色 HSSFCellStyle style = workbook.createCellSty...原创 2015-10-22 14:51:00 · 25176 阅读 · 0 评论 -
websocket(二)--简单实现网页版群聊
websocket可以实现服务端的消息推送,而不必在客户端轮询,大大的节省的资源,对于实时通讯来说简直是个大喜讯。在上一篇文章中介绍了协议握手,这篇文章将通过实现简单的群聊来帮助进一步了解websocket。注意:1.JavaEE版本为7.0 2.tomcat版本为8.0 3.不需要额外导入其他的jar包原创 2015-08-22 23:29:33 · 4765 阅读 · 9 评论 -
struts2(三)---struts2中的服务端数据验证框架validate
struts2为我们提供了一个很好的数据验证框架–validate,该框架可以很方便的实现服务端的数据验证。ActionSupport类提供了一个validate()方法,当我们需要在某一个action中进行数据验证时,可以重写这个方法。数据验证往往是在客户端向服务端提交表单信息时进行的,比如execute方法负责处理表单信息并返回相应的结果,在此之前,validate会先对提交的表单信息进行验证:原创 2015-09-06 20:21:00 · 3053 阅读 · 2 评论 -
任务调度--使用java.util.Timer实现
任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。 举个例子,比如说我们希望一个系统每周日晚上9点都将数据库文件备份一次,这时我们就可以使用任务调度来实现。为了更加的方便,我们需要在tomcat启动后,自动开始这个调度。 下面是TimerTask的API: 下面是Timer类的API 下面的例子中实现了两个功能: 1.监测tomcat的web容器的启动与关闭 2.原创 2015-09-11 13:26:50 · 2573 阅读 · 0 评论 -
监听Web容器启动与关闭
在Servlet API 中有一个 ServletContextListener 接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。 要监听web容器的启动与关闭,首先定义一个类继承ServletContextListener 接口:package com;import javax.servlet.ServletContextEvent;im原创 2015-09-11 13:46:42 · 5980 阅读 · 0 评论 -
Extjs中ajax请求当session失效时自动跳转
当session失效时,我们可以通过filter来拦截并重定向到登陆页面,可是请求如果是ajax请求,页面并不会重定向,这是因为ajax返回的是数据,无法返回页面。ajax异步请求不同于其他请求,其在请求头里包含有X-Requested-With:XMLHttpRequest,看下面两张图的区别。我们可以在filter中通过它来判断一个请求是不是异步的,如果是,我们可以返回一个sessionsta原创 2015-11-27 15:37:58 · 2705 阅读 · 2 评论 -
集群环境下如何防止定时任务重复执行?
起因 最近做项目是遇到这样一个问题:系统需要在每天的16:00向一些符合特定条件的用户发送一份邮件,发送成功后修改掉数据库中对应数据的标志位。本来是没有问题的,但后来系统被部署到了集群环境下,导致每天会向这些用户发送多次同样的数据,遭到了客户的抱怨。 解决 下面来介绍一下处理这种问题的解决办法: 1.在数据库中建立tm_job_group表 Name原创 2016-03-18 21:37:01 · 19168 阅读 · 6 评论 -
Poi实现Excel导出工具类封装
工具类代码PoiExcelExport如下:package com.myssm.util.poi;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.lang.reflect.Method;impor原创 2016-02-28 17:15:25 · 12419 阅读 · 5 评论 -
坑边杂记
2019.08.07multipartResolver上传文件 小于10K未生成临时文件https://www.cnblogs.com/flywang/p/5413239.html2019.07.09 js tofixed方法 四舍六入五成双/五不进位https://blog.csdn.net/ptsx0607/article/details/83275619 坑的一脸血20...原创 2019-06-26 13:01:19 · 162 阅读 · 0 评论 -
读书· 深入理解Java虚拟机
前言Java内存区域运行时数据区1.程序计数器2.Java虚拟机栈3.本地方法栈4.Java堆5.方法区内存溢出和垃圾回收1.内存溢出2.垃圾回收3.内存分配与回收策略虚拟机类加载机制1.加载2.验证3.准备4.解析5.初始化前言撰文之前看到一段话,颇为喜欢,任性的写在这里:“入楼十七日,日日苦修,却修不到字词入心,只能眼睁睁看着它们溜走。我曾清醒过,也曾无来由的堕入黑甜梦乡,但它们总是不在,如果纸面上的它们是虚妄的,为何我能看见它们,如果它们是真实的,为何我不能记住它们。修行,到底是真实,还是虚妄,.原创 2018-11-10 18:16:18 · 606 阅读 · 1 评论 -
使用maven-clover2-plugin测试代码覆盖率
首先给两个官网的地址: http://docs.atlassian.com/maven-clover2-plugin/2.3.1/usage.html http://maven.apache.org/archives/maven-1.x/plugins/clover/properties.html大家可以先看一下 下面我先说一下我对clover的理解:当测试代码执行时,代码覆盖系统会收集哪些语原创 2017-03-01 16:27:10 · 2647 阅读 · 0 评论 -
oracle+mybatis 使用动态Sql在要insert的字段不确定的情况下实现批量insert
最近做项目遇到一个挺操蛋的问题,由于业务的关系,DB的数据表无法确定,在使用过程中字段可能会增加,这样在insert时给我造成了很大的困扰。先来看一下最终我是怎么实现的: <![CDATA[ INSERT INTO tg_fcst_lines(${lineColumn}) select result.*,sq_fcst_lines.nextva原创 2015-11-01 13:56:04 · 8665 阅读 · 8 评论 -
CAS单点登录(四)--cas server返回中文用户名时乱码的原因及解决方式
今天,在单点登录系统中,使用中文用户名登录系统时,出现了返回的用户名乱码的问题。通过阅读cas_client源码,找到了具体的原因。获取用户名的操作是在ticket验证的过程中,下面,我先按照流程描述一下ticket验证的过程。首先,由于我们在客户端进行了如下配置(代码1): CAS Validation Filter org.jasig.cas.cli原创 2016-11-11 21:43:17 · 9331 阅读 · 1 评论 -
CAS单点登录(一)---CAS介绍
1.名词解释 CAS(中央认证服务)旨在为Web服务提供一种可靠的单点登录方法。 CAS包括CAS server和CAS client两部分。CAS server需要独立部署,主要负责对用户的认证工作。CAS client负责处理对客户端受保护资源的访问请求,需要登录时,重定向到CAS server,CAS client与受保护的客户端部署在一起。2.基本协议图 上图所示为用户首原创 2016-08-09 11:14:34 · 2988 阅读 · 1 评论 -
CAS单点登录(三)--服务端改造(登录页及登录方式的自定义)
上一篇文章(http://blog.csdn.net/u012116457/article/details/52161201)提到,为了更好的满足我们的要求,还需要对服务端进行改造。最近发现了一个巨牛的人工智能教程,不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!所以分享给大家,感兴趣的童鞋可以看看。点这里可以跳转到教程。1.新建cas_server为了方便,首先我们现在...原创 2016-08-09 15:05:50 · 19783 阅读 · 2 评论 -
CAS单点登录(二)---非SSL协议 CAS服务端部署及客户端配置
1.下载CAS server与CAS client下载地址:http://downloads.jasig.org/cas/cas-server-4.0.0-release.ziphttp://downloads.jasig.org/cas-clients/cas-client-3.2.1-release.zip2.部署CAS servera.将下载的cas-server-4.0.0-release原创 2016-08-09 12:24:07 · 7154 阅读 · 0 评论 -
Exception:两个类具有相同的 XML 类型名称,请使用 @XmlType.name 和 @XmlType.namespace 为类分配不同的名称
两个类具有相同的 XML 类型名称 "{http://service.webservice.base.xm/}searchAccountBatchResponse"。请使用 @XmlType.name 和 @XmlType.namespace 为类分配不同的名称。 this problem is related to the following location: at xm.base.webs原创 2016-07-21 17:17:26 · 20972 阅读 · 1 评论 -
log4j的配置与使用
配置log4j的步骤如下: 1.导入jar包 如log4j-1.2.15.jar2.在src下添加log4j.properties 使用时把下面内容中的注释去掉://日志级别及位置log4j.rootLogger=info,etoak1,etoak2//指定输出到控制台log4j.appender.etoak1=org.apache.log4j.ConsoleAppender//日志输出原创 2015-09-10 11:56:00 · 2348 阅读 · 5 评论 -
struts2(二)---ModelDriven模型驱动
这篇文章是在上一篇文章(http://blog.csdn.net/u012116457/article/details/48194905)的基础上写的,大家可以先快速阅读一下上一篇。这篇文章用来写一下struts中的模型驱动机制modelDriven1.为什么要用modelDriven struts中Action 用来处理业务逻辑,如果向上一篇文章中的做法,把实体类的属性及get set方法都写在a原创 2015-09-03 15:12:01 · 3368 阅读 · 1 评论 -
巩固java(四)----super和super()
引言: 一个公司里有普通员工和经理,他们之间有很多共同点,但也有一些差异,比如薪水问题,普通员工只有普通工资,经理在完成绩效后有一定比例的奖金。这时我们可以定义两个类Employee和Manager,显然两个类之间存在明显的"is-a"关系---经理也是公司员工,而“is-a”关系是继承关系的特征,所以Employee和Manager之间存在继承关系。正文:原创 2015-04-14 21:37:15 · 1194 阅读 · 0 评论 -
通过简单的售票程序理解多线程
售票程序要求:1:多个窗口同时卖票 2:同一编号的票的不能多次卖出 错误程序解析:public class TicketDemo { public static void main(String[] args) { Ticket t1=new Ticket("窗口1:"); Ticket t2=new Ticket("窗口2:"); Ticket t3=ne原创 2013-11-03 21:15:15 · 2134 阅读 · 0 评论 -
多线程简单运用---时钟的实现
效果图: 代码:package game;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.Act原创 2013-11-05 19:58:30 · 2611 阅读 · 0 评论 -
GUI (图形界面)知识点
一:组件知识点JTextField: 作用: 定义文本域,只支持单行输入。 使用: 定义文本域: JTextField jtf=new JTextField(20); //20为列数(列:近似平均字符宽度,它与平台有关) 获取值: String jtfText=jtf.getText();原创 2013-12-21 00:20:06 · 1189 阅读 · 0 评论 -
备忘录
本篇文章为小编的备忘录,对一些遇到的各种问题的解决方法进行简单的整理,方便自己查看,大家也可以参考。1.ajax的同步异步问题var msg=''; $.ajax({ url: 'messageAction.do?reqCode=order', type: 'post', data:{ }, dataType原创 2014-10-13 22:42:32 · 1132 阅读 · 0 评论 -
JDBC连接数据库 prepareStatement
import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import team.JDBCTest;public class DBCStudent原创 2013-12-15 17:49:10 · 3463 阅读 · 0 评论 -
巩固java(六)----java中可变参数方法(非常实用哦)
java提供了可变参数的方法,即方法的参数个数可以不确定,用"..."定义。import java.util.ArrayList;import java.util.List;public class VariableParameter { //求若干个整型数中的最大值 public int getMax(int... items){ //定义可变参数item原创 2015-04-18 17:41:24 · 18307 阅读 · 4 评论 -
巩固java(七)-----java反射机制
一般而言,开发者社群说到动态语言,大致认同的一个定义是:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。尽管在这样的定义与分类下Java不是动态语言,它却有着一个非常突出的动态相关机制:Reflection。这个字的意思是“反射、映象、倒影”,用在Java身上指的是我们可以于运行时加载、原创 2015-04-18 21:25:49 · 1165 阅读 · 0 评论 -
巩固java(三)---java修饰符
正文: 下面的表格列出了java中修饰符的一些信息:修饰符名称类型类变量方法abstract非访问控制符抽象类 --抽象方法final非访问控制符最终类最终变量最终方法static非访问控制符 --静态变量静态方法原创 2015-03-22 16:38:45 · 1081 阅读 · 0 评论 -
巩固java(二)----JVM堆内存结构及垃圾回收机制
前言: 我们在运行程序时,有时会碰到内存溢出(OutOfMemoryError)的问题,为了解决这种问题,我们有必要了解JVM的内存结构和垃圾回收机制。目录: 1.JVM内存结构 2.JVM垃圾回收 3.解决堆溢出问题正文: 1.JVM堆内存结构 JVM主要管理两原创 2015-03-22 16:30:12 · 2122 阅读 · 1 评论 -
多线程的简单应用----彩票摇号器
效果图: package game;import java.awt.BorderLayout;import java.awt.Container;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Random;import javax原创 2013-11-05 18:35:32 · 2746 阅读 · 0 评论 -
猜数游戏代码--图形界面
猜数游戏:1:由系统随机产生一个数字,由用户猜,并给出偏大偏小的信息,直到猜出正确答案,系统给出猜的次数 2:共分为三个等级,等级一为一位数,等级二为两位数,等级三为三位数注意:要根据用户的不同的错误输入给出相应的处理方法,比如输入的不是数字,选择等级一而输入了两位数等等效果图: 代码: package原创 2013-11-03 16:17:04 · 6360 阅读 · 1 评论 -
巩固java(五)----通过实例理解java多态
package duotai;class A{ public String show(){ return "A"; }}class B extends A{ public String show(){ return "B"; } public String onlyB(){ return "onlyB"; } }class C extends B{ p原创 2015-04-17 21:14:10 · 1159 阅读 · 0 评论 -
Struts2(一)---struts2的环境搭建及实例
刚刚接触struts2,有点懵懵懂懂,还是习惯于先写代码,然后慢慢来理解其中的思想。 这篇文章主要内容是strusts的环境搭建及通过一个简单的例子来理解到底是怎么使用struts来简化编程的。1.项目结构如下如,包括必须的包 2.web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="ht原创 2015-09-03 15:06:38 · 4744 阅读 · 1 评论 -
websocket(一)--握手
最近在琢磨怎么实现服务端的消息推送,因为以前都是通过客户端请求来获取信息的,如果需要实时信息就得轮询,比如通过ajax不停的请求。websocket相当于对HTTP协议进行了升级,客户端和服务端通过websocket协议握手成功后,两者之间建立一个数据通道(长连接,双通道),以此来传输数据,而不必每次都由客户端发起请求。这篇文章先来通过代码来介绍怎样实现“握手”,消息推送在后边的文章中写。注意原创 2015-07-05 21:26:50 · 3074 阅读 · 0 评论