亚洲综合激情视频,亚洲av无码一区二区三区天堂 ,亚洲一区二区三区夜色http://www.tkk7.com/zks518/zh-cnSun, 11 May 2025 14:01:36 GMTSun, 11 May 2025 14:01:36 GMT60spring-security3 入門篇[轉(zhuǎn)載]http://www.tkk7.com/zks518/archive/2013/12/02/407123.html張生張生Mon, 02 Dec 2013 11:00:00 GMThttp://www.tkk7.com/zks518/archive/2013/12/02/407123.htmlhttp://www.tkk7.com/zks518/comments/407123.htmlhttp://www.tkk7.com/zks518/archive/2013/12/02/407123.html#Feedback0http://www.tkk7.com/zks518/comments/commentRss/407123.htmlhttp://www.tkk7.com/zks518/services/trackbacks/407123.html1.下載spring security的最新版本,工程下載的是3.1

2. 新建工程,結(jié)構(gòu)如下:



 其中,涉及到的jar包可以在spring-security包中的例子中獲取

3、配置spring-security.xml

Xml代碼  收藏代碼
  1. <? xml   version = "1.0"   encoding = "UTF-8" ?>   
  2. < beans   xmlns = "http://www.springframework.org/schema/beans"   
  3.     xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"   xmlns:security ="http://www.springframework.org/schema/security"   
  4.     xsi:schemaLocation ="http://www.springframework.org/schema/beans   
  5.             http://www.springframework.org/schema/beans/spring-beans.xsd  
  6.             http://www.springframework.org/schema/security   
  7.             http://www.springframework.org/schema/security/spring-security.xsd">   
  8.   
  9.     <!-- 保護(hù)應(yīng)用程序的所有URL,只有擁有ROLE_USER才可以訪問 -->   
  10.     < security:http   auto-config = "true" >   
  11.         < security:intercept-url   pattern = "/**"   access = "ROLE_USER"   />   
  12.     </ security:http >   
  13.       
  14.     <!--配置認(rèn)證管理器,只有用戶名為user,密碼為user的用戶,角色為ROLE_USER可訪問指定的資源 -->  
  15.     < security:authentication-manager >   
  16.         < security:authentication-provider >   
  17.             < security:user-service >   
  18.                 < security:user   name = "user"    password = "user"   authorities ="ROLE_USER" />   
  19.             </ security:user-service >   
  20.         </ security:authentication-provider >   
  21.     </ security:authentication-manager >   
  22. </ beans >   

 4.配置web.xml

