10月25
其实这是一个web搜索的基本程序,从命令行输入搜索条件,起始的URL、处理url的最大数、要搜索的字符串,它就会逐个对Internet上的URL进行实时搜索,查找并输出匹配搜索条件的页面。 这个程序的原型来自《java编程艺术》,为了更好的分析,Heck去掉了其中的GUI部分,并稍作修改以适用jdk1.5。以这个程序为基础,可以写出在互联网上搜索诸如图像、邮件、网页下载之类的“爬虫”。
先请看程序运行的过程:
D:\java>javac SearchCrawler.java
D:\java>java SearchCrawler http://127.0.0.1:8080/webhome/index.jsp 20 java
Start searching...
result:
searchString=java
http://127.0.0.1:8080/webhome/index.jsp
http://127.0.0.1:8080/webhome/reply.jsp
http://127.0.0.1:8080/webhome/learn.jsp
http://127.0.0.1:8080/webhome/download.jsp
http://127.0.0.1:8080/webhome/article.jsp
http://127.0.0.1:8080/webhome/HeckGUIOverview.htm
http://127.0.0.1:8080/webhome/myexample/Proxooldoc/index.html
http://127.0.0.1:8080/webhome/view.jsp?id=301
http://127.0.0.1:8080/webhome/view.jsp?id=297
http://127.0.0.1:8080/webhome/view.jsp?id=291
http://127.0.0.1:8080/webhome/view.jsp?id=286
http://127.0.0.1:8080/webhome/view.jsp?id=285
http://127.0.0.1:8080/webhome/view.jsp?id=284
http://127.0.0.1:8080/webhome/view.jsp?id=276
http://127.0.0.1:8080/webhome/view.jsp?id=272
先请看程序运行的过程:
D:\java>javac SearchCrawler.java
D:\java>java SearchCrawler http://127.0.0.1:8080/webhome/index.jsp 20 java
Start searching...
result:
searchString=java
http://127.0.0.1:8080/webhome/index.jsp
http://127.0.0.1:8080/webhome/reply.jsp
http://127.0.0.1:8080/webhome/learn.jsp
http://127.0.0.1:8080/webhome/download.jsp
http://127.0.0.1:8080/webhome/article.jsp
http://127.0.0.1:8080/webhome/HeckGUIOverview.htm
http://127.0.0.1:8080/webhome/myexample/Proxooldoc/index.html
http://127.0.0.1:8080/webhome/view.jsp?id=301
http://127.0.0.1:8080/webhome/view.jsp?id=297
http://127.0.0.1:8080/webhome/view.jsp?id=291
http://127.0.0.1:8080/webhome/view.jsp?id=286
http://127.0.0.1:8080/webhome/view.jsp?id=285
http://127.0.0.1:8080/webhome/view.jsp?id=284
http://127.0.0.1:8080/webhome/view.jsp?id=276
http://127.0.0.1:8080/webhome/view.jsp?id=272
10月24
1.报错除了报如题的错误外,还报了error listenerStart的错误。项目是从svn检出来的,虽然包已经放到lib中。但实际并未加到path的Libraries里,因此build path中的libraries选项卡点add jars。把没加进的包加进去就可以了。
2.把X:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\temp0\work删除掉,clean项目,重新启动tomcat即可。
3.jre版本的问题。在java的compile下面选对应的jre即可。
2.把X:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\temp0\work删除掉,clean项目,重新启动tomcat即可。
3.jre版本的问题。在java的compile下面选对应的jre即可。
10月24
我们在java中用SAX方式解析XML,XML文件如下:
<?xml version="1.0" encoding="gb2312"?>
<person>
<name>姜军</name>
<college>信息学院</college>
<telephone>6258113</telephone>
<notes>男,1985年生,将军 ,95年调入广州军区</notes>
</person>
<?xml version="1.0" encoding="gb2312"?>
<person>
<name>姜军</name>
<college>信息学院</college>
<telephone>6258113</telephone>
<notes>男,1985年生,将军 ,95年调入广州军区</notes>
</person>
10月24
首先要引入using System.Text.RegularExpressions;
string pattern = @"^[a-zA-Z0-9]+$";//正则式子
string param1 = null;
Match m = Regex.Match(this.textBox1.Text, pattern); // 匹配正则表达式,把this.textBox1.Text跟pattern正则对比
if (!m.Success) // 判断输入的是不是英文和数字,不是进入
{
param1 = this.textBox1.Text;//将现在textBox的值保存下来
// 将光标定位到文本框的最后
this.textBox1.SelectionStart = this.textBox1.Text.Length;
}
string pattern = @"^[a-zA-Z0-9]+$";//正则式子
string param1 = null;
Match m = Regex.Match(this.textBox1.Text, pattern); // 匹配正则表达式,把this.textBox1.Text跟pattern正则对比
if (!m.Success) // 判断输入的是不是英文和数字,不是进入
{
param1 = this.textBox1.Text;//将现在textBox的值保存下来
// 将光标定位到文本框的最后
this.textBox1.SelectionStart = this.textBox1.Text.Length;
}
10月23
1、从jdk1.5以后就开始出现注解了,主要有@override @depredate @supressWarning
2、怎么样生成一个注解呢?
注解个普通的接口一样,多的就是仅仅是多添加了一个@,类似
public @interface Test{
public void value() default "this is frist annation";
}
注意:注解里面可以由方法组成也可以有枚举组成等!
3、注解可以声明在类上面,也可以声明在方法上面,当然也可以声明在属性上面,可以通过@targer来表示
@targer(ElementType.Construct)//在构造器上面进行声明
ElementType.Field //在属性上面进行声明
ElementType.Method//在方法上面进行声明
ElementType.Type //在类上面进行声明
2、怎么样生成一个注解呢?
注解个普通的接口一样,多的就是仅仅是多添加了一个@,类似
public @interface Test{
public void value() default "this is frist annation";
}
注意:注解里面可以由方法组成也可以有枚举组成等!
3、注解可以声明在类上面,也可以声明在方法上面,当然也可以声明在属性上面,可以通过@targer来表示
@targer(ElementType.Construct)//在构造器上面进行声明
ElementType.Field //在属性上面进行声明
ElementType.Method//在方法上面进行声明
ElementType.Type //在类上面进行声明
10月23
最近这几天在写一个视频管理系统,遇到一个很大的问题就是如果把不同格式转换为flv格式,经过网上的一番搜索,自己在总结,整理,整理,终于整出来了!
实现了视频进行转换的同时还能够进行视频截图和删除原文件的功能!
格式转换主要原理就是先用java调用ffmpeg的exe文件!
但是有些格式是ffmpeg不能处理的比如rmvb,这样的可以先调用mencoder先把格式转换为avi再进行转换为flv。
主要写了3个类:分别为Conver.java ConverBegin.java ConverVideo.java。
下面提供有ffmpeg的exe文件的下载址。
实现了视频进行转换的同时还能够进行视频截图和删除原文件的功能!
格式转换主要原理就是先用java调用ffmpeg的exe文件!
但是有些格式是ffmpeg不能处理的比如rmvb,这样的可以先调用mencoder先把格式转换为avi再进行转换为flv。
主要写了3个类:分别为Conver.java ConverBegin.java ConverVideo.java。
下面提供有ffmpeg的exe文件的下载址。
10月23
c#中对DataGridView的一些操作,主要有对DataGridView设置字段名 、设置字段值、设定单元格表示 Error图标 、设定当前单元格、取得当前单元格内容、取得当前单元格的列 Index、 取得当前单元格的行 Index、向下一行、向上一行、取消 DataGridView1 为只读、设置 DataGridView1 为只读、设置 DataGridView1 的第2列整列单元格为只读并变色、设置 DataGridView1 的第3行整行单元格为只读并变色、设置 DataGridView1 的[0,0]单元格为只读并变色 、设置 DataGridView1 的第2列整列单元格为只读并变色、设置 DataGridView1 的第3行整行单元格为只读并变色、设置 DataGridView1 的[0,0]单元格为只读并变色、设置用户不能手动给 DataGridView1 添加新行、设置用户可以手动给 DataGridView1 添加新行、禁止DataGridView1的行删除操作、允许DataGridView1的行删除操作、DataGridView1的第一列隐藏 、DataGridView1的第一行隐藏、DataGridView1的第一列显示 、DataGridView1的第一行显示。
10月16
我们用eclipse + ADT作为android开发工具,可以说是很方便的,在HelloActivity小程序里我们就感觉到eclipse功能的强大。那么,我们可以用 eclipse来开发android源码吗?如果我们直接把android源码里一个工程导入eclipse,一般来说都会出现错误,说许多类库(包)找 不到。
今天找到关于怎样使用eclipse来开发android源码的官方文档:
https://sites.google.com/a/android.com/opensource/using-eclipse
从该文档和实践可以总结出几点:
1、可以使用eclipse来编辑JAVA程序、检查错误(主要是类库包含和语法方面),但是不能在eclipse上编译运行android源码,还是得在shell中make(或mm或mmm)
2、android源码文件夹里提供有一些eclipse配置文件,
.claapath:eclipse工程的配置文件,方便我们直接把android源码相应的文件和JAVA包导入工程
android-formatting.xml和android.importorder:这个很重要,主要是用来规范我们的编码风格,更容易使我们的代码风格一致
3、把android源码作为一个工程导入eclipse时,必须注意两点
1)、新建的工程必须是java project,不能是android project,否则会破坏android源码(一般是多添加文件/文件夹)
2)、导入前最好检查.classpath里的文件在android源码中是否有相应的文件(文件夹),否则也会破坏android源码(一般是多添加文件/文件夹)
总的来说:
1、用eclipse来编辑代码、检查错误
2、不在eclipse上编译、运行android源码程序,只能在命令行通过make(或mm或mmm)编译android源码
3、可以在eclipse上调试android源码程序(原理:eclipse通过ddms服务器在emulator上进行调试),并可以单步调试、断点调试。
今天找到关于怎样使用eclipse来开发android源码的官方文档:
https://sites.google.com/a/android.com/opensource/using-eclipse
从该文档和实践可以总结出几点:
1、可以使用eclipse来编辑JAVA程序、检查错误(主要是类库包含和语法方面),但是不能在eclipse上编译运行android源码,还是得在shell中make(或mm或mmm)
2、android源码文件夹里提供有一些eclipse配置文件,
.claapath:eclipse工程的配置文件,方便我们直接把android源码相应的文件和JAVA包导入工程
android-formatting.xml和android.importorder:这个很重要,主要是用来规范我们的编码风格,更容易使我们的代码风格一致
3、把android源码作为一个工程导入eclipse时,必须注意两点
1)、新建的工程必须是java project,不能是android project,否则会破坏android源码(一般是多添加文件/文件夹)
2)、导入前最好检查.classpath里的文件在android源码中是否有相应的文件(文件夹),否则也会破坏android源码(一般是多添加文件/文件夹)
总的来说:
1、用eclipse来编辑代码、检查错误
2、不在eclipse上编译、运行android源码程序,只能在命令行通过make(或mm或mmm)编译android源码
3、可以在eclipse上调试android源码程序(原理:eclipse通过ddms服务器在emulator上进行调试),并可以单步调试、断点调试。
10月16
目前有一个项目需要开发一个开机自启动的GTD应用程序来提醒用户的一些重要日程安排,对于这类应用,Android提供了一个BroadcastReceiver组件来对于应用程序的运行环境进行监听,并对于各种事件进行对应的处理。使用BroadcastReceiver十分简单,我们只需要在AndroidManifest.xml或者我们的代码中进行相应的注册(这也是Android开发的两种方式)。这样之后在广播事件到来时,我们就能通过重写BroadcastReceiver的onReceive()方法来执行相应的操作。
下面简单来演示如何开发开机自启动应用。
1.建立一个名为Boot的Android应用。
2.简单实现BootActivity的应用界面,在此实现了一个TextView的实例来开机后显示一句话内容。
TextView textView=new TextView(this);
textView.setText("这是一个开机自启动应用程序");
setContentView(textView);
3.创建一个BootBroadcastReveiver的类,实现了抽象类BroadcastReceiver。以下是整个代码。
下面简单来演示如何开发开机自启动应用。
1.建立一个名为Boot的Android应用。
2.简单实现BootActivity的应用界面,在此实现了一个TextView的实例来开机后显示一句话内容。
TextView textView=new TextView(this);
textView.setText("这是一个开机自启动应用程序");
setContentView(textView);
3.创建一个BootBroadcastReveiver的类,实现了抽象类BroadcastReceiver。以下是整个代码。
10月15
一、建议的连接池配置方法:
Tomcat 6 配置 Oracle XE数据库连接池
搞了我差不多6个小时,终于把连接池配起来了。快点写下来,免得以后忘了,呵呵。其实也就3步而已。
1、把相关的jar文件复制到tomcat/lib目录中。
主要就是jdbc/lib下的jar包,还有LIB下的jar包。
2、修改工程目录的WebRoot/WEB-INF/web.xml文件,加入下面的配置:
Tomcat 6 配置 Oracle XE数据库连接池
搞了我差不多6个小时,终于把连接池配起来了。快点写下来,免得以后忘了,呵呵。其实也就3步而已。
1、把相关的jar文件复制到tomcat/lib目录中。
主要就是jdbc/lib下的jar包,还有LIB下的jar包。
2、修改工程目录的WebRoot/WEB-INF/web.xml文件,加入下面的配置:







