一起去看海

2010/06/01

六一快乐!

Filed under: 生活点滴 — Tags: — admin @ 13:53

今天是六一儿童节,祝各位小盆友和大盆友节日快乐!不知不觉有10天没写博客了,话说自从用了微博以后博客就越发写的少了。近来也忙于毕设的事情,更少的时间写博客,做网站了。现在还在更新的就只有每日一站这一颗独苗,其它数个网站都被我无情的冷落了……

先好好过完这最后一个月吧,毕业的人都是一杯具。。。

2010/05/21

struts2中使用jsp:forward命令

Filed under: Web开发 — Tags: — admin @ 20:47

工程中用到了struts2,index.jsp中使用jsp:forward命令跳转来执行action,web.xml中需要做如下配置:

[xml]<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>[/xml]

不明白为什么要这样配置,有时间好好研究一下。如果觉得配置web.xml很麻烦,不如使用jstl的redirect标签来跳转,可以达到一样的效果。

[xml]<c:redirect url="/login.action"></c:redirect>[/xml]

2010/05/20

java备份mysql数据库

Filed under: Java笔记 — Tags: — admin @ 13:16

java备份mysql数据库的备忘。开始找了个非常长的程序,通过读取控制台执行备份命令后的输出再保存为文件,显得十分麻烦。想到命令行里有重定向符号,可以将输出直接保存为文件,修改后程序就十分短了。

执行的时候mysql的bin目录一定要在path里面。早上在添加了环境变量之后没有重启Eclipse,程序一直没跑过。

[java]package com.ooobj.db;

public class DBBackup {

public void backup() {
try {
String mysql = "mysqldump -uroot -padmin dianiks > D:/temp/dianiks.sql";
java.lang.Runtime.getRuntime().exec("cmd /c " + mysql);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void load() {

try {
String mysql = "mysqladmin -uroot -padmin create dianiks";
java.lang.Runtime.getRuntime().exec("cmd /c " + mysql);
String path = "mysql -uroot -padmin dianiks < D:/temp/dianiks.sql";
java.lang.Runtime.getRuntime().exec("cmd /c " + path);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}

public static void main(String[] args) {
DBBackup db = new DBBackup();
db.backup();
db.load();
}

}[/java]

2010/05/17

调试工具1.1版

Filed under: Java笔记 — Tags: — admin @ 22:15

上周写了个调试工具,功能很简单http://www.ooobj.com/2010/05/debug-tool/。今天给加了个查找的功能,代码从网上找的记事本代码中抽出来的,呵呵。

部分代码:

[java]private DebugMsg() {
f = new JFrame("调试工具");
Container contentPane = f.getContentPane();
contentPane.setLayout(new BorderLayout());

textArea = new JTextArea(20, 40);
textArea.setEditable(false);
JScrollPane scroll = new JScrollPane(textArea);

JButton clear = new JButton("清除");
clear.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
clearText();
}
});

JMenuBar menuBar = new JMenuBar();
JMenu toolMenu = new JMenu("工具");
menuBar.add(toolMenu);
JMenu helpMenu = new JMenu("帮助");
menuBar.add(helpMenu);

JMenuItem helpItem = new JMenuItem("使用帮助");
helpItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
textArea.setText("Ctrl+F 查找\n" +
"Ctrl+D 清除消息\n" +
"Ctrl+Q 退出\n" +
"查看更新:www.ooobj.com\n");
}
});
helpMenu.add(helpItem);

JMenuItem findItem = new JMenuItem("查找");
findItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mySearch();
}
});
findItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, Event.CTRL_MASK));
toolMenu.add(findItem);

JMenuItem clearItem = new JMenuItem("清除");
clearItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
clearText();
}
});
clearItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, Event.CTRL_MASK));
toolMenu.add(clearItem);

JMenuItem quitItem = new JMenuItem("退出");
quitItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(-1);
}
});
quitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, Event.CTRL_MASK));
toolMenu.add(quitItem);

contentPane.add(scroll, BorderLayout.CENTER);
contentPane.add(clear, BorderLayout.SOUTH);
contentPane.add(menuBar, BorderLayout.NORTH);

f.pack();
f.setVisible(true);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

}[/java]

调试工具1.1代码下载

调试工具

2010/05/13

冠军!永恒的纪念

