囝泺的博客[www.bluenuo.cn]

网盘[disk.bluenuo.cn]
随笔 - 6, 文章 - 1, 评论 - 11, 引用 - 0
数据加载中……

2007年10月16日

通用离开页面前检查form内容是否发生改变

     摘要: 文/囝泺 www.bluenuo.cn 使用方法: 1.在需要的页面引入javascript核心代码(下面有,复制粘贴即可) 2.在body的onload事件中加入saveElementsOnLoad(myform);方法,其中myform是所验证的form对象 3.在body的onbeforeunload事件中加入return checkFormOnUnload(myform);其中my...  阅读全文

posted @ 2009-02-07 16:05 囝泺 阅读(1824) | 评论 (0)编辑 收藏

Linux下安装使用Subversion

    这几天把工作环境从windows下面转到linux了,因为用的java语言开发,项目移植还是蛮容易的,但不准备再用CVS来做版本控制系统了,决定换功能较强大的SVN,于是了解了下linux下安装Subversion的方法,现总结如下

文/囝泺 www.bluenuo.cn 


编译安装相关软件(我们采用源码编译安装)
a.httpd
下载地址:http://httpd.apache.org
下载
httpd-*.tar.gz (*为版本号,这里使用的是2.8.8)
安装
#tar -zxvf httpd-2.8.8.tar.gz
#cd httpd-2.8.8
#./configure --enable-dav --enable-so --enable-maintainer-mode
#make
#make install
b.
Berkeley DB
下载地址:http://www.oracle.com/technology/products/berkeley-db/index.html
下载
Berkeley DB 4.7.25.tar.gz
安装
#tar -zxvf db-4.4.20.NC.tar.gz
#cd db-4.4.20.NC/build_unix/
#../dist/configure --prefix=/usr/local/bdb
#make
#make install

c.Subversion
下载地址:http://subversion.tigris.org
下载
subversion-*.tar.gz subversion-deps-*.tar.gz包下下来,后一个包里是一些依赖程序,把2个包放在同一个目录下,解压缩,解压的文件会自动放到同一个文件夹下。
安装
#tar -zxvf subversion-1.2.3.tar.gz
#cd subversion-1.2.3
#./configure --with-berkeley-db=/usr/local/bdb --with-apxs=/usr/local/apache2/bin/apxs
#make
#make install

安装成功后你可以使用 #svnadmin --version检查是否安装成功
安装成功会出现
svnadmin,版本 1.4.6 (r28521)
   编译于 May  6 2008,19:55:08
…………
配置
配置Subversion
# mkdir /home/*/svn(*代表用户目录)
# cd /usr/local/subversion/bin
# ./svnadmin create /home/*/svn/test
这样我们就在svn下面建立了一个test仓库
修改httpd配置文件
# vi /usr/local/apache2/conf/httpd.conf
在最下面添加如下内容

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /home/*/svn/ //svn父目录
AuthzSVNAccessFile /home/*/svn/authz.conf //权限配置文件
AuthType Basic //连接类型设置
AuthName "Subversion.zoneyump" //连接框提示
AuthUserFile /home/*/svn/authfile //用户配置文件
Require valid-user //采用何种认证
</Location>
//其中authfile是通过"htpasswd [–c] /home/*/svn/authfile username password"来创建的
//"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,
//则只能第一个用户可以访问新建库
修改好后保存,重启apache
# ./usr/local/apache2/bin/apachectl restart

权限管理

1)增加用户
# ./usr/local/apache2/bin/htpasswd [-c] /home/*/svn/authfile wooin
//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
# ./usr/local/apache2/bin/htpasswd authfile 用户名(加入新的用户)
2)权限分配

# vi /home/svnroot/repository/authz.conf
   [test:/] //这表示,仓库test的根目录下的访问权限
   wooin = rw //test仓库wooin用户具有读和写权限
   bao = r //test仓库bao用户具有读权限
   [test2:/] //test2仓库根目录下的访问权限
   wooin = r //wooin用户在test2仓库根目录下只有读权限
   bao = //bao用户在 test2仓库根目录下无任何权限
   [/] //这个表示在所有仓库的根目录下
   * = r //这个表示对所有的用户都具有读权限
   #[groups] //这个表示群组设置
   #svn1-developers = wooin, bao //这个表示某群组里的成员
   #svn2-developers = wooin
   #[svn1:/]
   #@svn1-developers = rw //如果在前面加上@符号,则表示这是个群组权限设置

将这个设置完成后。重启Apache,就可以通过
http://localhost/svn/test
这个URL来访问仓库了

至于在eclipse使用svn就需要自己安装svn插件了