Xml代碼  收藏代碼
  1. <? xml   version = "1.0"   encoding = "UTF-8" ?>   
  2. < web-app   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"   xmlns ="http://java.sun.com/xml/ns/javaee"   xmlns:web ="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"   xsi:schemaLocation ="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  id = "WebApp_ID"   version = "2.5" >   
  3.   < display-name > springSecurity </ display-name >   
  4.     <!--******************************** -->   
  5.     <!--*******log4j日志信息的配置****** -->   
  6.     <!--******************************* -->   
  7.     < context-param >   
  8.         < param-name > log4jConfigLocation </ param-name >   
  9.         < param-value > classpath:log4j.xml </ param-value >   
  10.     </ context-param >   
  11.     <!--Spring默認(rèn)刷新Log4j配置文件的間隔,單位為millisecond,可以不設(shè)置 -->   
  12.     < context-param >   
  13.         < param-name > log4jRefreshInterval </ param-name >   
  14.         < param-value > 60000 </ param-value >   
  15.     </ context-param >   
  16.   
  17.     <!--******************************** -->   
  18.     <!--*******spring bean的配置******** -->   
  19.     <!--******************************* -->   
  20.     < context-param >   
  21.         < param-name > contextConfigLocation </ param-name >   
  22.         < param-value > classpath:applicationContext.xml </ param-value >   
  23.     </ context-param >   
  24.       
  25.     < listener >   
  26.         < listener-class > org.springframework.web.util.Log4jConfigListener </listener-class >   
  27.     </ listener >   
  28.     < listener >   
  29.         < listener-class > org.springframework.web.context.ContextLoaderListener </listener-class >   
  30.     </ listener >   
  31.     < listener >   
  32.         < listener-class > org.springframework.web.util.IntrospectorCleanupListener </listener-class >   
  33.     </ listener >   
  34.     <!--******************************** -->   
  35.     <!--*******字符集 過濾器************ -->   
  36.     <!--******************************* -->   
  37.     < filter >   
  38.         < filter-name > CharacterEncodingFilter </ filter-name >   
  39.         < filter-class > org.springframework.web.filter.CharacterEncodingFilter </filter-class >   
  40.         < init-param >   
  41.             < param-name > encoding </ param-name >   
  42.             < param-value > UTF-8 </ param-value >   
  43.         </ init-param >   
  44.         < init-param >   
  45.             < param-name > forceEncoding </ param-name >   
  46.             < param-value > true </ param-value >   
  47.         </ init-param >   
  48.     </ filter >   
  49.     < filter-mapping >   
  50.         < filter-name > CharacterEncodingFilter </ filter-name >   
  51.         < url-pattern > /* </ url-pattern >   
  52.     </ filter-mapping >   
  53.   
  54.     <!--******************************** -->   
  55.     <!--*******session的配置************ -->   
  56.     <!--******************************* -->   
  57.     < session-config >   
  58.         < session-timeout > 30 </ session-timeout >   
  59.     </ session-config >   
  60.       
  61.     <!-- SpringSecurity必須的begin -->   
  62.     < filter >   
  63.         < filter-name > springSecurityFilterChain </ filter-name >   
  64.         < filter-class > org.springframework.web.filter.DelegatingFilterProxy </filter-class >   
  65.     </ filter >   
  66.     <!-- 攔截所有的請求 -->   
  67.     < filter-mapping >   
  68.         < filter-name > springSecurityFilterChain </ filter-name >   
  69.         < url-pattern > /* </ url-pattern >   
  70.     </ filter-mapping >   
  71.     <!-- SpringSecurity必須的end -->   
  72.       
  73.   < welcome-file-list >   
  74.     < welcome-file > index.jsp </ welcome-file >   
  75.   </ welcome-file-list >   
  76. </ web-app >   

 

5.index.jsp

Html代碼  收藏代碼
  1. < %@ page  language = "java"   contentType = "text/html; charset=UTF-8"   
  2.     pageEncoding = "UTF-8" % >   
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">   
  4. < html >   
  5. < head >   
  6. < meta   http-equiv = "Content-Type"   content = "text/html; charset=UTF-8" >   
  7. < title > 首頁 </ title >   
  8. </ head >   
  9. < body >   
  10.     < h1 > 這里是首頁,歡迎你! </ h1 >   
  11.     < %   
  12.         String[] str  =  session .getValueNames();  
  13.         for(int i = 0 ;i < str.length ;i++){  
  14.             out.println("key =="+str[i]);  
  15.             out.println("value =="+session.getAttribute(str[i]));  
  16.         }  
  17.     %>   
  18. </ body >   
  19. </ html >   

 

6部署應(yīng)用,在首次瀏覽index.jsp時(shí),由于沒登錄,spring security會(huì)自動(dòng)生成登錄頁面,頁面內(nèi)容如下:

 



 7輸入用戶名和密碼,user,則進(jìn)入首頁

 

 

 至此,簡單的權(quán)限控制完成,在index頁面中通過session可以看到存入session中的用戶信息。



張生 2013-12-02 19:00 發(fā)表評論
]]>
轉(zhuǎn)載:CentOS6 安裝 Xen 4.1.2http://www.tkk7.com/zks518/archive/2013/01/31/394969.html張生張生Thu, 31 Jan 2013 03:13:00 GMThttp://www.tkk7.com/zks518/archive/2013/01/31/394969.htmlhttp://www.tkk7.com/zks518/comments/394969.htmlhttp://www.tkk7.com/zks518/archive/2013/01/31/394969.html#Feedback0http://www.tkk7.com/zks518/comments/commentRss/394969.htmlhttp://www.tkk7.com/zks518/services/trackbacks/394969.html轉(zhuǎn)載:
http://www.cnblogs.com/liuan/archive/2012/06/13/2548558.html



系統(tǒng):CentOS6.0  安裝的Xen版本:4.1.2

在centos下安裝xen不是很順利,遇到很多問題。安裝過程主要參考了以下兩個(gè)文檔:

http://wiki.xen.org/xenwiki/RHEL6Xen4Tutorial?action=fullsearch&value=linkto%3A%22RHEL6Xen4Tutorial%22&context=180

這個(gè)方法可以正常安裝xen,并指出RedHat 6 下安裝xen 會(huì)遇到的問題,只是安裝過程復(fù)雜,不是源碼安裝。

http://www.cnblogs.com/feisky/archive/2012/04/10/2441307.html

這個(gè)是xen的源碼編譯安裝,也是centos下,安裝xen 4.1.2,但是經(jīng)過實(shí)踐,這樣安裝出來存在一些問題,很意外的。解決起來很頭痛。

在上面這個(gè)方法上,具體的描述我的安裝過程。

系統(tǒng)和安裝的xen版本上面有介紹,開始著手安裝xen了。

1.下載Xen的源碼

1 wget http://bits.xensource.com/oss-xen/release/4.1.2/xen-4.1.2.tar.gz

 

2.安裝必備軟件包

復(fù)制代碼
1 yum groupinstall "Development Libraries" 2 yum groupinstall "Development Tools" 3 yum install transfig wget texi2html libaio-devel dev86 glibc-devel e2fsprogs-devel gitk mkinitrd iasl xz-devel 4 bzip2-devel pciutils-libs pciutils-devel SDL-devel libX11-devel gtk2-devel bridge-utils PyXML qemu-common qemu-img mercurial libidn-devel 5 yum -y install glibc-devel.i686texinfo libuuid-devel iasl python-lxml 6 yum -y install openssl openssl-devel 7 yum -y install ncurses ncurses-* 8 yum -y install python-devel
復(fù)制代碼

 

3.編譯安裝Xen hypervisor

1 tar zxvf xen-4.1.2.tar.gz 2 cd xen-4.1.2 3 make world

在此可能會(huì)遇到如下問題:

解決辦法:yum –y install texinfo

1 make install

4.將Xen加入到啟動(dòng)腳本:

1 /sbin/chkconfig --add xend 2 /sbin/chkconfig --add xencommons 3 /sbin/chkconfig --add xendomains 4 /sbin/chkconfig xend on 5 /sbin/chkconfig xendomains on 6 /sbin/chkconfig xencommons on

5.編譯安裝Linux3.1.2內(nèi)核

復(fù)制代碼
 1 wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.1.2.tar.bz2  2 tar -jxvf linux-3.1.3.tar.bz2  3 make menuconfig  4   5 Processor type and features --- >  6      選中Paravirtualized Guest Support  7   Device Drivers --->   8       Xen driver support --->   9         全部選* 10  11 修改:CONFIG_XEN_DEV_EVTCHN=y(如果是m,開機(jī)時(shí)無法啟動(dòng)xencommons)
復(fù)制代碼

 注意:僅僅上面的是不夠的,還需要修改:否則在創(chuàng)建虛擬機(jī)的過程中遇到這樣的問題:

注意:Device 0 (vif) could not be connected. HotPlug scripts not working.

在.config文件中做如下修改,就可以解決問題了

 

1 CONFIG_XEN_BLKDEV_BACKEND=m 2 CONFIG_XEN_NETDEV_BACKEND=m

接下來開始編譯安裝了:

1 make 2 make modules 3 make modules_install 4 make install  5 depmod 3.1.2 6 mkinitrd -v -f --with=aacraid --with=sd_mod --with=scsi_mod initramfs-3.1.2.img 3.1.2

6.配置grub:

復(fù)制代碼
1 title Xen (3.1.2-xen) 2         root (hd0,0) 3         kernel /xen-4.1.2.gz dom0_mem=512M 4         module /vmlinuz-3.1.2 ro root=UUID=3f920108-b74b-46b9-81c2-aff834494381   5 rd_DM_UUID=ddf1_4c5349202020202010000055000000004711471100001450 rd_NO_LUKS rd_NO_LVM rd_NO_MD LANG=en_US.UTF-8   6 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet 7         module /initramfs-3.1.2.img
復(fù)制代碼

這個(gè)配置在第4行后面root=UUID隨自己的系統(tǒng)

7.安裝virt-manager

1 yum install libvirt virt-manager xorg-x11-xauth

 8. 重新編譯libvirt

  在文章前面第一個(gè)鏈接中,說明了,redhat6系統(tǒng)中,默認(rèn)的libvirt是不支持xen的,如果直接使用默認(rèn)的這會(huì)出現(xiàn)如下的問題:

  注意virt-manager & 這個(gè)命令中的'&' 代表該進(jìn)程后臺(tái)運(yùn)行

復(fù)制代碼
 1 [root@el6 ~]# virt-manager &  2 [1] 2867  3 Unable to open connection to hypervisor URI 'xen:///':  4 no connection driver available for xen:///  5 Traceback (most recent call last):  6   File "/usr/share/virt-manager/virtManager/connection.py", line 992, in _try_open  7     None], flags)  8   File "/usr/lib64/python2.6/site-packages/libvirt.py", line 111, in openAuth  9     if ret is None:raise libvirtError('virConnectOpenAuth() failed') 10 libvirtError: no connection driver available for xen:///
復(fù)制代碼

 開始重新編譯libvirt解決以上的問題。

以下的操作都在非xen系統(tǒng)中進(jìn)行:

沒個(gè)系統(tǒng)遇到的缺的包不一樣,我的系統(tǒng)中還缺失xen-devel包,并且在yum

復(fù)制代碼
 1 [root@el6 ~]# cd /root/src  2 [root@el6 src]# wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/libvirt-0.8.1-27.el6.src.rpm  3 [root@el6 src]# rpm -i libvirt-0.8.1-27.el6.src.rpm  4 [root@el6 src]# wget http://pasik.reaktio.net/xen/patches/libvirt-spec-rhel6-enable-xen.patch  5 [root@el6 src]# cd /root/rpmbuild/SPECS  6 [root@el6 SPECS]# cp -a libvirt.spec libvirt.spec.orig  7 [root@el6 SPECS]# patch -p0 < ~/src/libvirt-spec-rhel6-enable-xen.patch  8 patching file libvirt.spec  9  10 [root@el6 SPECS]# rpmbuild -bb libvirt.spec 11 error: Failed build dependencies: 12         libnl-devel >= 1.1 is needed by libvirt-0.8.1-27.el6.x86_64 13         xhtml1-dtds is needed by libvirt-0.8.1-27.el6.x86_64 14         libudev-devel >= 145 is needed by libvirt-0.8.1-27.el6.x86_64 15         libpciaccess-devel >= 0.10.9 is needed by libvirt-0.8.1-27.el6.x86_64 16         yajl-devel is needed by libvirt-0.8.1-27.el6.x86_64 17         libpcap-devel is needed by libvirt-0.8.1-27.el6.x86_64 18         avahi-devel is needed by libvirt-0.8.1-27.el6.x86_64 19         parted-devel is needed by libvirt-0.8.1-27.el6.x86_64 20         device-mapper-devel is needed by libvirt-0.8.1-27.el6.x86_64 21         numactl-devel is needed by libvirt-0.8.1-27.el6.x86_64 22         netcf-devel >= 0.1.4 is needed by libvirt-0.8.1-27.el6.x86_64 23  [root@el6 SPECS]# yum install libnl-devel xhtml1-dtds libudev-devel libpciaccess-devel yajl-devel libpcap-devel avahi-devel parted-devel device-mapper-devel numactl-devel netcf-devel
復(fù)制代碼

安裝的時(shí)候,提示No packages xen-devel available 。

在多次替換yum源之后,依然無法解決這個(gè)xen-devel包缺失的問題。

隨后的解決方案如下:

在網(wǎng)上下載xen-devel rpm 包,安裝遇到依賴問題,接著下載xen-libs rpm 包,接著還有其他的依賴問題,同樣查找。

具體鏈接: 搜索xen-devel,找到符合系統(tǒng)版本的

1 http://rpm.pbone.net/index.php3

我下載的版本是:
xen-devel-4.1.2_03-1.1.x86_64.rpm

安裝xen-devel還依賴其他的包,如下:

xen-libs-4.1.2_03-1.1.x86_64.rpm

liblzma5-5.0.3-7.1.x86_64.rpm

glibc-common-2.14.90-14.x86_64.rpm

glibc-2.14.90-14.x86_64.rpm

強(qiáng)制安裝如上的包。

如果缺少依賴包,依次去下載對應(yīng)版本,解決問題。這個(gè)過程很蛋疼。

如果所有的依賴包都安裝上后,接著下面的操作:

復(fù)制代碼
1 [root@gb31 SPECS]# rpmbuild -bb libvirt.spec 2 After a while you'll see:  3 Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-0.8.1-27.el6.x86_64.rpm 4 Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-client-0.8.1-27.el6.x86_64.rpm 5 Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-devel-0.8.1-27.el6.x86_64.rpm 6 Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-python-0.8.1-27.el6.x86_64.rpm 7 Wrote: /root/rpmbuild/RPMS/x86_64/libvirt-debuginfo-0.8.1-27.el6.x86_64.rpm
復(fù)制代碼

如果有如上的顯示則安裝成功。

如果遇到屏幕顯示test 。。 一直卡住之后,卸載掉系統(tǒng)中已經(jīng)安裝的libvirt包,再重新嘗試,即可。
接著如下:注意,可能版本不一樣

如果還顯示存在test失敗,make失敗,與libvirt版本相關(guān),這個(gè)問題很蛋疼,多試下幾個(gè)版本吧。就可以解決。

復(fù)制代碼
1 [root@el6 ~]# cd /root/rpmbuild/RPMS/x86_64/ 2 [root@el6 x86_64]# rpm -Uvh --force libvirt-0.8.1-27.el6.x86_64.rpm libvirt-client-0.8.1-27.el6.x86_64.rpm libvirt-python-0.8.1-27.el6.x86_64.rpm 3 Preparing...                ########################################### [100%] 4    1:libvirt-client         ########################################### [ 33%] 5    2:libvirt                ########################################### [ 67%] 6    3:libvirt-python         ########################################### [100%]
復(fù)制代碼

9.進(jìn)入xen系統(tǒng)

重啟系統(tǒng),進(jìn)入xen系統(tǒng)。

嘗試輸入如下命令:xm-list ,xm-info

再接著嘗試如下命令:virt-install,嘗試著安裝虛擬機(jī)

如果顯示的錯(cuò)誤如下:

1 ERROR unable to connect to ‘localhost:8000′: Connection refused

則需要去做如下修改:

1 解決方案:查看libvirtd服務(wù)是否啟動(dòng),關(guān)閉防火墻,在/etc/xen/xend-config.sxp  2 (xend-http-server yes) 3 # Port xend should use for the HTTP interface, if xend-http-server is set. 4 (xend-port 8000) 5 去掉上面兩個(gè)括弧的注釋,ok

再重新啟動(dòng)xend服務(wù)

1 service xend restart

 

至此,可以嘗試在桌面上氣筒virtual machine manager 去創(chuàng)建虛擬機(jī)。
創(chuàng)建過程如果如下問題:

可以系統(tǒng)路勁的問題,在usr/lib/xen/bin下找到qemu-dm放到lib64下對應(yīng)的路徑。

就ok。

 

10.配置網(wǎng)橋橋接模式

修改ifcfg-eth0如下:

復(fù)制代碼
 1 DEVICE="eth0"  2 BOOTPROTO="static"  3 HWADDR="**********“  4 NM_CONTROLLED="no"  5 ONBOOT="yes"  6 IPADDR="*******”  7 NETMASK="255.255.0.0"  8 GATEWAY="********"  9 TYPE=Ethernet 10 DNS1="8.8.8.8" 11 DNS2="8.8.4.4" 12 BRIDGE=br100
復(fù)制代碼

創(chuàng)建ifcfg-br100文件,內(nèi)容如下:

復(fù)制代碼
 1 DEVICE="br100"  2 BOOTPROTO="static"  3 HWADDR="*********"  4 NM_CONTROLLED="no"  5 ONBOOT="yes"  6 IPADDR="*******"  7 NETMASK="255.255.0.0"  8 GATEWAY="*******"  9 TYPE=Bridge 10 DEFROUTE=yes 11 DNS1="8.8.8.8" 12 DNS2="8.8.4.4"
復(fù)制代碼

11.ok,至此,xen的安裝結(jié)束了,可以放心大膽的創(chuàng)建虛擬機(jī)了。



張生 2013-01-31 11:13 發(fā)表評論
]]>
android權(quán)限http://www.tkk7.com/zks518/archive/2012/09/17/387936.html張生張生Mon, 17 Sep 2012 12:45:00 GMThttp://www.tkk7.com/zks518/archive/2012/09/17/387936.htmlhttp://www.tkk7.com/zks518/comments/387936.htmlhttp://www.tkk7.com/zks518/archive/2012/09/17/387936.html#Feedback1http://www.tkk7.com/zks518/comments/commentRss/387936.htmlhttp://www.tkk7.com/zks518/services/trackbacks/387936.htmlandroid.permission.ACCESS_CHECKIN_PROPERTIES
//允許讀寫訪問”properties”表在checkin數(shù)據(jù)庫中,改值可以修改上傳

android.permission.ACCESS_COARSE_LOCATION
//允許一個(gè)程序訪問CellID或WiFi熱點(diǎn)來獲取粗略的位置

android.permission.ACCESS_FINE_LOCATION
//允許一個(gè)程序訪問精良位置(如GPS)

android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
//允許應(yīng)用程序訪問額外的位置提供命令

android.permission.ACCESS_MOCK_LOCATION
//允許程序創(chuàng)建模擬位置提供用于測試

android.permission.ACCESS_NETWORK_STATE
//允許程序訪問有關(guān)GSM網(wǎng)絡(luò)信息

android.permission.ACCESS_SURFACE_FLINGER
//允許程序使用SurfaceFlinger底層特性

android.permission.ACCESS_WIFI_STATE
//允許程序訪問Wi-Fi網(wǎng)絡(luò)狀態(tài)信息

android.permission.ADD_SYSTEM_SERVICE
//允許程序發(fā)布系統(tǒng)級服務(wù)

android.permission.BATTERY_STATS
//允許程序更新手機(jī)電池統(tǒng)計(jì)信息

android.permission.BLUETOOTH
//允許程序連接到已配對的藍(lán)牙設(shè)備

android.permission.BLUETOOTH_ADMIN
//允許程序發(fā)現(xiàn)和配對藍(lán)牙設(shè)備

android.permission.BRICK
//請求能夠禁用設(shè)備(非常危險(xiǎn)

android.permission.BROADCAST_PACKAGE_REMOVED
//允許程序廣播一個(gè)提示消息在一個(gè)應(yīng)用程序包已經(jīng)移除后

android.permission.BROADCAST_STICKY
//允許一個(gè)程序廣播常用intents

android.permission.CALL_PHONE
//允許一個(gè)程序初始化一個(gè)電話撥號不需通過撥號用戶界面需要用戶確認(rèn)

android.permission.CALL_PRIVILEGED
//允許一個(gè)程序撥打任何號碼,包含緊急號碼無需通過撥號用戶界面需要用戶確認(rèn)

android.permission.CAMERA
//請求訪問使用照相設(shè)備

android.permission.CHANGE_COMPONENT_ENABLED_STATE
//允許一個(gè)程序是否改變一個(gè)組件或其他的啟用或禁用

android.permission.CHANGE_CONFIGURATION
//允許一個(gè)程序修改當(dāng)前設(shè)置,如本地化

android.permission.CHANGE_NETWORK_STATE
//允許程序改變網(wǎng)絡(luò)連接狀態(tài)

android.permission.CHANGE_WIFI_STATE
//允許程序改變Wi-Fi連接狀態(tài)

android.permission.CLEAR_APP_CACHE
//允許一個(gè)程序清楚緩存從所有安裝的程序在設(shè)備中

android.permission.CLEAR_APP_USER_DATA
//允許一個(gè)程序清除用戶設(shè)置

android.permission.CONTROL_LOCATION_UPDATES
//允許啟用禁止位置更新提示從無線模塊

android.permission.DELETE_CACHE_FILES
//允許程序刪除緩存文件

android.permission.DELETE_PACKAGES
//允許一個(gè)程序刪除包

android.permission.DEVICE_POWER
//允許訪問底層電源管理

android.permission.DIAGNOSTIC
//允許程序RW診斷資源

android.permission.DISABLE_KEYGUARD
//允許程序禁用鍵盤鎖

android.permission.DUMP
//允許程序返回狀態(tài)抓取信息從系統(tǒng)服務(wù)

android.permission.EXPAND_STATUS_BAR
//允許一個(gè)程序擴(kuò)展收縮在狀態(tài)欄,android開發(fā)網(wǎng)提示應(yīng)該是一個(gè)類似Windows Mobile中的托盤程序

android.permission.FACTORY_TEST
//作為一個(gè)工廠測試程序,運(yùn)行在root用戶

android.permission.FLASHLIGHT
//訪問閃光燈,android開發(fā)網(wǎng)提示HTC Dream不包含閃光燈

android.permission.FORCE_BACK
//允許程序強(qiáng)行一個(gè)后退操作是否在頂層activities

android.permission.FOTA_UPDATE
//暫時(shí)不了解這是做什么使用的,android開發(fā)網(wǎng)分析可能是一個(gè)預(yù)留權(quán)限.

android.permission.GET_ACCOUNTS
//訪問一個(gè)帳戶列表在Accounts Service中

android.permission.GET_PACKAGE_SIZE
//允許一個(gè)程序獲取任何package占用空間容量

android.permission.GET_TASKS
//允許一個(gè)程序獲取信息有關(guān)當(dāng)前或最近運(yùn)行的任務(wù),一個(gè)縮略的任務(wù)狀態(tài),是否活動(dòng)等等

android.permission.HARDWARE_TEST
//允許訪問硬件

android.permission.INJECT_EVENTS
//允許一個(gè)程序截獲用戶事件如按鍵、觸摸、軌跡球等等到一個(gè)時(shí)間流,android 開發(fā)網(wǎng)提醒算是hook技術(shù)吧

android.permission.INSTALL_PACKAGES
//允許一個(gè)程序安裝packages

android.permission.INTERNAL_SYSTEM_WINDOW
//允許打開窗口使用系統(tǒng)用戶界面

android.permission.INTERNET
//允許程序打開網(wǎng)絡(luò)套接字

android.permission.MANAGE_APP_TOKENS
//允許程序管理(創(chuàng)建、催后、 z- order默認(rèn)向z軸推移)程序引用在窗口管理器中

android.permission.MASTER_CLEAR
//目前還沒有明確的解釋,android開發(fā)網(wǎng)分析可能是清除一切數(shù)據(jù),類似硬格機(jī)

android.permission.MODIFY_AUDIO_SETTINGS
//允許程序修改全局音頻設(shè)置

android.permission.MODIFY_PHONE_STATE
//允許修改話機(jī)狀態(tài),如電源,人機(jī)接口等

android.permission.MOUNT_UNMOUNT_FILESYSTEMS
//允許掛載和反掛載文件系統(tǒng)可移動(dòng)存儲(chǔ)

android.permission.PERSISTENT_ACTIVITY
//允許一個(gè)程序設(shè)置他的activities顯示

android.permission.PROCESS_OUTGOING_CALLS
//允許程序監(jiān)視、修改有關(guān)播出電話

android.permission.READ_CALENDAR
//允許程序讀取用戶日歷數(shù)據(jù)

android.permission.READ_CONTACTS
//允許程序讀取用戶聯(lián)系人數(shù)據(jù)

android.permission.READ_FRAME_BUFFER
//允許程序屏幕波或和更多常規(guī)的訪問幀緩沖數(shù)據(jù)

android.permission.READ_INPUT_STATE
//允許程序返回當(dāng)前按鍵狀態(tài)

android.permission.READ_LOGS
//允許程序讀取底層系統(tǒng)日志文件

android.permission.READ_OWNER_DATA
//允許程序讀取所有者數(shù)據(jù)

android.permission.READ_SMS
//允許程序讀取短信息

android.permission.READ_SYNC_SETTINGS
//允許程序讀取同步設(shè)置

android.permission.READ_SYNC_STATS
//允許程序讀取同步狀態(tài)

android.permission.REBOOT
//請求能夠重新啟動(dòng)設(shè)備

android.permission.RECEIVE_BOOT_COMPLETED
//允許一個(gè)程序接收到

android.permission.RECEIVE_MMS
//允許一個(gè)程序監(jiān)控將收到MMS彩信,記錄或處理

android.permission.RECEIVE_SMS
//允許程序監(jiān)控一個(gè)將收到短信息,記錄或處理

android.permission.RECEIVE_WAP_PUSH
//允許程序監(jiān)控將收到WAP PUSH信息

android.permission.RECORD_AUDIO
//允許程序錄制音頻

android.permission.REORDER_TASKS
//允許程序改變Z軸排列任務(wù)

android.permission.RESTART_PACKAGES
//允許程序重新啟動(dòng)其他程序

android.permission.SEND_SMS
//允許程序發(fā)送SMS短信

android.permission.SET_ACTIVITY_WATCHER
//允許程序監(jiān)控或控制activities已經(jīng)啟動(dòng)全局系統(tǒng)中

android.permission.SET_ALWAYS_FINISH
//允許程序控制是否活動(dòng)間接完成在處于后臺(tái)時(shí)

android.permission.SET_ANIMATION_SCALE
//修改全局信息比例

android.permission.SET_DEBUG_APP
//配置一個(gè)程序用于調(diào)試

android.permission.SET_ORIENTATION
//允許底層訪問設(shè)置屏幕方向和實(shí)際旋轉(zhuǎn)

android.permission.SET_PREFERRED_APPLICATIONS
//允許一個(gè)程序修改列表參數(shù)PackageManager.addPackageToPreferred() 和PackageManager.removePackageFromPreferred()方法

android.permission.SET_PROCESS_FOREGROUND
//允許程序當(dāng)前運(yùn)行程序強(qiáng)行到前臺(tái)

android.permission.SET_PROCESS_LIMIT
//允許設(shè)置最大的運(yùn)行進(jìn)程數(shù)量

android.permission.SET_TIME_ZONE
//允許程序設(shè)置時(shí)間區(qū)域

android.permission.SET_WALLPAPER
//允許程序設(shè)置壁紙

android.permission.SET_WALLPAPER_HINTS
//允許程序設(shè)置壁紙hits

android.permission.SIGNAL_PERSISTENT_PROCESSES
//允許程序請求發(fā)送信號到所有顯示的進(jìn)程中

android.permission.STATUS_BAR
//允許程序打開、關(guān)閉或禁用狀態(tài)欄及圖標(biāo)Allows an application to open, close, or disable the status bar and its icons.

android.permission.SUBSCRIBED_FEEDS_READ
//允許一個(gè)程序訪問訂閱RSS Feed內(nèi)容提供

android.permission.SUBSCRIBED_FEEDS_WRITE
//系統(tǒng)暫時(shí)保留改設(shè)置,android開發(fā)網(wǎng)認(rèn)為未來版本會(huì)加入該功能。

android.permission.SYSTEM_ALERT_WINDOW
//允許一個(gè)程序打開窗口使用 TYPE_SYSTEM_ALERT,顯示在其他所有程序的頂層(Allows an application to open windows using the type TYPE_SYSTEM_ALERT, shown on top of all other applications. )

android.permission.VIBRATE
//允許訪問振動(dòng)設(shè)備

android.permission.WAKE_LOCK
//允許使用PowerManager的 WakeLocks保持進(jìn)程在休眠時(shí)從屏幕消失

android.permission.WRITE_APN_SETTINGS
//允許程序?qū)懭階PI設(shè)置

android.permission.WRITE_CALENDAR
//允許一個(gè)程序?qū)懭氲蛔x取用戶日歷數(shù)據(jù)

android.permission.WRITE_CONTACTS
//允許程序?qū)懭氲蛔x取用戶聯(lián)系人數(shù)據(jù)

android.permission.WRITE_GSERVICES
//允許程序修改Google服務(wù)地圖

android.permission.WRITE_OWNER_DATA
//允許一個(gè)程序?qū)懭氲蛔x取所有者數(shù)據(jù)

android.permission.WRITE_SETTINGS
//允許程序讀取或?qū)懭胂到y(tǒng)設(shè)置

android.permission.WRITE_SMS
//允許程序?qū)懚绦?

android.permission.WRITE_SYNC_SETTINGS
//允許程序?qū)懭胪皆O(shè)置
 

張生 2012-09-17 20:45 發(fā)表評論
]]>
java調(diào)用url的兩種方式http://www.tkk7.com/zks518/archive/2012/09/17/387902.html張生張生Mon, 17 Sep 2012 06:53:00 GMThttp://www.tkk7.com/zks518/archive/2012/09/17/387902.htmlhttp://www.tkk7.com/zks518/comments/387902.htmlhttp://www.tkk7.com/zks518/archive/2012/09/17/387902.html#Feedback0http://www.tkk7.com/zks518/comments/commentRss/387902.htmlhttp://www.tkk7.com/zks518/services/trackbacks/387902.html java調(diào)用url的兩種方式
一、在java中調(diào)用url,并打開一個(gè)新的窗口

String url="http://10.58.2.131:8088/spesBiz/test1.jsp";
String cmd = "cmd.exe /c start " + url;

try {
 Process proc = Runtime.getRuntime().exec(cmd);
 proc.waitFor();
}
catch (Exception e)
{
 e.printStackTrace();
}

二、在java中調(diào)用url,后臺(tái)調(diào)用。并取得返回值
URL U = new URL("http://10.58.2.131:8088/spesBiz/test1.jsp");
URLConnection connection = U.openConnection();
   connection.connect();
  
   BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
   String line;
   while ((line = in.readLine())!= null)
   {
    result += line;
   }
   in.close();


張生 2012-09-17 14:53 發(fā)表評論
]]>
檢測Tomcat運(yùn)行狀態(tài),自動(dòng)重啟 http://www.tkk7.com/zks518/archive/2012/05/24/379005.html張生張生Thu, 24 May 2012 02:44:00 GMThttp://www.tkk7.com/zks518/archive/2012/05/24/379005.htmlhttp://www.tkk7.com/zks518/comments/379005.htmlhttp://www.tkk7.com/zks518/archive/2012/05/24/379005.html#Feedback0http://www.tkk7.com/zks518/comments/commentRss/379005.htmlhttp://www.tkk7.com/zks518/services/trackbacks/379005.html 檢測Tomcat運(yùn)行狀態(tài),自動(dòng)重啟
http://blog.csdn.net/huangjl2000w/article/details/6338997

先是主程序:


import java.io.BufferedReader;
import java.io.FileReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.Date;

public class CheckTomcat {
 private static String tomcatroot="";
 private static String monitorurl="";
 private static void checkTomcatIsAlive(String myurl) throws NullPointerException {
  String s;
  boolean isTomcatAlive = false;
  java.io.BufferedReader in;
  try {
   System.out.println(">>>>>>檢測URL:"+myurl);
   URL url = new URL(myurl);
   URLConnection con = url.openConnection();
   in = new java.io.BufferedReader(new java.io.InputStreamReader(con.getInputStream()));
   con.setConnectTimeout(1000);
   con.setReadTimeout(4000);
   while ((s = in.readLine()) != null) {
    if (s.length() > 0) {// 如果能夠讀取到頁面則證明可用,tomcat正常,否則繼續(xù)后面的重啟tomcat操作。
     return;
     }
    }
   in.close();
  }catch (Exception ex) {
   //ex.printStackTrace();
   System.out.println("*************該URL有誤或不可訪問!");
  }
  
  /*if (isTomcatAlive) {
   System.out.println("<" + new Date()+ "> Tomcat is alive but not response!");
   stopTomcat();
  }*/
  RunTomcat runt=new RunTomcat();
  runt.startTomcat(tomcatroot);
 }
 
 /*public static void stopTomcat() {
  try {
   //java.lang.Process p = java.lang.Runtime.getRuntime().exec("net stop /"Apache Tomcat/"");
   java.lang.Process p = java.lang.Runtime.getRuntime().exec(tomcatroot+"bin//shutdown.bat");
   java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream()));
   String s;
   String t = "Using JRE_HOME";
   boolean restart = false;
   while ((s = in.readLine()) != null) {
    if (s.indexOf(t) != -1) {
     restart = true;
     break;
    }
   }
   System.out.println("<" + new Date() + "> Tomcat is stop "+ (restart ? "OK" : "ERROR"));
  } catch (Exception e) {
   e.printStackTrace();
  }
 }*/
 
 public static void main(String[] args) {
  System.out.println("********************************************************");
  System.out.println("====本程序自動(dòng)檢測Tomcat運(yùn)行狀況,必要時(shí)自動(dòng)重啟Tomcat。====");
  System.out.println("********************************************************");
  
  init_config();
  if(monitorurl.equals(""))monitorurl="http://localhost:8080/ExchangeWeb/checkTomcat/monitor.jsp";
  if(tomcatroot.equals(""))tomcatroot="F://tomcat-6.0.20//";
  if(!tomcatroot.endsWith("//"))tomcatroot+="http://";
  while (true) {
   try {
    String random="?random="+Math.random() * 65535;//=====處理數(shù)據(jù)緩存問題======
    CheckTomcat.checkTomcatIsAlive(monitorurl+random);
    Thread.sleep(5000);
    System.out.println("========================checking at <"+new Date()+">");
   } catch (Exception ex) {
    ex.printStackTrace();
   }
  }
 }
 
 static private void init_config() {
  try{
   CheckTomcat me=new CheckTomcat();
   String maindir=me.getClass().getResource("/").toURI().getPath();
   System.out.println(">>>>>>配置文件目錄:"+maindir);
   String sLine;
   String filename=maindir+"config.xml";
   BufferedReader buffReader = new BufferedReader(new FileReader(filename));
   while((sLine = buffReader.readLine())!=null)
   { 
    sLine = sLine.trim();
    if(sLine.trim()!="" && !sLine.equals("")){
     if(sLine.toLowerCase().startsWith("tomcatroot")){
      int npos=sLine.indexOf("tomcatroot");
      npos+="tomcatroot".length();
      tomcatroot=sLine.substring(npos).trim();
      if(tomcatroot.startsWith("="))tomcatroot=tomcatroot.substring(1);
     }
     else if(sLine.toLowerCase().startsWith("monitorurl")){
      int npos=sLine.indexOf("monitorurl");
      npos+="monitorurl".length();
      monitorurl=sLine.substring(npos).trim();
      if(monitorurl.startsWith("="))monitorurl=monitorurl.substring(1);
     }
    }
   }
   buffReader=null;
  }catch(Exception e){
   e.printStackTrace();
   System.out.println("********************************************************");
   System.out.println("====讀取配置文件失敗!系統(tǒng)無法運(yùn)行,請與供應(yīng)商聯(lián)系。====");
   System.out.println("********************************************************");
   System.exit(0);
  }
 }
}

 

再是自動(dòng)重啟Tomcat線程類:

import java.util.Date;


public class RunTomcat extends Thread {

 private static String tomcatroot="";
 
 public void startTomcat(String root) {
  this.tomcatroot=root;
  
  System.out.println(">>>>>>Tomcat即將啟動(dòng)。。。");
  System.out.println(">>>>>>Tomcat根目錄:"+tomcatroot);
  try {
   //java.lang.Process p = java.lang.Runtime.getRuntime().exec("net stop /"Apache Tomcat/"");
   java.lang.Process p = java.lang.Runtime.getRuntime().exec(tomcatroot+"bin//shutdown.bat");
  } catch (Exception e) {
    e.printStackTrace();
  }
  
  try {
   Thread.sleep(3000);//等待shutdown結(jié)束
   //RunTomcat me=new RunTomcat();
   //String maindir=me.getClass().getResource("/").toURI().getPath();
   //java.lang.Process p = java.lang.Runtime.getRuntime().exec(maindir+"checkTomcat.bat");
   java.lang.Process p = java.lang.Runtime.getRuntime().exec(tomcatroot+"bin//startup.bat");
   java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream()));
   
   /*String s;
   boolean restart = false;
   String t = "Server startup in";
   while ((s = in.readLine()) != null) {
    System.out.println(s);
    if (s.indexOf(t) != -1) {
     restart = true;
     break;
    }
   }*/
   System.out.println(">>>>>>Tomcat start at <" + new Date() + ">");
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

}

接著是檢測tomcat是否活動(dòng)monitor.jsp文件:

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
out.println("path=" + path + "<br>");
out.println("basePath=" + basePath + "<br>");
out.println("ok<br>");
%>

 

然后是config.xml配置文件:

tomcatroot=F:/tomcat-6.0.20/
monitorurl=http://localhost:8080/ExchangeWeb/checkTomcat/monitor.jsp

 

最后是checkTomcat.bat批處理文件:

@echo off

rem=========第一步:配置下面的JAVA_HOME為JDK目錄==========#
@set JAVA_HOME=C:/Program Files/Java/jdk1.6.0_14

rem=========第二步:配置下面的CATALINA_HOME為Tomcat目錄==========#
@set CATALINA_HOME=F:/tomcat-6.0.20

@set PATH=%JAVA_HOME%/bin/;
@set CLASSPATH=%JAVA_HOME%/lib/rt.jar;%JAVA_HOME%/lib/tools.jar;%CATALINA_HOME%/lib/servlet-api.jar;%CATALINA_HOME%/lib/jsp-api.jar;


java CheckTomcat

 

測試時(shí),只要雙擊執(zhí)行checkTomcat.bat文件即可。



張生 2012-05-24 10:44 發(fā)表評論
]]>
旋轉(zhuǎn)Divhttp://www.tkk7.com/zks518/archive/2012/05/18/378479.html張生張生Fri, 18 May 2012 03:20:00 GMThttp://www.tkk7.com/zks518/archive/2012/05/18/378479.htmlhttp://www.tkk7.com/zks518/comments/378479.htmlhttp://www.tkk7.com/zks518/archive/2012/05/18/378479.html#Feedback3http://www.tkk7.com/zks518/comments/commentRss/378479.htmlhttp://www.tkk7.com/zks518/services/trackbacks/378479.html
<div style="position:absolute;filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3)">內(nèi)容啊</div>

兼容的寫法

<div style="position:absolute;filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform: rotate(270deg); -moz-transform: rotate(270deg); -o-transform: rotate(270deg);transform: rotate(270deg);">內(nèi)容啊</div>

張生 2012-05-18 11:20 發(fā)表評論
]]>
mysql事件自動(dòng)復(fù)制表http://www.tkk7.com/zks518/archive/2011/09/21/359155.html張生張生Wed, 21 Sep 2011 06:36:00 GMThttp://www.tkk7.com/zks518/archive/2011/09/21/359155.htmlhttp://www.tkk7.com/zks518/comments/359155.htmlhttp://www.tkk7.com/zks518/archive/2011/09/21/359155.html#Feedback0http://www.tkk7.com/zks518/comments/commentRss/359155.htmlhttp://www.tkk7.com/zks518/services/trackbacks/359155.htmlbegin
    set @table_sql ='create table coordinate';
    #set @table_sql =  concat(@table_sql,DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'));
    set @table_sql = concat(@table_sql,curdate()+1);
    #set @table_sql = concat(@table_sql,'daycounts');
    set @table_sql =  concat(@table_sql,"(
      select * from coordinate
    )");
     PREPARE stmt1 FROM @table_sql;
     EXECUTE stmt1;
    end;


張生 2011-09-21 14:36 發(fā)表評論
]]>
顏色 16進(jìn)制對照表http://www.tkk7.com/zks518/archive/2011/08/12/356409.html張生張生Fri, 12 Aug 2011 09:55:00 GMThttp://www.tkk7.com/zks518/archive/2011/08/12/356409.htmlhttp://www.tkk7.com/zks518/comments/356409.htmlhttp://www.tkk7.com/zks518/archive/2011/08/12/356409.html#Feedback4http://www.tkk7.com/zks518/comments/commentRss/356409.htmlhttp://www.tkk7.com/zks518/services/trackbacks/356409.html

顏色代碼表:以下樣色顯示您可能覺得不夠精確,這和電腦顯示器有直接關(guān)系。您可查看顏色代碼,絕對正確,絕無重復(fù)。

紅色和粉紅色,以及它們的16進(jìn)制代碼。

#990033 #CC6699 #FF6699 #FF3366 #993366 #CC0066 #CC0033 #FF0066 #FF0033 ..#CC3399..
#FF3399 #FF9999 #FF99CC #FF0099 #CC3366 #FF66CC #FF33CC #FFCCFF #FF99FF #FF00CC

紫紅色,以及它們的16進(jìn)制代碼。

#FF66FF #CC33CC #CC00FF #FF33FF #CC99FF #9900CC #FF00FF #CC66FF #990099 #CC0099
#CC33FF #CC99CC #990066 #993399 #CC66CC #CC00CC #663366      
藍(lán)色,以及它們的16進(jìn)制代碼。
#660099 #666FF #000CC #9933CC #666699 #660066 #333366 #0066CC #9900FF #333399
#99CCFF #9933FF #330099 #6699FF #9966CC #3300CC #003366 #330033 #3300FF #6699CC
#663399 #3333FF #006699 #6633CC #3333CC #3399CC #6600CC #0066FF #0099CC #9966FF
#0033FF #66CCFF #330066 #3366FF #3399FF #6600FF #3366CC #003399 #6633FF #000066
#0099FF #CCCCFF #000033 #33CCFF #9999FF #0000FF #00CCFF #9999CC #000099 #6666CC
#0033CC                  
黃色、褐色、玫瑰色和橙色,以及它們的16進(jìn)制代碼。
#FFFFCC #FFCC00 #CC99090 #663300 #FF6600 #663333 #CC6666 #FF6666 #FF0000 #FFFF99
#FFCC66 #FF9900 #FF9966 #CC3300 #996666 #FFCCCC #660000 #FF3300 #FF6666 #FFCC33
#CC6600 #FF6633 #996633 #CC9999 #FF3333 #990000 #CC9966 #FFFF33 #CC9933 #993300
#FF9933 #330000 #993333 #CC3333 #CC0000 #FFCC99 #FFFF00 #996600 #CC6633  
綠色,以及它們的16進(jìn)制代碼。
#99FFFF #33CCCC #00CC99 #99FF99 #009966 #33FF33 #33FF00 #99CC33 #CCC33 #66FFFF
#66CCCC #66FFCC #66FF66 #009933 #00CC33 #66FF00 #336600 #33300 #33FFFF #339999
#99FFCC #339933 #33FF66 #33CC33 #99FF00 #669900 #666600 #00FFFF #336666 #00FF99
#99CC99 #00FF66 #66FF33 #66CC00 #99CC00 #999933 #00CCCC #006666 #339966 #66FF99
#CCFFCC #00FF00 #00CC00 #CCFF66 #CCCC66 #009999 #003333 #006633 #33FF99 #CCFF99
#66CC33 #33CC00 #CCFF33 #666633 #669999 #00FFCC #336633 #33CC66 #99FF66 #006600
#339900 #CCFF00 #999966 #99CCCC #33FFCC #669966 #00CC66 #99FF33 #003300 #99CC66
#999900 #CCCC99 #CCFFFF #33CC99 #66CC66 #66CC99 #00FF33 #009900 #669900 #669933
#CCCC00                  
白色、灰色和黑色,以及它們的16進(jìn)制代碼。
#FFFFF #CCCCCC #999999 #666666 #333333 #000000        
16色和它們的16進(jìn)制代碼。
Aqua Black Fuchsia Gray Gree Lime Maroon Navy Olive Purple
Red Silver Teal White Yellow Blue        


