汉字编码是一项较为麻烦的事情,弄不好就会造出些谁都看不懂的乱码。比如我想做个针对汉字网站的爬虫系统,需要对非特定的页面进行数据解析处理,而此时我所访问的页面编码格式未知,如果不能正确处理页面编码,则很难获得我们理想中的数据。 通常这时候可能有几种选择: 一是根据response的ContentType获得,如果服务器支持的话此项中会返回charset数值,解析即可。但对不返回或者不支持的服务器则无能为力。 二是使用正则或自定义解析函数截取页面中‘charset=’后的数据,采取死钉战术,但万一采集的页面中没有此项或者此项有错,也就回天乏术。 三就是老老实实的解析全文,最后返回一个符合的 ...
众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。 大家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。 自从jdk1.4推出java.util.regex包,就为我们提供了很好的JAVA正则表达式应用平台。 因为正 ...
3、模板 (1)整体结构 l 模板使用FTL(FreeMarker模板语言)编写,是下面各部分的一个组合: Ø 文本:直接输出 Ø Interpolation:由${和},或#{和}来限定,计算值替代输出 Ø FTL标记:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出 Ø 注释:由<#--和-->限定,不会输出 l 下面是以一个具体模板例子: <html>[BR] <head>[BR] <title>Welcome!&l ...
2、数据模型 (1)基础 l 在快速入门中介绍了在模板中使用的三种基本对象类型:scalars、hashes 和sequences,其实还可以有其它更多的能力: Ø scalars:存储单值 Ø hashes:充当其它对象的容器,每个都关联一个唯一的查询名字 Ø sequences:充当其它对象的容器,按次序访问 Ø 方法:通过传递的参数进行计算,以新对象返回结果 Ø 用户自定义FTL标记:宏和变换器 l 通常每个变量只 ...
1、快速入门 (1)模板 + 数据模型 = 输出 l FreeMarker基于设计者和程序员是具有不同专业技能的不同个体的观念 l 他们是分工劳动的:设计者专注于表示——创建HTML文件、图片、Web页面的其它可视化方面;程序员创建系统,生成设计页面要显示的数据 l 经常会遇到的问题是:在Web页面(或其它类型的文档)中显示的信息在设计页面时是无效的,是基于动态数据的 l 在这里,你可以在HTML(或其它要输出的文本)中加入一些特定指令,FreeMarker会在输出页面给最终用户时,用适当的数据替代这些代码 l ...
l         FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 l         FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序 l         虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面 ...
记得上个月Dejan Cancarevic才为我们介绍了一篇CSS好文“10 best CSS hacks”,想不到他又为我们贡献了一篇力作:Most used CSS tricks,感谢DC。本文章延用了上篇文章的风格,另外还为每个tips添加了效果图,让大家有了更直观的感觉。tips列表如下: 1. Rounded corners without images <div id=”container”> <b class=”rtop”> <b class=”r1″></b> <b class=”r2″></b> <b class=”r3″>&l ...
Jakarta common: Commons Logging Jakarta Commons Logging (JCL)提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于具体的日志实现工具。 它提供给中间 件/日志工具开发者一个简单的日志操作抽象,允许程序开发人员使用不同的具体日志实现工具。用户被假定已熟悉某种日志实现工具的更高级 别的细节。JCL提供的接口,对其它一些日志工具,包括Log4J, Avalon LogKit, and JDK 1.4等,进行了简单的包装,此接口更接近于Log4J和 LogKit的实现. Commons-Latka Comm ...
Spring压缩包目录说明 关键字: sring jar 1. Spring压缩包目录说明 aspectj目录下是在Spring框架下使用aspectj的源代码和测试程序文件。 Aspectj是java最早的提供AOP的应用框架。 dist 目录下是Spring 的发布包,关于发布包下面会详细进行说明。 docs 目录下是相关的文档,包括有Spring api 的javadoc、reference 参考指南、Spring的标签库使用文件及Spring MVC 的MVC-step-by-step 讲解与示例。都是很好的文档,值得好好研究一下。 lib 目录下是Spring 所依赖 ...
Oracle的索引 索引和对应的表应该位于不同的表空间中,oracle能够并行读取位于不同硬盘上的数据,可以避免产生I/O冲突 B树索引:在B树的叶节点中存储索引字段的值与ROWID。 唯一索引和不唯一索引都只是针对B树索引而言. Oracle最多允许包含32个字段的复合索引 索引创建策略 1.导入数据后再创建索引 2.不需要为很小的表创建索引 3.对于取值范围很小的字段(比如性别字段)应当建立位图索引 4.限制表中的索引的数目 5.为索引设置合适的PCTFREE值 6.存储索引的表空间最好单独设定 创建不唯一索引 create index emp_enam ...
Oracle的索引 索引和对应的表应该位于不同的表空间中,oracle能够并行读取位于不同硬盘上的数据,可以避免产生I/O冲突 B树索引:在B树的叶节点中存储索引字段的值与ROWID。 唯一索引和不唯一索引都只是针对B树索引而言. Oracle最多允许包含32个字段的复合索引 索引创建策略 1.导入数据后再创建索引 2.不需要为很小的表创建索引 3.对于取值范围很小的字段(比如性别字段)应当建立位图索引 4.限制表中的索引的数目 5.为索引设置合适的PCTFREE值 6.存储索引的表空间最好单独设定 创建不唯一索引 create index emp_enam ...
Oracle数据库可以以两种声明方式创建6种类型的约束。 1>. NOT NULL constraint 保证数据值不为空。 2>. UNIQUE constraint 保证该列或组合的多列值唯一,可以有部分值为空。 3>. PRIMARY KEY constraint 是NOT NULL 和 UNIQUE的组合使用,也就是将这两种约束使用到同一列 上。 4>. FOREIGN KEY constraint 引用的值在另外一个表中也出现过。 5>. CHECK constraint 保证数据值在指定的条件中。 6>. REF constraint 引用其它的表或对象类 ...
create table test(a varchar2(20),b number(2)) 重名命 alter table test rename to test1 (rename test1 to test2) 增删字段 alter table test2 drop column f 修改字段类型和大小 alter table test2 modify d varchar(40) alter table test2 modify f varchar(40) alter table test2 add c varchar ...
SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2.CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 from dual; Z ...
事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture(); event.srcElement.releaseCapture(); 事件按键 event.keyCode event.shiftKey event.altKey event.ctrlKey 事件返回值 event.returnValue 鼠标位置 event.x event.y 窗体活动元素 document.activeElement 绑定事件 document.captureEvents(Even ...
一、 只复制一个表结构,不复制数据 select top 0 * into [t1] from [t2] 二、 获取数据库中某个对象的创建脚本 1、 先用下面的脚本创建一个函数 if exists(select 1 from sysobjects where id=object_id('fgetscript') and objectproperty(id,'IsInlineFunction')=0) drop function fgetscript go create function fgetscript( @servername varchar(50) - ...
log4j是java开发人员开发中最常用的日志工具,但是未必每个人都很明白地使用它。 本文将log4j的一些知识点做了归纳总结,有助于开发人员更加清楚的掌握log4j,遇到一些与日志相关的问题,知道如何更好地处理。 1、Log4j.properties中至少有一个appender和一个logger。 2、log4j的初始化,通常我们需要把log4j.jar和Log4j.properties或者log4j.xml放入classpath,log4j默认会在classpath中寻找log4j的配置文件,当然我们也可以指定配置文件所在的位置。 比如: set JAVA_OPTS=%JA ...
DisplayTag是一个非常好用的表格显示标签,适合MVC模式,其主页在http://displaytag.sourceforge.net/ 一、最简单的情况,未使用<display:column/>标签 <%request.setAttribute( "test", new ReportList(6) );%> <display:table name="test" /> 标签遍历List里的每一个对象,并将对象里的所有属性显示出来。一般用于开发的时候检查对象数据的完整性。 二、使用<display:column/>标签的情况 < ...
很多朋友只用了Oracle的删除,但很多情况下,他会发现重新安装时,点了下一步安装界面就消失了,往往无奈下只好重装系统,其实只是你数据库没删干净,删干净就不会出现这种情况了。   实现方法:   1、开始->设置->控制面板->管理工具->服务停止所有Oracle服务。   2、开始->程序->Oracle - OraHome81->Oracle Installation Products->Universal Installer卸装所有Oracle产品,但Universal Installer本身不能被删除。   3、运行regedit,选择HKEY_LOCAL_MACHIN ...
import java.io.UnsupportedEncodingException; import javax.servlet.http.HttpServletRequest; /** * <p>Title:Request的参数转换</p> * <li>从Request取得的各种变量类型的转换</li> */ public class ReqUtils { /** * @param request request * @throws UnsupportedEncodingException */ public ...
/** Title:MD5加密算法,用来加密用户密码。 */ public class MD5 { static final int S11 = 7; static final int S12 = 12; static final int S13 = 17; static final int S14 = 22; static final int S21 = 5; static final int S22 = 9; static final int S23 = 14; static final int S2 ...
import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.File; <p>import javax.imageio.ImageIO; /******************************************************************* * 该JavaBean可 ...
一.获得控制台用户输入的信息 文本查看复制到剪贴板打印? /**获得控制台用户输入的信息 * @return * @throws IOException */ public String getInputMessage() throws IOException...{ System.out.println("请输入您的命令∶"); byte buffer[]=new byte[1024]; int count=System.in.read(buffer); char[] ch=new char[count-2];//最后 ...
(一)断点续传的原理 其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。 打个比方,浏览器请求服务器上的一个文时,所发出的请求如下: 假设服务器域名为wwww.sjtu.edu.cn,文件名为down.zip。 GET /down.zip HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms- excel, application/msword, application/vnd.ms-powerpoint, */* Accept-Language: ...
import java.awt.*; import java.awt.image.*; import java.io.*; import javax.swing.*; import com.sun.image.codec.jpeg.*; public class WaterMark ...{ /** *//** * 给图片添加水印 * @param filePath 需要添加水印的图片的路径 * @param markContent 水印的文字 * @param markContentColor 水印文字的颜色 * @param qualNum 图片质量 * @r ...
Beanutils用了魔术般的反射技术,实现了很多夸张有用的功能,都是C/C++时代不敢想的。无论谁的项目,始终一天都会用得上它。我算是后知后觉了,第一回看到它的时候居然错过。 1.属性的动态getter、setter 在这框架满天飞的年代,不能事事都保证执行getter,setter函数了,有时候属性是要根据名字动态取得的,就像这样:   BeanUtils.getProperty(myBean,"code");而Common BeanUtils的更强功能在于可以直接访问内嵌对象的属性,只要使用点号分隔。 BeanUtils.getProperty(orderBean, "addres ...
方法1:[第一种方法比后一种生成的缩略图要清晰] import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.WritableRaster; import java.awt.*; import java.awt.geom.AffineTransform; import java.io.InputStream; import java.io.File; import java.io.FileOu ...
//程序说明: 要导入jxl.jar到Classpath中。 import jxl.*; import java.io.*; import jxl.write.*; /** * <p>java读取Excel表格,拷贴心、更新Excel工作薄 </p> */ public class Test1 { public static void main(String[] args) { jxl.Workbook rwb = null; try{ //构建Workbook对象 只读Workbook对象 //直接从本地文件创建Workbook //从输入流创建W ...
(一)断点续传的原理 其实断点续传的原理很简单,就是在Http的请求上和一般的下载有所不同而已。打个比方,浏览器请求服务器上的一个文时,所发出的请求如下: 假设服务器域名为wwww.sjtu.edu.cn,文件名为down.zip。 GET /down.zip HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms- excel, application/msword, application/vnd.ms-powerpoint, */* Accept-Lang ...
2008-04-22

内部类

本文主要参照网上的一些相关文章、以及thinking in java 第三版,对java里面的内部类进行了一个较为详细的总结 内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限)。内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类 为什么需要内部类? 典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其的外围类的对象。所以你可以认为内部类提供了某种进入其外围类的窗口。使用内部类最吸引人的原因是: 每个内部类都 ...
wing929
搜索本博客
最近加入圈子
存档
最新评论