这里介紹Eclipse的SVN Plugin,叫做Subclipse,官方网站的下载地址在http://subclipse.tigris.org/,也提供了update site http://subclipse.tigris.org/update
Eclipse 的使用者可以通过Eclipse的插件自动下载和更新功能来安装这个插件,在Eclipse的菜单中选择Help->Software Updates->Find and Install-> Search for new features to install ->New Remote Site。URL中就输入http://subclipse.tigris.org/update,Eclipse就会自已安装上了.

安装完成后,在Eclipse的plugins中就会多了5个包,命名为org.tigris.subversion.*的都应该是了。打开 Eclipse,window->show view窗口中多了一个SVN文件夹,到此就证明svn插件成功的安装上了。具体的使用方法,在Eclipse的Help中有详细的帮助 Subclipse - Subversion Eclipse Plugin,教你一步一步的使用SVN的客户端了。如果你对subversion想进行深入的了解,那么看看help中的Version Control with Subversion一定有所收获,通过本人的观察,这份文档和sbuversion安装文件中提供的官方文档一样,这里看起来就更舒服些了。

注:本文是总结前辈资料的成果


囝泺,武汉科技学院
您可以通过其博客了解更多信息和文章:http://www.bluenuo.cn

posted @ 2008-05-09 11:41 囝泺 阅读(5206) | 评论 (0)编辑 收藏

easyJWeb+Eclipse快速入门

        由于学习需要,需要接触网站开发方面的技术,从VB、C、C++、java……也学了不少的语言,以前做网站都用jsp、servlet、javabean,没怎么用过MVC框架,自己也接触了一些STRUTS、HIBERNATE相关的技术,最近有幸认识到国人自己的开源项目easyJWeb(下面简称ejf),很是兴奋,花了半个小时研究了下ejf的使用,单是配置是非常简单的,下面总结一下第一次接触ejf的经验,也希望更多的人加入到国人自己的开源项目中来。
        ejf的官方网站是http://www.easyjf.com,如果需要深入了解可以直接去官网查看,本文只是一个入门教程。

文/囝泺 www.bluenuo.cn


获得ejf
        首先,我们去http://www.easyjf.com/news/download.html下载一个名为easyjweb-1.0-m3.zip(目前是这个版本),下载到EasyJWeb后,我们解压这个压缩文件,会得到类似图1所示的目录结构:

                                        图1
然后找个空目录,这里我们在e:\java路径下建立ejf目录,然后把ejf的lib目录下的easyjweb-core-1.0-m3.jar以及required目录下的全部jar拷贝到刚建立的文件夹下。

 

 用eclipse+MyEclipse建立新的web工程
        
新建web工程,然后右键点击新建的工程目录,点击propertitex,选择java build path设置环境变量,把刚建立的目录下的所有jar导入path,如果2

                                                            图2
修改web.xml
为了让web应用能使用EasyJWeb框架,需要在web.xml文件中添加一个servlet,并把所有扩展名为.ejf的请求映射给该servlet来处理。EasyJWeb的Servlet定义如下:

<servlet>
      
<servlet-name>easyjf</servlet-name>
      
<servlet-class>com.easyjf.web.ActionServlet</servlet-class>
      
<load-on-startup>1</load-on-startup>
  
</servlet>
  
<servlet-mapping>
      
<servlet-name>easyjf</servlet-name>
      
<url-pattern>*.ejf</url-pattern>
  
</servlet-mapping>
为了让Java Web应用能更好的处理中文字符,还需要在web.xml中添加一个字符编辑过滤器,配置如下:
  <filter>
      
<filter-name>CharsetFilter</filter-name>
      
<filter-class>com.easyjf.web.CharsetFilter</filter-class>
      
<init-param>
          
<param-name>encoding</param-name>
          
<param-value>UTF-8</param-value>
      
</init-param>
      
<init-param>
          
<param-name>ignore</param-name>
          
<param-value>true</param-value>
      
</init-param>
  
</filter>
  
<filter-mapping>
      
<filter-name>CharsetFilter</filter-name>
      
<servlet-name>easyjf</servlet-name>
  
</filter-mapping>

 另外,为了让EasyJWeb能自动找到你的应用中的所有Action,你需要在web.xml中添加一个名为defaultActionPackages的应用上下文件参数来告诉EasyJWeb扫描哪些包。配置如下:
<context-param>
   
<param-name>defaultActionPackages</param-name>
   
<param-value>ejf</param-value>
  
</context-param>
最后,得到一个完整的web.xml文件,如下
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
    xmlns
="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation
="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>
    
<context-param>
   
<param-name>defaultActionPackages</param-name>
   
<param-value>ejf</param-value>
  
</context-param>
  
<welcome-file-list>
    
<welcome-file>index.jsp</welcome-file>
  
</welcome-file-list>
  
<servlet>
      
<servlet-name>easyjf</servlet-name>
      
<servlet-class>com.easyjf.web.ActionServlet</servlet-class>
      
<load-on-startup>1</load-on-startup>
  
</servlet>
  
<servlet-mapping>
      
<servlet-name>easyjf</servlet-name>
      
<url-pattern>*.ejf</url-pattern>
  
</servlet-mapping>
  
<filter>
      
<filter-name>CharsetFilter</filter-name>
      
<filter-class>com.easyjf.web.CharsetFilter</filter-class>
      
<init-param>
          
<param-name>encoding</param-name>
          
<param-value>UTF-8</param-value>
      
</init-param>
      
<init-param>
          
<param-name>ignore</param-name>
          
<param-value>true</param-value>
      
</init-param>
  
</filter>
  
<filter-mapping>
      
<filter-name>CharsetFilter</filter-name>
      
<servlet-name>easyjf</servlet-name>
  
</filter-mapping>
</web-app>
修改好后,我们把web工程放到web服务器上,这里用的是tomcat,在浏览器敲入http://localhost:8080/chytool/helloerror.ejf,因为没有这个页面,ejf将显示默认友情提示,如图3

                                            图3
第一个web页面
        下面我们建立第一个web页面,跟学习其他语言一样,我们用ejf版的helloworld作为入门,首先,我们在eclipse工程目录下建立ejf.hello.mvc包,然后新建class HelloAction.java,在ejf里面我们将这个类叫做action,源代码如下
package ejf.hello.mvc;
import java.util.Date;
import com.easyjf.web.WebForm;
import com.easyjf.web.core.AbstractPageCmdAction;
public class HelloAction extends AbstractPageCmdAction {
    
public void index(WebForm form) {
        form.addResult(
"msg""您好,这是EasyJWeb的第一个程序!");
        form.addResult(
"date"new Date());
        form.addResult(
"address""http://www.bluenuo.cn");
    }

}
接下来我们在web目录下的WEB-INF下建立如下目录架构WEB-INF\hello\view
然后建立index.html文件,文件内容如下
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  
<head>
    
<title>EasyJWeb示例程序</title>
    
    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    
<meta http-equiv="description" content="this is my page">
    
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

  
</head>
  
  
<body>
    
<div><h4>EasyJWeb版本的HelloWorld程序</h4></div>
    
<div>
    来自EasyJWeb的问候:
<font color="#0000FF">${msg}</font><br>
    现在时间:
<font color="#0000FF">${date}</font><br>
    我的主页是:
<href="${address}">${address}</a>
    
</div>
  
</body>
</html>

整个目录结构如图4所示

        图4
然后导入web服务器目录,在浏览器敲入地址http://localhost:8080/chytool/hello.ejf
效果如图5所示

                                                图5
怎么样?easyJWeb就是这么简单,使用过struts的一定感受得到ejf是多么的容易上手
希望笔者的介绍已经把你领进ejf的大门,至于更深层的开发跟应用,还需要我们自己探讨

posted @ 2008-01-29 19:26 囝泺 阅读(3217) | 评论 (6)编辑 收藏

学swt的一个实践

        学了一段实践SWT/JFace,也学会了不少东西,java课程设计就用swt做了个类似QQ的聊天软件,分服务端与客户端,也花了2个多星期时间,现在把安装软件帖出来,下载地址在最下面,用的学校的服务器,如果失效了请联系我,需要源代码的可以发我mail:chybox@yahoo.cn,下面稍微介绍一下这个小软件。

文/囝泺 www.bluenuo.cn


        软件分服务端与客户端,所有通信信息都统一发送到服务端,由服务端通信协议负责分发到相应的客户端,协议我做得比较简单,通过一个MyMessage类来实例化一次具体的通信信息,其类结构如下

import java.io.Serializable;
import java.util.Date;


public class MyMessage implements Serializable{
    
public int src;//发送者的id号,其中id号注册后获得,唯一标识一个用户
    
public int des;//目的id号
    
public int cas;//协议号
    
public Usr usr;//用户信息,可以为null
    
public String message;//发送的消息
    
public Date date;//发送时间
    
public MyMessage(){
        src
=0;
        des
=0;
        cas
=0;
        usr
=null;
        message
=null;
    }

}


协议信息比较简单,不过处理这个聊天的事务已经足够了。

客户端也有个完全一样的类,只是协议的具体内容不太一样,同时,客户端和服务端还用了不少的范型结构,如LinkedList<>,HashMap<>等
下面帖几张软件的截图

                   图一:客户端登陆界面

  图2:客户端好友面板

                 图片3:客户端消息对话框

    图片4:服务端主界面

                          图片5:服务端数据库管理界面