張生 2011-08-12 17:55 發(fā)表評論
]]>
彈簧式菜單 CSS樣式http://www.tkk7.com/zks518/archive/2011/08/12/356345.html張生張生Fri, 12 Aug 2011 00:58:00 GMThttp://www.tkk7.com/zks518/archive/2011/08/12/356345.htmlhttp://www.tkk7.com/zks518/comments/356345.htmlhttp://www.tkk7.com/zks518/archive/2011/08/12/356345.html#Feedback0http://www.tkk7.com/zks518/comments/commentRss/356345.htmlhttp://www.tkk7.com/zks518/services/trackbacks/356345.html<!DOCTYPE html PUBliC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>css菜單演示</title>


<style type="text/css">
<!--

*{margin:0;padding:0;border:0;}
body {
 font-family: arial, 宋體, serif;
        font-size:12px;
}


#nav {
  line-height: 24px;  list-style-type: none; background:#666;   width:80px;
}

#nav a {
 display: block; width: 80px; text-align:center;
}

#nav a:link  {
 color:#666; text-decoration:none;
}
#nav a:visited  {
 color:#666;text-decoration:none;
}
#nav a:hover  {
 color:#FFF;text-decoration:none;font-weight:bold;
}

#nav li {
 /*float: left*/; width: 80px; background:#CCC;
}
#nav li a:hover{
 background:#999;
}
#nav li ul {
 line-height: 27px;  list-style-type: none;text-align:left;
 left: -999em; width: 80px; position: absolute;
}
#nav li ul li{
 float: left; width: 80px;
 background: #F6F6F6;
}


#nav li ul a{
 display: block; width: 80px;w\idth:56px;text-align:left;padding-left:24px;
}

#nav li ul a:link  {
 color:#666; text-decoration:none;
}
#nav li ul a:visited  {
 color:#666;text-decoration:none;
}
#nav li ul a:hover  {
 color:#F3F3F3;text-decoration:none;font-weight:normal;
 background:#C00;
}

#nav li:hover ul {
 left: auto;
}
#nav li.sfhover ul {
 left: auto;position:static;
}
#content {
 clear: left;
}


-->
</style>

<script type=text/javascript><!--//--><![CDATA[//><!--
function menuFix() {
 var sfEls = document.getElementById("nav").getElementsByTagName("li");
 for (var i=0; i<sfEls.length; i++) {
  sfEls[i].onmouseover=function() {
  this.className+=(this.className.length>0? " ": "") + "sfhover";
  }
  sfEls[i].onMouseDown=function() {
  this.className+=(this.className.length>0? " ": "") + "sfhover";
  }
  sfEls[i].onMouseUp=function() {
  this.className+=(this.className.length>0? " ": "") + "sfhover";
  }
  sfEls[i].onmouseout=function() {
  this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"),

"");
  }
 }
}
window.onload=menuFix;

//--><!]]></script>

</head>
<body>


<ul id="nav">
<li><a href="#">產(chǎn)品介紹</a>
 <ul>
 <li><a href="#">產(chǎn)品一</a></li>
 <li><a href="#">產(chǎn)品一</a></li>
 <li><a href="#">產(chǎn)品一</a></li>
 <li><a href="#">產(chǎn)品一</a></li>
 <li><a href="#">產(chǎn)品一</a></li>
 <li><a href="#">產(chǎn)品一</a></li>
 </ul>
</li>
<li><a href="#">服務(wù)介紹</a>
 <ul>
 <li><a href="#">服務(wù)二</a></li>
 <li><a href="#">服務(wù)二</a></li>
 <li><a href="#">服務(wù)二</a></li>
 <li><a href="#">服務(wù)二服務(wù)二</a></li>
 <li><a href="#">服務(wù)二服務(wù)二服務(wù)二</a></li>
 <li><a href="#">服務(wù)二</a></li>
 </ul>
</li>
<li><a href="#">成功案例</a>
 <ul>
 <li><a href="#">案例三</a></li>
 <li><a href="#">案例</a></li>
 <li><a href="#">案例三案例三</a></li>
 <li><a href="#">案例三案例三案例三</a></li>
 </ul>
</li>
<li><a href="#">關(guān)于我們</a>
 <ul>
 <li><a href="#">我們四</a></li>
 <li><a href="#">我們四</a></li>
 <li><a href="#">我們四</a></li>
 <li><a href="#">我們四111</a></li>
 </ul>
</li>

<li><a href="#">在線演示</a>
 <ul>
 <li><a href="#">演示</a></li>
 <li><a href="#">演示</a></li>
 <li><a href="#">演示</a></li>
 <li><a href="#">演示演示演示</a></li>
 <li><a href="#">演示演示演示</a></li>
 <li><a href="#">演示演示</a></li>
 <li><a href="#">演示演示演示</a></li>
 <li><a href="#">演示演示演示演示演示</a></li>
 </ul>
</li>
<li><a href="#">聯(lián)系我們</a>
 <ul>
 <li><a href="#">聯(lián)系聯(lián)系聯(lián)系聯(lián)系聯(lián)系</a></li>
 <li><a href="#">聯(lián)系聯(lián)系聯(lián)系</a></li>
 <li><a href="#">聯(lián)系</a></li>
 <li><a href="#">聯(lián)系聯(lián)系</a></li>
 <li><a href="#">聯(lián)系聯(lián)系</a></li>
 <li><a href="#">聯(lián)系聯(lián)系聯(lián)系</a></li>
 <li><a href="#">聯(lián)系聯(lián)系聯(lián)系</a></li>
 </ul>