Filed under: 生活点滴 — Tags: — admin @ 13:13

系里的毕业杯足球赛落下帷幕,我们电34终于夺冠了!冠军之路可谓是一波三折。半决赛中发生险些被淘汰,但是在点球大战中力克对手晋级决赛。星期一半决赛,星期三决赛,休息的时间太短,队员的体力普遍没有恢复。而对方已经休息了一个星期了,但是我们也有优势,刚赢了球,士气正盛。三天内踢了两场硬仗,而且都拿下了。在即将离校的时刻,这个冠军真的太有意义了。平时大家各忙各的,很少有时间一起组织活动,难得有个机会一起拼搏。相信这次比赛将会是大家在大学中最有意义的一件事情!

十年后聚会,我们还要一起喊:我们是冠军!

冠军队伍合影

决赛队伍合影

2010/05/09

一个简单的信息输出调试工具

Filed under: Java笔记 — Tags: — admin @ 09:46

平时做项目经常需要debug但是没办法debug,于是都要system.out来查看相关的信息。前几天做项目的时候突然发现system.out失灵了,估计是在哪里被重定向了,急切间又找不到在哪个地方恢复。于是自己写了一个小工具来帮助开发。

[java]package com.ooobj.debug;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class DebugMsg {

private JTextArea textArea = null;

private static DebugMsg dm = null;

public static DebugMsg getInstance() {
if (dm == null) {
dm = new DebugMsg();
}
return dm;
}

private DebugMsg() {
JFrame f = new JFrame("Debug Message");
Container contentPane = f.getContentPane();
contentPane.setLayout(new BorderLayout());

textArea = new JTextArea(20, 40);
textArea.setEditable(false);
JScrollPane scroll = new JScrollPane(textArea);

JButton clear = new JButton("Clear Messages");
clear.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
clearText();
}
});

contentPane.add(scroll, BorderLayout.CENTER);
contentPane.add(clear, BorderLayout.SOUTH);

f.pack();
f.setVisible(true);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

}

private void clearText() {
textArea.setText("");
}

public void writeText(String text) {
textArea.append(text);
}

public static void outMsg(String msg) {
DebugMsg t = DebugMsg.getInstance();
t.writeText(msg + "\n");
}

}[/java]

功能很简单,只一个输出窗口输出信息,还有一个清除按钮可以清除信息。使用了单例模式,这样只需要使用DebugMsg.outMsg()就可以输出信息。

后面有时间的话还打算继续完善一下,可以增加查找功能,可以在输出信息中查找相关词语;还有高亮功能,可以让不同地方输出的信息背景颜色不一样。

2010/05/05

微博好强大

Filed under: 经验分享, 网站推广 — Tags: — admin @ 10:51

一个星期前给每日一站也开通了一个腾讯微博,不想发展的十分顺利,今天已经达到了200听众。要知道,RSS订阅达到200人我可是花了半年的时间,相比之下,微博的力量实在是太强大了。

要增加听众其实蛮简单的一件事情,只要记住一个原则,要想别人关注你,先要去关注别人。腾讯微博最多能收听2000人,都加满吧。而且尽量选择那些听众比较少的,这样他才会关注你。腾讯微博限定每天只能收听50人,其实这有个bug。当你收听了50人以后,关闭网页,关闭QQ。过半个小时再来,又可以再收听50人。

微博文章要简短而吸引人。发文章的时间我觉得应该是晚上8点左右,这时候是在线的高峰期。

每日一站的微博: http://t.qq.com/dailysite_

2010/05/04

JAVA连接FTP测试

Filed under: Java笔记 — Tags: — admin @ 11:04

毕设中要连接FTP,于是找了一下JAVA连接ftp的方法。发现有两个比较常用的包,一个是JDK自带的sun.net.ftp,功能比较简单。一个是org.apache.commons.net.ftp。这里先用sun.net.ftp写个Demo。

[java]package com.ooobj.test;

import java.io.DataInputStream;
import java.io.IOException;

import sun.net.ftp.FtpClient;

public class FTPTest {

public static void main(String[] args) {
try {
FtpClient fc = new FtpClient("192.168.7.128", 21);
fc.login("ooobj", "123");
System.out.println(fc.pwd());
DataInputStream dis = new DataInputStream(fc.nameList("."));
String s = "";
while ((s = dis.readLine()) != null) {
System.out.println(new String(s.getBytes("ISO-8859-1"),"GBK"));
}
} catch (IOException e) {
e.printStackTrace();
}

}

}[/java]

其中nameList()方法是列出文件,不包括文件夹。list()方法则列出文件和文件夹。sun.net.ftp提供的字符编码是”ISO-8859-1″,需要在读取的时候转换,比较麻烦。

2010/05/01

Java的Properties类使用实例

Filed under: Java笔记 — admin @ 22:56

一个工程项目通常需要将相关的属性配置到.properties或.xml文件中,在java.util 包下面有一个类 Properties,可以专门读写这类文件。本文通过四个实例分别对.properties或.xml文件进行读写来学习Properties类的使用。

test.properties

[text]database.driver=com.mysql.jdbc.Driver
database.url=jdbc:mysql://localhost:3306/test
database.username=root
database.password=123[/text]

test.xml

[xml]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="database.driver">com.mysql.jdbc.Driver</entry>
<entry key="database.url">jdbc:mysql://localhost:3306/test</entry>
<entry key="database.username">root</entry>
<entry key="database.password">123</entry>
</properties>[/xml]

测试代码:
[java]public class PropertiesTest {

public void readProperties(){
Properties props = new Properties();

try {
long beginTime = System.currentTimeMillis();
props.load(getClass().getResourceAsStream("test.properties"));
long endTime = System.currentTimeMillis();
System.out.println("Use time: " + (endTime – beginTime));
} catch (IOException e) {
e.printStackTrace();
}

System.out.println(props.getProperty("database.driver"));
System.out.println(props.getProperty("database.username"));

}

public void readXMLProperties(){
Properties props = new Properties();

try {
long beginTime = System.currentTimeMillis();
props.loadFromXML(getClass().getResourceAsStream("test.xml"));
long endTime = System.currentTimeMillis();
System.out.println("Use time: " + (endTime – beginTime));
} catch (IOException e) {
e.printStackTrace();
}

System.out.println(props.getProperty("database.driver"));
System.out.println(props.getProperty("database.username"));
}

public void writeProperties(){
Properties props = new Properties();
props.setProperty("username", "test_username");
props.setProperty("password", "test_password");
PrintStream fw;
try {
long beginTime = System.currentTimeMillis();
fw = new PrintStream(new File("testwrite.properties"));
props.list(fw);
long endTime = System.currentTimeMillis();
System.out.println("Write properties use time: " + (endTime – beginTime));
} catch (FileNotFoundException e) {
e.printStackTrace();
}

}

public void writeXMLProperties(){
Properties props = new Properties();
props.setProperty("username", "test_username");
props.setProperty("password", "test_password");
PrintStream fw;
try {
long beginTime = System.currentTimeMillis();
fw = new PrintStream(new File("testwrite.xml"));
props.storeToXML(fw, "test");
long endTime = System.currentTimeMillis();
System.out.println("Write XML use time: " + (endTime – beginTime));
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
PropertiesTest pt = new PropertiesTest();
pt.readProperties();
pt.readXMLProperties();
pt.writeProperties();
pt.writeXMLProperties();
}

}[/java]

运行结果:

[text]Use time: 6
com.mysql.jdbc.Driver
root
Use time: 84
com.mysql.jdbc.Driver
root
Write properties use time: 1
Write XML use time: 26[/text]

从运行的时间看来,读取.properties文件比读取.xml文件要快的多,而且.properties文件看起来更加直观。

2010/04/27

球赛赢了!

Filed under: 生活点滴 — Tags: — admin @ 20:19

“滚蛋杯”足球赛,今天我们班的最后一场小组赛。很多人去复试了,人手不够,我也被赶鸭子上架去踢后卫。有惊无险,最后已4:2胜出^_^,下一场就是半决赛了。想想自己,已经有很久没踢球了。想当年初中的时候是每天都要踢的,高中是一周一次,大学是一学期也没踢什么球,现在是完全跑不动了。早上去买了双球鞋,在场上撑了90分钟,还好没出啥丑。^_^

大一的新生杯踢地很憋屈,这次既是冲着冠军来的,也是复仇之战。还剩两场球赛,真希望还能有上场的机会,很期待拿个冠军。

« Newer PostsOlder Posts »

Powered by WordPress