junjie

 

2009年2月15日

心情调整

今天是5月11日,今天我去整形了。把我的疤痕有整小了一部份,这下不是很高兴啊!为什么这么说呢?我一直很高兴哎!!!嘿嘿!现在这么感觉有点怕听见心中那些自卑妥协的声音。害怕在回到从前。呵呵 时光永远都不可能倒流!如果能倒流那么多伟人都能神了!时间永远不可能倒流的!这是自然规律!
我知道怎么回事了!想起以前的事情啦!以前怎么啦!以前想起这块疤上火 自卑啦!呵呵 过去的都已经过去啦!我也不要怪自己!为什么呢?我为什么要怪自己呢?如果这块疤长到谁身上谁有能一点不难过呢?有几个人能做的比我好呢?有几个人能经历了这么大的痛苦还挺过来啦呢!呵呵 这就是毅力啊!
你在好好想想 菲菲还感觉这块疤痕很好看来!其实话有说回来了,我有什么好难过的!就算我现在这块疤痕没整理的话!有块红色也挺好的!
就咱这模样!脸型他们真挡不住!在侧面他们还感觉是撞的呢!都说有点颜色脸上挺好看的呢!虽然咱有疤但咱这模样就眼夹旁边的这块疤跟咱这模样张的一点也不别小白脸那种模样差!你没比没数!这么多人 能张的小白脸的那个层次的人已经不多了!人已经很多了!我到了这个层次已经很高了!其实你一直感到难看的事,到最后真有小姑娘真有人很欣赏这些!我又何苦遭这个罪呢!呵呵 模样真的已经很不错了!每个人都渴望漂亮,如果能变的很漂亮 谁又何尝不
愿意呢?因为这个东西都是父母给决定的不是自己说了算的! 这是太正常的事情,你看看那么多张的那么一般的人不还都照样过的挺美的!因为我真的很不错啊!生活的好好坏坏不是有模样决定!真正幸福的生活是靠自己的努力!你看看身边的那些男人们!不用你张的多么帅!只要你有颗乐观坚强 宽容善良的心就够了!你的生活决定是很美好的!有心爱的女孩 有成功的事业!怒路吧!孩子你已经完成了 该完的一项任务!放弃这个吧!放弃了!全心的开始!也是全新的开始!因为明天真是太美好了!

posted @ 2009-05-11 21:23 wangjunjie| 编辑 收藏

超连接

http://www.3y11.com/

posted @ 2009-03-31 20:17 wangjunjie 阅读(152) | 评论 (0)编辑 收藏

子窗口

【1、最基本的弹出窗口代码】

<SCRIPT LANGUAGE="javascript">
<!--
window.open ('page.html')
-->
</SCRIPT>