以上是整个软件大体上的界面,需要了解更多可以通过下面的链接下载,安装包自带jre,使用的时候需要把客户端的host.ini文件里的ip改成localhost或者改成你自己的ip,服务端必须先通过管理工具开启用户注册,否则无法注册。
服务端下载地址:http://edu.bluenuo.cn/myfiles/chyqq_ser_windows_2008beta.exe
客户端下载地址:http://edu.bluenuo.cn/myfiles/chyqq_windows_2008beta.exe

需要源代码可以通过我的mail联系我chybox@yahoo.cn


 

posted @ 2008-01-25 12:40 囝泺 阅读(504) | 评论 (5)编辑 收藏

主窗口居中显示

文/囝泺 www.bluenuo.cn

 

shell = new Shell();
shell.setSize(
500375);
    Monitor primary = shell.getMonitor();//获得屏幕
    Rectangle bounds 
= primary.getBounds ();//获得屏幕尺寸
    Rectangle rect 
= shell.getBounds ();//获得窗口尺寸
    
int x = bounds.x + (bounds.width - rect.width) / 2;//计算x坐标
    
int y = bounds.y + (bounds.height - rect.height) / 2;//计算y坐标
    
if (x < 0)//判断坐标是否在屏幕之外
        x 
= 0;
        
if (y < 0)
            y 
= 0;
        shell.setLocation (x, y);//设置窗口坐标
    shell.open();

posted @ 2007-12-16 15:35 囝泺 阅读(354) | 评论 (0)编辑 收藏

GRUB唤醒沉睡的SUSE

用linux也一段时间了,前前后后装了不少版本的linux,也看了不少linux的书,但在各种发行版中,还是对suse情有独钟,因为它的友好的界面还有广泛的硬件支持,特别是suse附带了功能齐全的软件,就连播放器的解码也做得非常周到,基本上能播放大多数格式的电影跟音乐了。但由于几个月前重装windows系统,把引导破坏了,suse就一直沉睡在硬盘中,今天,借用grub,又把沉睡的suse唤醒,在使用grub的时候也遇到了不少麻烦,下面做个总结,好让下次少走点弯路。
文/囝泺 www.bluenuo.cn



首先把GRUB下下来,为方便下次使用我把grub支持多文件系统的版本放在我的网盘http://disk.bluenuo.cn的linux目录下,下载后提取grldr文件到C:\,现在只需要把系统的启动菜单中加上C:\GRLDR=My Grub一行,下次启动的时候就可以通过My Linux Suse10这个菜单进入grub,但现在只能使用命令来使用GRUB,接下来我们为GRUB加入菜单。
在C:\下建立boot文件夹,然后进入刚建立的boot文件夹建立grub文件夹,最后,在grub目录下建立menu.lst文件,至于menu.lst里面写什么你可以查阅相关资料,笔者是通过光盘引导了以前的linux系统,仿照/boot/grub下面的menu.lst写的,原linux下的menu.lst如下

# Modified by YaST2. Last modification on 日  4月  1 06:48:42 UTC 2007
color white/blue black/light-gray
default 1
timeout 8
gfxmenu (hd1,7)/boot/message

###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE Linux Enterprise Desktop 10
    root (hd1,7)
    kernel /boot/vmlinuz root=/dev/sda8 vga=0x314    resume=/dev/sda7  splash=silent showopts
    initrd /boot/initrd

###Don't change this comment - YaST2 identifier: Original name: windows###
title Windows
    chainloader (hd0,0)+1

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE Linux Enterprise Desktop 10
    root (hd1,7)
    kernel /boot/vmlinuz root=/dev/sda8 vga=normal showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off 3
    initrd /boot/initrd


由于现在我只需要引导suse10,所以我把启动设置跟最后一条复制到我的menu.lst里面就可以了
# Modified by YaST2. Last modification on 日  4月  1 06:48:42 UTC 2007
color white
/blue black/light-gray
default 1
timeout 
8
###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE Linux Enterprise Desktop 10
    root (hd1,7)
    kernel /boot/vmlinuz root=/dev/sda8 vga=0x314    resume=/dev/sda7  splash=silent showopts
    initrd /boot/initrd
其中红色标记的因个人系统而定
现在grub已经能唤醒沉睡的suse了,至于grub更详细的使用,可以在网上搜索grub使用的文章,这里不在细述

囝泺,武汉科技学院
您可以通过其博客了解更多信息和文章:http://www.bluenuo.cn

posted @ 2007-10-16 16:41 囝泺 阅读(396) | 评论 (0)编辑 收藏