</li>

</ul>

</body>
</html>


張生 2011-08-12 08:58 發(fā)表評論
]]>
JS中數(shù)組Array的用法{轉(zhuǎn)載}http://www.tkk7.com/zks518/archive/2011/06/24/352948.html張生張生Fri, 24 Jun 2011 04:27:00 GMThttp://www.tkk7.com/zks518/archive/2011/06/24/352948.htmlhttp://www.tkk7.com/zks518/comments/352948.htmlhttp://www.tkk7.com/zks518/archive/2011/06/24/352948.html#Feedback10http://www.tkk7.com/zks518/comments/commentRss/352948.htmlhttp://www.tkk7.com/zks518/services/trackbacks/352948.html

js數(shù)組元素的添加和刪除一直比較迷惑,今天終于找到詳細(xì)說明的資料了,先給個(gè)我測試的代碼^-^
var arr = new Array();
arr[0] = "aaa";
arr[1] = "bbb";
arr[2] = "ccc";
//alert(arr.length);//3
arr.pop();
//alert(arr.length);//2
//alert(arr[arr.length-1]);//bbb
arr.pop();
//alert(arr[arr.length-1]);//aaa
//alert(arr.length);//1

var arr2 = new Array();
//alert(arr2.length);//0
arr2[0] = "aaa";
arr2[1] = "bbb";
//alert(arr2.length);//2
arr2.pop();
//alert(arr2.length);//1
arr2 = arr2.slice(0,arr2.length-1);
//alert(arr2.length);//0
arr2[0] = "aaa";
arr2[1] = "bbb";
arr2[2] = "ccc";
arr2 = arr2.slice(0,1);
alert(arr2.length);//1
alert(arr2[0]);//aaa
alert(arr2[1]);//undefined

shift:刪除原數(shù)組第一項(xiàng),并返回刪除元素的值;如果數(shù)組為空則返回undefined
var a = [1,2,3,4,5];
var b = a.shift(); //a:[2,3,4,5]   b:1

unshift:將參數(shù)添加到原數(shù)組開頭,并返回?cái)?shù)組的長度
var a = [1,2,3,4,5];
var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5]   b:7
注:在IE6.0下測試返回值總為undefined,F(xiàn)F2.0下測試返回值為7,所以這個(gè)方法的返回值不可靠,需要用返回值時(shí)可用splice代替本方法來使用。

pop:刪除原數(shù)組最后一項(xiàng),并返回刪除元素的值;如果數(shù)組為空則返回undefined
var a = [1,2,3,4,5];
var b = a.pop(); //a:[1,2,3,4]   b:5//不用返回的話直接調(diào)用就可以了

push:將參數(shù)添加到原數(shù)組末尾,并返回?cái)?shù)組的長度
var a = [1,2,3,4,5];
var b = a.push(6,7); //a:[1,2,3,4,5,6,7]   b:7

concat:返回一個(gè)新數(shù)組,是將參數(shù)添加到原數(shù)組中構(gòu)成的
var a = [1,2,3,4,5];
var b = a.concat(6,7); //a:[1,2,3,4,5]   b:[1,2,3,4,5,6,7]

splice(start,deleteCount,val1,val2,...):start位置開始刪除deleteCount項(xiàng),并從該位置起插入val1,val2,...

在清空數(shù)組時(shí),只需傳遞startIndex

如果不刪除所有元素,再傳遞deleteCount參數(shù)。

splice還具有先刪除后添加的功能,即先刪除幾個(gè)元素,然后在刪除的位置再添加若干元素,刪除與添加的元素的個(gè)數(shù)沒有必須相等,這時(shí)侯deleteCount也是要用到的。
var a = [1,2,3,4,5];
var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5]   b:[3,4]
var b = a.splice(0,1); //同shift
a.splice(0,0,-2,-1); var b = a.length;//同unshift
var b = a.splice(a.length-1,1);//同pop
a.splice(a.length,0,6,7); var b = a.length; //同push

reverse:將數(shù)組反序
var a = [1,2,3,4,5];
var b = a.reverse(); //a:[5,4,3,2,1]   b:[5,4,3,2,1]

sort(orderfunction):按指定的參數(shù)對數(shù)組進(jìn)行排序
var a = [1,2,3,4,5];
var b = a.sort(); //a:[1,2,3,4,5]   b:[1,2,3,4,5]

slice(start,end):返回從原數(shù)組中指定開始下標(biāo)到結(jié)束下標(biāo)之間的項(xiàng)組成的新數(shù)組
var a = [1,2,3,4,5];
var b = a.slice(2,5); //a:[1,2,3,4,5]   b:[3,4,5]

join(separator):將數(shù)組的元素組起一個(gè)字符串,以separator為分隔符,省略的話則用默認(rèn)用逗號為分隔符
var a = [1,2,3,4,5];
var b = a.join("|"); //a:[1,2,3,4,5]   b:"1|2|3|4|5"

再給個(gè)利用數(shù)組模擬javaStringBuffer處理字符串的方法:

/**
* 字符串處理函數(shù)
*/
function StringBuffer() {
var arr = new Array;
this.append = function(str) {
    arr[arr.length] = str;
};

this.toString = function() {
    return arr.join("");//把append進(jìn)來的數(shù)組ping成一個(gè)字符串
};
}

今天在應(yīng)用中突然發(fā)現(xiàn)join是一種把數(shù)組轉(zhuǎn)換成字符串的好方法,故封裝成對象使用了:

/**
*把數(shù)組轉(zhuǎn)換成特定符號分割的字符串
*/
function arrayToString(arr,separator) {
if(!separator) separator = "";//separator為null則默認(rèn)為空
    return arr.join(separator);
}

/**
* 查找數(shù)組包含的字符串
*/
function arrayFindString(arr,string) {
var str = arr.join("");
    return str.indexOf(string);
}



張生 2011-06-24 12:27 發(fā)表評論
]]>
主站蜘蛛池模板: 免费视频中文字幕| 拨牐拨牐x8免费| 亚洲精品午夜久久久伊人| 免费一级e一片在线播放| 好爽…又高潮了毛片免费看| 1000部禁片黄的免费看| 中文字幕日本人妻久久久免费| 久久国产色AV免费观看| 久久免费视频99| 一二三四视频在线观看中文版免费| 99久热只有精品视频免费观看17| 丁香花免费高清视频完整版| 国产精品va无码免费麻豆| 亚洲色偷偷偷鲁综合| 亚洲A∨精品一区二区三区| 日本一线a视频免费观看| 国产精品亚洲美女久久久| 精品久久洲久久久久护士免费 | 又色又污又黄无遮挡的免费视| 国产乱辈通伦影片在线播放亚洲| 99久久亚洲综合精品成人网| 亚洲爆乳精品无码一区二区三区| 亚洲最大中文字幕| 国产成人亚洲午夜电影| 三年片在线观看免费大全电影| 成人毛片免费网站| 亚洲精品中文字幕乱码三区| 国产亚洲一区二区在线观看| 亚洲AV综合色区无码二区偷拍| 2020天堂在线亚洲精品专区| 久久精品免费大片国产大片| 免费电影在线观看网站| 亚洲色偷拍另类无码专区| 亚洲啪AV永久无码精品放毛片| 亚洲AV永久无码天堂影院| 免费观看一区二区三区| 免费看又爽又黄禁片视频1000| 久久久久久久尹人综合网亚洲| 亚洲欧美国产日韩av野草社区| 老司机69精品成免费视频| 亚洲免费电影网站|