因为这是一段javascripts代码,所以它们应该放在<SCRIPT LANGUAGE="javascript">标签和</script>之间。<!-- 和 -->是对一些版本低的浏览器起作用,在这些老浏览器中不会将标签中的代码作为文本显示出来。要养成这个好习惯啊。window.open ('page.html') 用于控制弹出新的窗口page.html,如果page.html不与主窗口在同一路径下,前面应写明路径,绝对路径(http://)和相对路径(../)均可。用单引号和双引号都可以,只是不要混用。这一段代码可以加入HTML的任意位置,<head>和</head>之间可以,<body>间</body>也可以,越前越早执行,尤其是页面代码长,又想使页面早点弹出就尽量往前放。

【2、经过设置后的弹出窗口】

下面再说一说弹出窗口的设置。只要再往上面的代码中加一点东西就可以了。我们来定制这个弹出的窗口的外观,尺寸大小,弹出的位置以适应该页面的具体情况。

<SCRIPT LANGUAGE="javascript">
<!--
window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //这句要写成一行
-->
</SCRIPT>

参数解释:

<SCRIPT LANGUAGE="javascript"> js脚本开始;
window.open 弹出新窗口的命令;
'page.html' 弹出窗口的文件名;
'newwindow' 弹出窗口的名字(不是文件名),非必须,可用空''代替;
height=100 窗口高度;
width=400 窗口宽度;
top=0 窗口距离屏幕上方的象素值;
left=0 窗口距离屏幕左侧的象素值;
toolbar=no 是否显示工具栏,yes为显示;
menubar,scrollbars 表示菜单栏和滚动栏。
resizable=no 是否允许改变窗口大小,yes为允许;
location=no 是否显示地址栏,yes为允许;
status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;
</SCRIPT> js脚本结束

【3、用函数控制弹出窗口】

下面是一个完整的代码。
<html>
<head>
<script LANGUAGE="JavaScript">
<!--
function openwin() {
window.open ("page.html", "newwindow", "height=100, width=400, toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") //写成一行
}
//-->
</script>
</head>
<body onload="openwin()">
任意的页面内容...
</body>
</html>

这里定义了一个函数openwin(),函数内容就是打开一个窗口。在调用它之前没有任何用途。怎么调用呢?

方法一:<body onload="openwin()"> 浏览器读页面时弹出窗口;
方法二:<body onunload="openwin()"> 浏览器离开页面时弹出窗口;
方法三:用一个连接调用:
<a href="#" onclick="openwin()">打开一个窗口</a>
注意:使用的“#”是虚连接。
方法四:用一个按钮调用:
<input type="button" onclick="openwin()" value="打开窗口">

【4、同时弹出2个窗口】

对源代码稍微改动一下:

<script LANGUAGE="JavaScript">
<!--
function openwin() {
window.open ("page.html", "newwindow", "height=100, width=100, top=0, left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o, status=no")//写成一行
window.open ("page2.html", "newwindow2", "height=100, width=100, top=1 00, left=100,toolbar=no, menubar=no, scrollbars=no, resizable=no, loca tion=no, status=no")//写成一行
}
//-->
</script>
为避免弹出的2个窗口覆盖,用top和left控制一下弹出的位置不要相互覆盖即可 。最后用上面说过的四种方法调用即可。
注意:2个窗口的name(newwindows和newwindow2)不要相同,或者干脆全部为空。

【5、主窗口打开文件1.htm,同时弹出小窗口page.html】

如下代码加入主窗口<head>区:
<script language="javascript">
<!--
function openwin() {
window.open("page.html","","width=200,height=200")
}
//-->
</script>
加入<body>区:
<a href="1.htm" onclick="openwin()">open</a>即可。

【6、弹出的窗口之定时关闭控制】

下面我们再对弹出的窗口进行一些控制,效果就更好了。如果我们再将一小段 代码加入弹出的页面(注意是加入page.html的HTML中,不是主页面中),让它10秒后自动关闭是不是更酷了?
首先,将如下代码加入page.html文件的<head>区:
<script language="JavaScript">
function closeit()
{
setTimeout("self.close()",10000) //毫秒
}
</script>
然后 儆?lt;body onload="closeit()"> 这一句话代替page.html中原有的<BODY>这一句就可以了。(这一句话千万不要忘记写啊!这一句的作用是调用关闭窗口的代码,10秒钟后就自行关闭该窗口。)

【7、在弹出窗口中加上一个关闭按钮】

<FORM>
<INPUT TYPE='BUTTON' VALUE='关闭' onClick='window.close()'>
</FORM>
呵呵,现在更加完美了!

【8、内包含的弹出窗口-一个页面两个窗口】

上面的例子都包含两个窗口,一个是主窗口,另一个是弹出的小窗口。通过下面的例子,你可以在一个页面内完成上面的效果。

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
function openwin()
{
OpenWindow=window.open("", "newwin", "height=250, width=250,toolbar=no ,scrollbars="+scroll+",menubar=no");
//写成一行
OpenWindow.document.write("<TITLE>例子</TITLE>")
OpenWindow.document.write("<BODY BGCOLOR=#ffffff>")
OpenWindow.document.write("<h1>Hello!</h1>")
OpenWindow.document.write("New window opened!")
OpenWindow.document.write("</BODY>")
OpenWindow.document.write("</HTML>")
OpenWindow.document.close()
}
</SCRIPT>
</head>
<body>
<a href="#" onclick="openwin()">打开一个窗口</a>
<input type="button" onclick="openwin()" value="打开窗口">
</body>
</html>

看看OpenWindow.document.write()里面的代码不就是标准的HTML吗?只要按照格式写更多的行即可。千万注意多一个标签或少一个标签就会出现错误。记得用 OpenWindow.document.close()结束啊。

【9、终极应用--弹出的窗口之Cookie控制】

回想一下,上面的弹出窗口虽然酷,但是有一点小毛病,比如你将上面的脚本放在一个需要频繁经过的页面里(例如首页),那么每次刷新这个页面,窗口都会弹出一次,我们使用cookie来控制一下就可以了。
首先,将如下代码加入主页面HTML的<HEAD>区:

<script>
function openwin(){
window.open("page.html","","width=200,height=200")
}
function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search)
if (offset != -1) {
offset += search.length
end = document.cookie.indexOf(";", offset);
if (end == -1)
end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}
function loadpopup(){
if (get_cookie('popped')==''){
openwin()
document.cookie="popped=yes"
}
}
</script>

然后,用<body onload="loadpopup()">(注意不是openwin而是loadpop啊!)替换主页面中原有的<BODY>这一句即可。你可以试着刷新一下这个页面或重新进入该页面,窗口再也不会弹出了。真正的Pop-Only-Once!

posted @ 2009-03-25 22:35 wangjunjie| 编辑 收藏

多线程理解(转载)

 对于Java开发人员,多线程应该是必须熟练应用的知识点,特别是开发基于Java语言的产品。本文将深入浅出的表述Java多线程的知识点,在后续的系列里将侧重于Java5由Doug Lea教授提供的Concurrent并行包的设计思想以及具体实现与应用。
    如何才能深入浅出呢,我的理解是带着问题,而不是泛泛的看。所以该系列基本以解决问题为主,当然我也非常希望读者能够提出更好的解决问题的方案以及提出更多的问题。由于水平有限,如果有什么错误之处,请大家提出,共同讨论,总之,我希望通过该系列我们能够深入理解Java多线程来解决我们实际开发的问题。
    作为开发人员,我想没有必要讨论多线程的基础知识,比如什么是线程? 如何创建等 ,这些知识点是可以通过书本和Google获得的。本系列主要是如何理深入解多线程来帮助我们平时的开发,比如线程池如何实现? 如何应用锁等。 

(1)方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答。
    自从接触Java多线程,一直对Join理解不了。JDK是这样说的:
   join
    public final void join(long millis)throws InterruptedException
    Waits at most millis milliseconds for this thread to die. A timeout of 0 means to wait forever.
 大家能理解吗? 字面意思是等待一段时间直到这个线程死亡,我的疑问是那个线程,是它本身的线程还是调用它的线程的,上代码: 
package concurrentstudy;
/**
 *
 * 
@author vma
 
*/
public class JoinTest {
    
public static void main(String[] args) {
        Thread t 
= new Thread(new RunnableImpl());
        t.start();
        
try {
            t.join(
1000);
            System.out.println(
"joinFinish");
        } 
catch (InterruptedException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
     
        }
    }
}
class RunnableImpl implements Runnable {

    @Override
    
public void run() {
        
try {
            System.out.println(
"Begin sleep");
            Thread.sleep(
1000);
           System.out.println(
"End sleep");
        } 
catch (InterruptedException e) {
            e.printStackTrace();
        }

    }
}
结果是:
Begin sleep
End sleep
joinFinish
明白了吧,当main线程调用t.join时,main线程等待t线程,等待时间是1000,如果t线程Sleep 2000呢
 public void run() {
        
try {
            System.out.println(
"Begin sleep");
            // Thread.sleep(
1000);
            Thread.sleep(2000);
           System.out.println("End sleep");
        } 
catch (InterruptedException e) {
            e.printStackTrace();
        }

    }

结果是:
Begin sleep
joinFinish
End sleep
也就是说main线程只等1000毫秒,不管T什么时候结束,如果是t.join()呢, 看代码:  
 public final void join() throws InterruptedException {
    join(0);
    }
就是说如果是t.join() = t.join(0) 0 JDK这样说的 A timeout of 0 means to wait forever 字面意思是永远等待,是这样吗?
其实是等到t结束后。
这个是怎么实现的吗? 看JDK代码:
    /**
     * Waits at most <code>millis</code> milliseconds for this thread to 
     * die. A timeout of <code>0</code> means to wait forever. 
     *
     * 
@param      millis   the time to wait in milliseconds.
     * 
@exception  InterruptedException if any thread has interrupted
     *             the current thread.  The <i>interrupted status</i> of the
     *             current thread is cleared when this exception is thrown.
     
*/
    
public final synchronized void join(long millis) 
    
throws InterruptedException {
    
long base = System.currentTimeMillis();
    
long now = 0;

    
if (millis < 0) {
            
throw new IllegalArgumentException("timeout value is negative");
    }

    
if (millis == 0) {
        
while (isAlive()) {
        wait(
0);
        }
    } 
else {
        
while (isAlive()) {
        
long delay = millis - now;
        
if (delay <= 0) {
            
break;
        }
        wait(delay);
        now 
= System.currentTimeMillis() - base;
        }
    }
    }
其实Join方法实现是通过wait(小提示:Object 提供的方法)。 当main线程调用t.join时候,main线程会获得线程对象t的锁(wait 意味着拿到该对象的锁),调用该对象的wait(等待时间),直到该对象唤醒main线程,比如退出后。

这就意味着main 线程调用t.join时,必须能够拿到线程t对象的锁,如果拿不到它是无法wait的,刚开的例子t.join(1000)不是说明了main线程等待1秒,如果在它等待之前,其他线程获取了t对象的锁,它等待时间可不就是1毫秒了。上代码介绍:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 
*/
package concurrentstudy;
/**
 *
 * 
@author vma
 
*/
public class JoinTest {
    
public static void main(String[] args) {
        Thread t 
= new Thread(new RunnableImpl());
       
new ThreadTest(t).start();
        t.start();
        
try {
            t.join();
            System.out.println(
"joinFinish");
        } 
catch (InterruptedException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
     
        }
    }
}
class ThreadTest extends Thread {

    Thread thread;

    
public ThreadTest(Thread thread) {
        
this.thread = thread;
    }

    @Override
    
public void run() {
        holdThreadLock();
    }

    
public void holdThreadLock() {
        
synchronized (thread) {
            System.out.println(
"getObjectLock");
            
try {
                Thread.sleep(
9000);

            } 
catch (InterruptedException ex) {
             ex.printStackTrace();
            }
            System.out.println(
"ReleaseObjectLock");
        }

    }
}

class RunnableImpl implements Runnable {

    @Override
    
public void run() {
        
try {
            System.out.println(
"Begin sleep");
            Thread.sleep(
2000);
           System.out.println(
"End sleep");
        } 
catch (InterruptedException e) {
            e.printStackTrace();
        }


    }
}
在main方法中 通过new ThreadTest(t).start();实例化ThreadTest 线程对象, 它在holdThreadLock()方法中,通过 synchronized (thread),获取线程对象t的锁,并Sleep(9000)后释放,这就意味着,即使
main方法t.join(1000),等待一秒钟,它必须等待ThreadTest 线程释放t锁后才能进入wait方法中,它实际等待时间是9000+1000 MS
运行结果是:
getObjectLock
Begin sleep
End sleep
ReleaseObjectLock
joinFinish

小结:
本节主要深入浅出join及JDK中的实现。
在下一节中,我们将要讨论SWing 中的事件方法线程来解决一个网友问到的问题:
如何控制Swing程序在单机只有一个实例,也就是不能运行第二个Main方法。


posted @ 2009-03-01 14:17 wangjunjie 阅读(1185) | 评论 (0)编辑 收藏

hibernate跟一些配置文件有关的异常

Exception in thread "main" org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml
 at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1494)
 at org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
 at org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
 at Test.TestDao.main(TestDao.java:21)
Caused by: org.dom4j.DocumentException: c:\ajar\hibernate-configuration-3.0.dtd (系统找不到指定的路径。) Nested exception: c:\ajar\hibernate-configuration-3.0.dtd (系统找不到指定的路径。)
 at org.dom4j.io.SAXReader.read(SAXReader.java:484)
 at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1484)
 ... 3 more



这里是在咱们的hibernate.cfg.xml中写在文件头的 DOCTYPE中 这里说明当hibernate运行时候 即new Configuration的时候 hibernate这个框架会 进行XML文档的校验  其实 STRUTS也一样







posted @ 2009-02-16 17:43 wangjunjie 阅读(413) | 评论 (0)编辑 收藏

转载 Soalries中常用命令

系统基本配置

如何查看日志信息                 dmesg | more /var/adm/messages*   

收集 exlpore 日志                  /opt/SUNWexplo/bin/explorer -k ->/opt/SUNWexplo/output

系统的基本状况                            showrev 

系统运行时间,平均负载                                  uptime                           

版本信息                                                uname -a                                 

Update 版本                                          more /etc/release                

系统补丁       showrev -p 已安装的补丁信息  patchadd 123-12 打补丁

查看服务对应的端口  more /etc/services

系统变量设置 env sysdef

Shell 变量: bash,csh,ksh

收集 explore 日志

先查看有没有装
# pkginfo |grep SUNWexplo
如果有安装的话:
# /opt/SUNWexplo/bin/explorer
收集到的文件在:
# /opt/SUNWexplo/output

清空日志: cp /var/adm/messages /var/adm/messages.bkp  #cat /dev/null > /var/adm/messages

CPU  

psrinfo -vp              系统 cpu 数和速度

uptime                   cpu 平均负载

prstat -a                实时进程的状态

ps -ef                   显示所有进程的详细信息

kill pid 杀死进程

vmstat mpstat /usr/ucb/ps -aux

内存

