
Java技术专题
文章平均质量分 86
teemai
这个作者很懒,什么都没留下…
展开
-
送可用分
我户头下的积分有50000多,送给真正需要积分的同学,请留下id,晚些时候我会统一送,每个id送1000,本次送10位同学。如果你对JavaMVC框架感兴趣,请把楼主码的内容看完。离开优快云好几个年头,想起当年天天泡在论坛里,从啥都不懂天天发帖问问题到后来慢慢能解答一些问题,这个过程还是记忆犹新,特别是在对一些技术一知半解的时候,很多时候就寄希望于优快云能有新回帖提醒,那种新手等答案的心...原创 2019-12-24 12:57:46 · 548 阅读 · 27 评论 -
【使用JSOUP实现网络爬虫】清理HTML-消除不受信任的html (来防止xss攻击)
问题在做网站的时候,经常会提供用户评论的功能。有些不怀好意的用户,会搞一些脚本到评论内容中,而这些脚本可能会破坏整个页面的行为,更严重的是获取一些机要信息,此时需要清理该HTML,以避免跨站脚本cross-site scripting攻击(XSS)。方法使用jsoup HTML Cleaner 方法进行清除,但需要指定一个可配置的 Whitelist。String unsafe = "L原创 2013-11-18 11:23:23 · 18277 阅读 · 1 评论 -
【使用JSOUP实现网络爬虫】修改数据-设置一个元素的HTML内容
问题你需要一个元素中的HTML内容方法可以使用Element中的HTML设置方法具体如下:Element div = doc.select("div").first(); // div.html("lorem ipsum"); // lorem ipsumdiv.prepend("First");//在div前添加html内容div.append("Last");//在div之后添加html原创 2013-11-15 10:30:41 · 8735 阅读 · 0 评论 -
【使用JSOUP实现网络爬虫】获取所有链接
这个示例程序将展示如何从一个URL获得一个页面。然后提取页面中的所有链接、图片和其它辅助内容。并检查URLs和文本信息。运行下面程序需要指定一个URLs作为参数import org.jsoup.Jsoup;import org.jsoup.helper.Validate;import org.jsoup.nodes.Document;import org.jsoup.nodes.Elemen原创 2013-11-11 16:09:02 · 16935 阅读 · 5 评论 -
【使用JSOUP实现网络爬虫】从元素抽取属性,文本和HTML
问题在解析获得一个Document实例对象,并查找到一些元素之后,你希望取得在这些元素中的数据。方法要取得一个属性的值,可以使用Node.attr(String key) 方法 对于一个元素中的文本,可以使用Element.text()方法对于要取得元素或属性中的HTML内容,可以使用Element.html(), 或 Node.outerHtml()方法示例:String html =原创 2013-11-07 13:43:48 · 13172 阅读 · 0 评论 -
【使用JSOUP实现网络爬虫】修改数据-设置属性的值
问题在你解析一个Document之后可能想修改其中的某些属性值,然后再保存到磁盘或都输出到前台页面。方法可以使用属性设置方法 Element.attr(String key, String value), 和 Elements.attr(String key, String value).假如你需要修改一个元素的 class 属性,可以使用 Element.addClass(String clas原创 2013-11-14 15:31:10 · 9616 阅读 · 1 评论 -
【使用JSOUP实现网络爬虫】处理URLs
问题你有一个包含相对URLs路径的HTML文档,需要将这些相对路径转换成绝对路径的URLs。方法在你解析文档时确保有指定base URI,然后使用 abs: 属性前缀来取得包含base URI的绝对路径。代码如下: Document doc = Jsoup.connect("http://www.open-open.com").get();Element link = doc.select("原创 2013-11-08 14:14:15 · 7386 阅读 · 1 评论 -
【使用JSOUP实现网络爬虫】从一个URL加载一个Document
存在问题你需要从一个网站获取和解析一个HTML文档,并查找其中的相关数据。你可以使用下面解决方法:解决方法使用 Jsoup.connect(String url)方法:Document doc = Jsoup.connect("http://example.com/").get();String title = doc.title(); 说明 connect(String url) 方法创建一原创 2013-10-30 14:28:05 · 12455 阅读 · 0 评论 -
【使用JSOUP实现网络爬虫】修改数据-设置元素的文本内容
问题你需要修改一个HTML文档中的文本内容方法可以使用Element的设置方法::Element div = doc.select("div").first(); // div.text("five > four"); // five > fourdiv.prepend("First ");div.append(" Last");// now: First five > four Last原创 2013-11-18 11:16:45 · 11831 阅读 · 0 评论 -
【使用JSOUP实现网络爬虫】使用DOM方法来遍历一个文档
问题你有一个HTML文档要从中提取数据,并了解这个HTML文档的结构。方法将HTML解析成一个Document之后,就可以使用类似于DOM的方法进行操作。示例代码:File input = new File("/tmp/input.html");Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");Element原创 2013-11-05 15:23:47 · 8795 阅读 · 0 评论 -
算法小题:m个相同的苹果,放在n个相同的盘子中,求有多少种结果
这也是回答问题的时候网友问的一个问题,m个相同的苹果,放在n个相同的盘子中,由于相同,使用排列组合的方法不好处理。这个解题思路很多。我这里讲其中一个比较好理解的解法:①最少的盘子放了一个,这样每个盘子至少一个,n个盘子先放上n个,剩下的m-n个可以随便放 ②最少的盘子没有放,这样剩下的n-1个盘子还是随便放m个 代码实现:import java.util.Scanner;public cl原创 2013-10-29 14:41:44 · 11250 阅读 · 1 评论 -
Java多线程之Lock的使用
今天带来一个Lock的范例:原创 2012-09-03 16:48:27 · 1017 阅读 · 0 评论 -
Java BigDecimal使用
Java 理论与实践: 您的小数点到哪里去了?使用浮点数和小数中的技巧和陷阱Brian Goetz, 首席顾问, Quiotix CorpBrian Goetz 是一位软件顾问,在过去的 15 年里一直是一位专业软件开发人员。他是Quiotix的首席顾问,原创 2011-08-25 11:03:37 · 7671 阅读 · 0 评论 -
JDK源码学习——Integer基本数据类的缓存
1.Integer、Long、Float、Double基本数据类问题来源:今天偶然看到了Integer.valueOf()方法,而查看资料显示【.valueof()是一个静态方法,同时调用几次该方法来创建Integet对象,最终都是调用到同一个Integer实例。】由原创 2011-08-18 17:20:59 · 6390 阅读 · 0 评论 -
Uploadify + Struts2 应用之分析与详解
Uploadify是一个Jquery框架下处理批量文件上传的插件,支持多种服务器端软件。遗憾的是,官网(www.uploadify.com)的说明文档做得很不完善,着重于说明Js部分的配置,而没有对服务端的数据接口进行详细说明。而且由于与服务器端进行数据交互的部分被封装在swf文件中,也很难从源代码进行分析。 1) 分析基于此,为了探索Uploadify在Struts2下的应用接口数据原创 2012-02-19 15:36:33 · 2456 阅读 · 1 评论 -
JSP高清缩略图JMagick使用
JSP高清缩略图JMagick使用,实现了对图片的多种操作,合成图片,缩略图、复制数据等等...。首先下载:http://downloads.jmagick.org/6.3.9/ImageMagick-6.3.9-0-Q16-windows-dll.exehttp://downloads.jmagick.org/6.3.9/jmagick-win-6.3.9-Q16.zip原创 2010-02-12 16:50:00 · 4672 阅读 · 1 评论 -
【Java数据结构】Java数据结构之链表反转
我们都知道用C可以很简单的实现单链表反转,今天来学习下,在Java中如何实现链表反转。思路很简单,定义一个类,这个类分成2块,一块是表示自身的标志,另外一个存储指向下一个元素的引用。通过互换相邻两个节点的引用来达到链表反转的效果。上代码:package com.withiter.test;public class ReverseList { /** * @param args原创 2013-09-06 17:18:57 · 6799 阅读 · 0 评论 -
读取Jar包中的资源问题探究
最近在写一个可执行jar的程序,程序中包含了2个资源包,一个是images,一个是files。问题来了,在Eclipse里开发的时候,当用File类来获取files下面的文件时,没有任何问题。但是当程序导出为Runnable Jar时,运行程序时抛出异常,File not found。我们来一探究竟。首先是我的工程目录结构:程序中访问images下的图片代码:setIconIm原创 2013-09-23 11:38:33 · 21900 阅读 · 2 评论 -
Java通信——聊天程序
好多人消息给我要源码,源码在博文最后有链接啊!我还是把下载地址弄到开头吧!源码免费下载:http://download.youkuaiyun.com/detail/huxiweng/4421485今天要做一个license生成器,就想用Swing来做,发现Swing的知识忘的差不多了,把毕业前写的一个聊天程序回头看了下,算是回顾回顾Swing的知识,呵呵。这个程序十分简单,就实现了群聊和私原创 2012-07-10 20:07:42 · 10394 阅读 · 18 评论 -
【使用JSOUP实现网络爬虫】使用选择器语法来查找元素
问题你想使用类似于CSS或jQuery的语法来查找和操作元素。方法可以使用Element.select(String selector) 和 Elements.select(String selector) 方法实现:File input = new File("/tmp/input.html");Document doc = Jsoup.parse(input, "UTF-8", "http:原创 2013-11-06 16:36:58 · 9849 阅读 · 1 评论 -
【使用JSOUP实现网络爬虫】从一个文件加载一个文档
问题在本机硬盘上有一个HTML文件,需要对它进行解析从中抽取数据或进行修改。办法可以使用静态 Jsoup.parse(File in, String charsetName, String baseUri) 方法:File input = new File("/tmp/input.html");Document doc = Jsoup.parse(input, "UTF-8", "http://原创 2013-11-03 22:23:21 · 4889 阅读 · 0 评论 -
【优快云常见问题解答】Swing监听组合键
其实监听键盘事件和简单,键盘也就这3个事件keyTyped, keyReleased, keyPressed下面我们就监听一个CTRL+C组合键好了。import java.awt.Color;import java.awt.Frame;import java.awt.Panel;import java.awt.TextArea;import java.awt.event.KeyEvent原创 2013-12-10 17:37:14 · 11415 阅读 · 0 评论 -
【优快云常见问题解答】Java中JSON转XML
前几天在论坛上回答问题的代码,写下来记录下:import net.sf.json.JSONObject;import net.sf.json.xml.XMLSerializer;public class JSONToXml { private static final String STR_JSON = "{\"name\":\"Michael\",\"address\":{\"city\原创 2013-10-29 14:17:41 · 7940 阅读 · 0 评论 -
【优快云常见问题解答】用HTTPClient自动登录Tomcat管理页面
前提是你在你的tomcat-users.xml下配置好admin用户:<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for ad原创 2013-11-04 11:36:50 · 3792 阅读 · 0 评论 -
【优快云常见问题解答】Java单例模式分析
今天中午闲着没事,就随便写点关于Java单例模式的。其实单例模式实现有很多方法,这里我将对这些方法进行对比分析:第一种:public class Singleton2 { private Singleton2(){ System.out.println("This is Singleton2's instance."); }; private static Singlet原创 2012-11-02 13:02:04 · 10137 阅读 · 2 评论 -
【优快云常见问题解答】Thread的run()和start()方法
看清楚Thread类中run()和start()方法的区别:run()方法:如果在其他地方调用run方法,就是调用一个普通方法。和其他调用方法一样,比如person.eat(); 而且直接调用run可以重复多次调用;start()方法:启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个线程。上个例子,注释说的很清楚!public class ThreadTest {原创 2013-12-12 11:21:42 · 6701 阅读 · 2 评论 -
【优快云常见问题解答】目录文件编码转换
有时候导入一个工程到Eclipse中发现中文乱码了。原因就是工程的编码格式变了。比如从UTF-8变成了GBK等等。此时我们手动去改的话十分麻烦。下面这个类就是用来改变整个目录的编码的,详细请看代码。import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import ja原创 2013-12-13 23:23:32 · 6842 阅读 · 0 评论 -
【优快云常见问题解答】JSON和XML格式互相转换
JSON格式和XML格式都是比较常见的数据存储格式。但是有时候我们会从接口从服务器或者其他途径调用返回的结果并不是我们想要的。常见的就是我需要XML格式的,结果服务器返回给我的是JSON格式。今天的常见问题就是,Java中JSON和XML如何互相转换。首先还是老规矩,上测试代码:import net.sf.json.JSONObject;import net.sf.json.xml.XMLSer原创 2013-12-30 14:33:58 · 10980 阅读 · 4 评论 -
【优快云常见问题解答】Javap 的使用
现在Java反编译工具或者插件非常多,也非常好用。比如我用的比较多得jd-gui。所以我们可能很少有机会使用到Javap命令。这里我简单介绍下Javap,带各位入个门。介绍下这个命令不是使用它进行反编译,而是查看java编译器为我们生成 的字节码,通过比较字节码和源代码,我们可以发现很多的问题,一个很重要的作用就是了解很多编译器内部的工作机制。下面我们通过具体的一个例子来简单的讲讲这个工具的作用,原创 2014-04-07 22:04:08 · 11813 阅读 · 2 评论 -
【优快云常见问题解答】使用JNA调用Windows动态库
Java中调用Windows平台的动态库一般会使用JNI(Java Native Interface)还有JNA(Java Native Access)。首先解释下为什么我会选用JNA,一句话来说就是使用简单。我们知道,使用JNI调用.dll/.so共享类库是非常非常麻烦和痛苦的。 如果有一个现有的.dll/.so文件,如果使用JNI技术调用,我们首先需要另外使用C语言写一个.dll/.so共享库原创 2013-12-10 10:09:50 · 8865 阅读 · 1 评论 -
【优快云常见问题解答】Web上传图片生成指定大小图片
在使用playframework的时候,发现框架提供了一个Image类,这个类可以实现生成指定大小的图片功能,我们来看下这个类: /** * Resize an image * @param originalImage The image file * @param to The destination file * @param w The原创 2013-10-20 22:21:37 · 7702 阅读 · 0 评论 -
【使用JSOUP实现网络爬虫】解析一个body片断
问题假如你有一个HTML片断 (比如. 一个 div 包含一对 p 标签; 一个不完整的HTML文档) 想对它进行解析。这个HTML片断可以是用户提交的一条评论或在一个CMS页面中编辑body部分。办法使用Jsoup.parseBodyFragment(String html)方法.String html = "Lorem ipsum.";Document doc = Jsoup.parseBo原创 2013-10-29 16:59:21 · 8482 阅读 · 2 评论 -
【使用JSOUP实现网络爬虫】解析一个HTML字符串
存在问题来自用户输入,一个文件或一个网站的HTML字符串,你可能需要对它进行解析并取其内容,或校验其格式是否完整,或想修改它。怎么办?jsonu能够帮你轻松解决这些问题解决方法使用静态Jsoup.parse(String html) 方法或 Jsoup.parse(String html, String baseUri)示例代码:String html = "First parse" + "P原创 2013-10-29 16:57:50 · 9373 阅读 · 2 评论 -
【Android开发那点破事】Android2个Activity之间传递对象
今天的破事,我们来聊聊在Android中,如果在两个Activity之间传递对象。首先我们知道利用Intent的putExtra方法放入要传递的数据。看看API上的函数: Intent putExtra(String name,原创 2013-11-25 16:56:39 · 18399 阅读 · 5 评论 -
Swing 透明窗体实现
今天在论坛里回答问题的时候,网友问了个问题,swing怎样实现窗口透明。这里需要用到第三方的jna。jna-3.3.0-platform.jar包下载:点击打开链接废话先少说了,先把代码贴出来:import java.awt.Color;import java.awt.GradientPaint;import java.awt.Graphics;import java.awt.Graphic原创 2013-11-13 14:47:44 · 6845 阅读 · 4 评论 -
【优快云常见问题解答】如何避免表单重复提交
1、第一个我个人觉得是最好的:Token。Token的基本原理:服务器端在处理到达的请求之前,会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中保存的旧的令牌进行替换。这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌就和服务器端的令牌不一致,从而有效地原创 2013-12-08 15:17:45 · 7381 阅读 · 1 评论 -
【优快云常见问题解答】Java Socket通信(TCP/UDP)
以前写过一个局域网通信工具,很简单的。但是这系列文章是用来解决新手问题的。所以打算写个最简单的demo。废话少说,先来个基于TCP的。上server端代码:import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.InputStream;import java.io.OutputStream;原创 2013-12-09 17:29:04 · 7393 阅读 · 0 评论 -
【优快云常见问题解答】Java多种数据库连接
此系列文章是基于优快云论坛Java版提出的问题进行整理的,旨在建立一个常见问题索引,方便新手阅读。本次优快云常见问题是Java连接数据库代码,因为不同数据库使用的连接驱动不一样,而且记忆较为繁琐。整理如下:JDBC-ODBC:String Driver="sun.jdbc.odbc.JdbcOdbcDriver"; String URL="jdbc:odbc:dbsource";原创 2013-12-09 16:13:01 · 8591 阅读 · 0 评论 -
【优快云常见问题解答】Java如何读取XML文件
今天的优快云常见问题来讲解下在Java中如何读取XML文件的内容。直接上代码吧,注释写的很清楚了!import java.io.*;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;import org.w原创 2013-12-09 15:31:40 · 7201 阅读 · 1 评论 -
Morphia 注解详解
1、@Entity 如果你想通过Morphia把你的对象保存到Mongo中,你首先要做的是使用@Entity注解你的类:import com.google.code.morphia.annotations.Entity; @Entity public class Hotel { ... } A、名称和构造方法你可以为你的MongoDBDBConllection设原创 2013-07-16 13:29:27 · 6820 阅读 · 0 评论