prtdiag -v 系统硬件,电源接口等

查看内存大小 prtconf -vp | grep Mem

vmstat

swap -s

增加 swap 分区: mkfile 200m /tmp ,swap -a,swap -l

C5292

磁盘管理

iostat 监视系统输入/输出设备负载

format 系统几块磁盘,大小 Ctrl+D 的组合键退出

metastat 显示硬盘 raid 状态

检查硬盘信息 prtvtoc /dev/dsk/c0t0d0s5

查看 NBU 硬盘 available_media

如何添加硬盘

1 mkdir /usr/ldap3

2 newfs /dev/rdsk/c1t3d0s1 

       3 mount /dev/dsk/c1t3d0s1 /usr/ldap3

4 vi /etc/vfstab 添加文件系统信息

/dev/dsk/c1t2d0s0  /dev/rdsk/c1t2d0s0   /usr/ldap3      ufs     1 yes     logging
 

文件系统

df -k   磁盘使用情况

磁带机的读存数据 : tar cpio

磁带机状态  mt -f /dev/rmt/0 status

虚拟文件系统表  /etc/vfstab

Solaris 硬盘分区

网络

ping netstat -arp

ifconfig –a

系统基本操作

文件操作

压缩解压 tar gzip gunzip

iso 文件  lofiadm

查看文件信息  ls -lrt

目录大小  du -sk dir

mkdir ,cd,

查找文件: Find 文件类型 file

查看文件 more head tail cat 例如: tail -10 /var/adm/messages

文件的权限 chmod: chmod 644 a.txt 

解包 tar vcf filename.tar

打包 tar cvf filename.tar dirname

.gz 文件 解压 gunzip filename.gz ; gzip -d filename.gz           压缩 gzip filenam

.tar.gz 解压: tar zxcf file.tar.gz                                     压缩; tar zcvf file.tar.gz dirname

创建和编辑文件:

生成新文件或改变文件日期: Touch   文件拷贝 cp 移动文件 mv

修改文件: vi的用法

组合命令 : 输出重定向 >   组合命令 |

常用管理命令 man

用户管理

groupadd useradd passwd

查看用户 / more /etc/passwd /etc/shadow /etc/group

(who finger rusers 1 whodo id

如何做系统硬件健康状况检查

# more /var/adm/messages* (没有重大异常报错)

# df –k (“/” 使用率小于 85%)

# format ctrl+d退出)(所有硬盘正常)

# prtdiag –v ( 没有 failed 的部件、内存和 cpu 数量正确 )

# psrinfo –v ( 系统中所有的 cpu 都处在 online 状态 )

运行级别

查看系统的运行级、日期及时间   who   –r

系统运行级别 1 掉电(运行级 0 2 单用户(运行级 1 s S

3 多用户(运行级 2 3 4 重引导(运行级 5 6

重新启动  reboot, init 6

关闭系统: shutdown init 0 halt

其它管理

定时任务

crontab  推到一个自定义的文件上
crontab -l>tmp
编辑这个文件,做需要的修改
vi tmp
推回 crontab
crontab tmp

NBU 备份

#bpdbjobs –report   检查作业备份情况,返回为 0 即为正常

#bpps –a   备份进程启动情况

磁盘阵列管理

 #sccli

sccli: selected device /dev/rdsk/c2t0d0s2 [SUN StorEdge yyyy SN#08472F]

#sccli> show disks

输出的 Status 列,所有值正常情况下是 ” ONLINE” ” STAND-BY” ,其它的值都是不正常的;

#sccli> show logical-drives

输出的 Status 列,其值正常情况下是 ” Good” ,其它的值都是不正常的;

#sccli>show enclosure-status

输出的 Status 列,所有值正常情况下是 ” OK” 或者 ” Absent” ,其它的值都是不正常的;

#sccli>show FRUs

输出的 FRU Status 行,所有值正常情况下是 ”OK” 其它的值都是不正常的;

#sccli> show peripheral-device-status

输出的 status 列,所有值正常情况下是 ”within safety range” ” N/A” ” Hardware:N/A” ” Hardware:OK” 其它的值都是不正常的;

#sccli>exit

oracle

lsnrctl status 查看 listener 进程的状态

tnsping SID    查看连通请款

sun cluster

scinstall -pv 版本信息

luxadm -e port 光纤链路状态

posted @ 2009-02-15 19:24 wangjunjie 阅读(313) | 评论 (0)编辑 收藏

导航

统计

常用链接

留言簿(2)

随笔档案

文章分类

搜索

最新评论

阅读排行榜

评论排行榜