posted @ 2015-09-18 21:04 Kevin Meng 閱讀(229) | 評論 (0) | 編輯 收藏
posted @ 2015-08-10 23:15 Kevin Meng 閱讀(196) | 評論 (0) | 編輯 收藏
posted @ 2012-10-22 11:53 Kevin Meng 閱讀(1491) | 評論 (0) | 編輯 收藏
posted @ 2012-08-15 12:52 Kevin Meng 閱讀(265) | 評論 (0) | 編輯 收藏
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = locationManager.getBestProvider(criteria, true);
/* 每隔1000ms更新一次,并且不考慮位置的變化。 */
locationManager.requestLocationUpdates(provider, 3000, 5, locationListener);
//強制使用GPS定位
//locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 5, locationListener);
posted @ 2012-08-07 20:59 Kevin Meng 閱讀(338) | 評論 (0) | 編輯 收藏
這次項目開發(fā),運行環(huán)境的tomcat版本從5.5.12升級到了6.0.18,發(fā)現以前的項目不能跑了,訪問一個很簡單的jsp也會報錯,說無法編譯,報的錯誤就是:Only a type can be imported. com.xxx.xxx.XXX resolves to a package,意思就是說你jsp頁面上引用的那個類不存在,可是在老版本明明跑的好好的,而且另一個現象就是項目根目錄下的jsp訪問沒有問題,子目錄下就報錯,google了一下,發(fā)現這是新版本tomcat的一個變化,就是如果不指定context的話,每一個子文件夾都會被tomcat當作一個獨立的虛擬應用的,所以每個子文件夾下的jsp頁面訪問的時候,都會在它的同一層找WEB-INF里面的class,這樣當然找不到了,只有剛巧放在根目錄下的jsp文件能訪問。
解決辦法:其實這也是自己以前寫tomcat的配置文件時候,寫法不規(guī)范造成的,以前的server.xml里面host信息代碼如下:
<Host name="www.local.com" appBase="D://projects//myWebSite//WebContent" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Alias>192.168.1.43</Alias>
<Context path="" docBase="" reloadable="true">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="www.local.com_log." suffix=".txt" timestamp="true"/>
</Context></Host>
這其中Context里面的docBase為空,文件路徑就靠Host里的appBase去指定,這樣tomcat認為你這個站點下沒有應用,會自動把每個文件夾當作一個虛擬應用處理。修改后的代碼片段如下:
<Host name="www.local.com" appBase="" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Alias>192.168.1.43</Alias>
<Context path="" docBase="D://projects//myWebSite//WebContent" reloadable="true">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="www.local.com_log." suffix=".txt" timestamp="true"/>
</Context></Host>
可以看到Host里面不再指定appBase了,而是在主機下建立一個應用,應用的文件路徑通過docBase來指定,這樣就不會再產生找不到class的問題了。
ps:tomcat的這個問題好像是從5.5.28就開始了,記得以前也曾經嘗試過升級tomcat,就發(fā)生了類似的問題,但是當時沒充裕時間去解決,就一直把問題遺留到現在。
posted @ 2012-08-01 11:14 Kevin Meng 閱讀(522) | 評論 (0) | 編輯 收藏
web開發(fā)中,我們經常需要將一個表的數據插入到另外一個表,有時還需要指定導入字段,設置只需要導入目標表中不存在的記錄,雖然這些都可以在程序中拆分成簡單sql來實現,但是用一個sql的話,會節(jié)省大量代碼。下面我以mysql數據庫為例分情況一一說明:
insert into insertTest values(100,'liudehua');
insert into insertTest values(101,'zhourunfa');
insert into insertTest values(102,'zhouhuajian');
(id,name)
select id,name
from insertTest
where not exists (select * from insertTest2
where insertTest2.id=insertTest.id);
(id, name)
SELECT 100, 'liudehua'
FROM dual
WHERE not exists (select * from insertTest
where insertTest.id = 100);
posted @ 2012-02-03 16:04 Kevin Meng 閱讀(531) | 評論 (0) | 編輯 收藏
posted @ 2011-11-28 13:03 Kevin Meng 閱讀(1614) | 評論 (0) | 編輯 收藏
解決辦法:
posted @ 2011-11-09 20:30 Kevin Meng 閱讀(2479) | 評論 (0) | 編輯 收藏
SELECT * FROM geo_corporation t WHERE TO_DAYS(t.addtime)>TO_DAYS('2011-11-05')
某一時間段內的記錄
posted @ 2011-11-07 11:56 Kevin Meng 閱讀(261) | 評論 (0) | 編輯 收藏
posted @ 2010-06-24 10:52 Kevin Meng 閱讀(421) | 評論 (0) | 編輯 收藏
(7)點下一步開始安裝,耐心等待,安裝完后重啟,就可以進入美麗的Mac世界了。
posted @ 2009-08-05 12:27 Kevin Meng 閱讀(329) | 評論 (0) | 編輯 收藏
posted @ 2009-02-16 13:29 Kevin Meng 閱讀(4220) | 評論 (4) | 編輯 收藏
posted @ 2009-02-12 15:31 Kevin Meng 閱讀(912) | 評論 (3) | 編輯 收藏
posted @ 2009-02-06 16:08 Kevin Meng 閱讀(2589) | 評論 (2) | 編輯 收藏
(2)安裝oracle 10g客戶端,如果你用的是oracle 9i同樣需要安裝oracle 10g客戶端,否則無法連接oracle。如果你的機器上已經安裝有oracle 9i,安裝oracle 10g客戶端對oracle 9i并沒有影響。
(3)重新啟動機器。
(4)用phpinfo()檢驗是否已經加載了php_pdo和php_pdo_oci擴展
連接代碼
[development]
database.config.type = pdo_oci
database.config.host=localhost
database.config.username = szapp
database.config.password = szapp
database.config.dbname = ora
database.config.port=1521
$params = array ('dbname' => $config->database->config->dbname,
'username' => $config->database->config->username,
'password' => $config->database->config->password,
'host'=>$config->database->config->host,
'port'=>$config->database->config->port );
$db = Zend_Db::factory ( $config->database->config->type, $params );
$registry->set ( 'db', $db );
posted @ 2009-01-16 13:54 Kevin Meng 閱讀(751) | 評論 (0) | 編輯 收藏
posted @ 2009-01-08 15:28 Kevin Meng 閱讀(266) | 評論 (0) | 編輯 收藏
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ActionContextCleanUp
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
再次用jprofiler進行分析,果然好了。
posted @ 2008-12-11 12:44 Kevin Meng 閱讀(781) | 評論 (0) | 編輯 收藏
<servlet>
<servlet-name>JSPSupportServlet</servlet-name>
<servlet-class>
org.apache.struts2.views.JspSupportServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
(2)把struts-html.tld復制到WEB-INF目錄
(3)在頁面最前面定義標簽庫
<#assign html=JspTaglibs["/WEB-INF/struts-html.tld"] />
(4)在<head>中引用標簽
<@html.base/>
(5)特別注意,在action的配置里面type="freemarker"去掉。因為如果加type="freemarker",那么base為action的路徑,如http://localhost:8080/szmap/findpoi.go,如果去掉type="freemarker",那么base才為網頁路徑,如http://localhost:8080/szmap/find_poi.htm
posted @ 2008-11-12 12:11 Kevin Meng 閱讀(1206) | 評論 (0) | 編輯 收藏
昨天老肖提醒了我一下,打補丁,于是立刻給arcEngine打上了SP5補丁,果然再也沒有問題了!靠
心得是:有事別找ESRI技術支持?。海?br />
posted @ 2008-10-24 10:08 Kevin Meng 閱讀(1975) | 評論 (8) | 編輯 收藏
(1)點項目-》添加應用-》瀏覽,導入log4net.dll
(2)修改app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="clipmapAEC.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</sectionGroup>
</configSections>
<userSettings>
<clipmapAEC.Properties.Settings>
<setting name="mapModelMinX" serializeAs="String">
<value>-80000</value>
</setting>
<setting name="mapModelMaxX" serializeAs="String">
<value>170000</value>
</setting>
<setting name="mapModelMinY" serializeAs="String">
<value>-80000</value>
</setting>
<setting name="mapModelMaxY" serializeAs="String">
<value>170000</value>
</setting>
<setting name="scalePara" serializeAs="String">
<value>2</value>
</setting>
<setting name="tileSize" serializeAs="String">
<value>512</value>
</setting>
</clipmapAEC.Properties.Settings>
<log4net>
<root>
<level value="INFO" />
<appender-ref ref="consoleApp" />
</root>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="C:\\clipmap_log.txt" />
<param name="AppendToFile" value="false" />
<param name="RollingStyle" value="Date" />
<param name="DatePattern" value="yyyy.MM.dd" />
<param name="StaticLogFileName" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
<param name="Header" value=" ----------------------header--------------------------" />
<param name="Footer" value=" ----------------------footer--------------------------" />
</layout>
</appender>
<appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<logger name="Log4NetTest.LogTest">
<level value="ERROR" />
<appender-ref ref="rollingFile" />
<appender-ref ref="coloredConsoleApp" />
<appender-ref ref="SystemEvent" />
</logger>
</log4net>
</userSettings>
</configuration>
紅色部分是對log4net的設置,其他不用管
(3)在要只用log4net的類namespace前面加using log4net; [assembly: log4net.Config.XmlConfigurator()]
(4)在代碼中使用logger.info("XXXX");就可以了
posted @ 2008-10-16 15:49 Kevin Meng 閱讀(757) | 評論 (0) | 編輯 收藏
jdk1.6
tomcat5.028
首先下載“xalan系列jar包”,下載地址:http://www.apache.org/dyn/closer.cgi/xml/xalan-j,
然后將tomcat中目錄下:/tomcat/common/endorsed/(xercesImpl.jar和xml-apis.jar)刪掉,然后將下載的xalan系列jar包(包括serializer.jar、xalan.jar、xercesImpl.jar、xml-apis.jar、xsltc.jar)拷貝到/tomcat/common/endorsed目錄,重啟tomcat
posted @ 2008-10-09 10:25 Kevin Meng 閱讀(1538) | 評論 (0) | 編輯 收藏
如果不轉碼,request.getParameter("key")返回的是亂碼,在jsp中,我們一般這樣子傳參數
String key2=URLEncoder.encode(key,"gbk");
http://www.map512.cn/findPOI.do?key=key2
那么在freemarker中怎么辦呢?
用
<#setting url_escaping_charset='gbk'>
<a href=http://www.map512.cn/findPOI.do?key=${key?url}>查詢</a>
posted @ 2008-09-18 16:39 Kevin Meng 閱讀(4589) | 評論 (2) | 編輯 收藏
<1>軟硬件環(huán)境
Apache Http Server 2.2.4
Tomcat 5.028
jdk1.6
請自行下載jk_module.so,但注意必須與apache http server的版本對應。
硬件我手頭有一臺IBM服務器,有三臺刀片機可用,IP分別是
S1:192.168.70.101
S2:192.168.70.102
S3:192.168.70.103
當然這三臺機器您完全可以用三個一般的臺式機來代替.
我們的計劃是
用S1來做應用服務器,用S2來做負載均衡,用S3來做數據庫服務器.
<2>在S1,S2下安裝jdk1.6
例如我安裝在c:\jdk1.6下
添加環(huán)境變量:
JAVA_HOME=C:\jdk1.6
CLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
在PATH前面加:
PATH=%JAVA_HOME%\bin;
<3>在S1下安裝apache,沒有什么值得注意的地方,一路按next就可以了
我安裝在D:\Apache2.2
<4>在S1,S2下安裝tomcat 5.028
也是一路按next就可以了,我安裝在d:\tomcat5.0
以上對于一個java開發(fā)人員來說應該都不是問題,接下來就是重頭戲了!
<5>配置
5.1 把下載的mod_jk-1.2.26-httpd-2.2.4.so拷貝到S1機器的D:\Apache2.2\modules目錄下,并改名為mod_jk.so
5.2 打開S1機器的D:\Apache2.2\conf\http.conf文件,在一堆LoadModule的最后加上這么一行
LoadModule jk_module modules/mod_jk.so
5.3 在D:\Apache2.2\conf\http.conf的最后加上對jk_module的配置
#與tomcat關聯
<IfModule jk_module>
JkWorkersFile conf/workers.properties
JkMountFile conf/uriworkermap.properties
JkLogFile logs/mod_jk.log
JkLogLevel warn
</IfModule>
<IfModule dir_module>
DirectoryIndex index.html,index.jsp,index.htm
</IfModule>
#結束與tomcat關聯
#添加虛擬主機,注意S1上apache網頁文件目錄和tomcat網頁文件目錄要指向同一個目錄,否則靜態(tài)頁面會無法訪問
<VirtualHost *:80>
ServerName www.map512.cn
DocumentRoot D:/Tomcat5.0/webapps
ServerAdmin support.szmap@gmail.com
JkMountFile conf/uriworkermap.properties
</VirtualHost>
#給虛擬主機目錄付權限
<Directory D:/Tomcat5.0/webapps>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
#默認訪問
<IfModule dir_module>
DirectoryIndex index.html,index.jsp
</IfModule>
5.4 在D:\Apache2.2\conf\http.conf目錄下新建一個文件workers.properties,并添加以下內容
#
# workers.properties
#
# list the workers by name
worker.list=SZMAP, status
# localhost server 1
# ------------------------
worker.s1.port=8009
worker.s1.host=192.168.70.101
worker.s1.type=ajp13
# localhost server 2
# ------------------------
worker.s2.port=8009
worker.s2.host=192.168.70.102
worker.s2.type=ajp13
# worker.s2.stopped=1
worker.SZMAP.type=lb
worker.retries=3
worker.SZMAP.balance_workers=s1, s2
worker.SZMAP.sticky_session=1
worker.status.type=status
說明:這個文件配置了兩個worker,一個是SZMAP即我們的應用服務,這個應用服務type是lb即負載均衡,并由s1和s2兩個balanced_workers來執(zhí)行,這里你可以添加無限多個服務器來實現負載(當然,前提是您有足夠的RMB),一個是status是用來查看負載均衡狀態(tài)的,我們后面將會用到.
5.6 在D:\Apache2.2\conf\http.conf目錄下新建一個文件uriworkermap.properties,并添加以下內容
/*=SZMAP
/jkstatus=status #設置除以下類型的文件外,都由tomcat提供服務(也就是說下面列出的格式都有apache提供服務)
!/*.gif=SZMAP
!/*.jpg=SZMAP
!/*.png=SZMAP
!/*.css=SZMAP
!/*.js=SZMAP
!/*.html=SZMAP
說明:這個配置的意思是,所有的請求都轉到SZMAP這個worker(即上面配置的s1,s2這兩個balanced_workers下的tomcat服務)去執(zhí)行,除了*.gif,*.html等靜態(tài)元素和/jkstatus,/jkstatus由status這個worker執(zhí)行.
5.7 Tomcat的配置
打開S1機器D:\Tomcat5.0\conf\server.xml,找到Engine部分,改成
<Engine defaultHost="localhost" name="Catalina" jvmRoute="s1">
<Host appBase="webapps" name="localhost"> <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" managerClassName="org.apache.catalina.cluster.session.DeltaManager" expireSessionsOnShutdown="false" useDirtyFlag="true"> <Membership className="org.apache.catalina.cluster.mcast.McastService" mcastAddr="228.0.0.4" mcastPort="45564" mcastFrequency="500" mcastDropTime="3000"/> <Receiver className="org.apache.catalina.cluster.tcp.ReplicationListener" tcpListenAddress="auto" tcpListenPort="4001" tcpSelectorTimeout="100" tcpThreadCount="6"/> <Sender className="org.apache.catalina.cluster.tcp.ReplicationTransmitter" replicationMode="pooled"/> <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.html;.*\.txt;"/> </Cluster> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/> </Host> <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> </Engine>
<Engine defaultHost="localhost" name="Catalina" jvmRoute="s2">
<Host appBase="webapps" name="localhost"> <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" managerClassName="org.apache.catalina.cluster.session.DeltaManager" expireSessionsOnShutdown="false" useDirtyFlag="true"> <Membership className="org.apache.catalina.cluster.mcast.McastService" mcastAddr="228.0.0.4" mcastPort="45564" mcastFrequency="500" mcastDropTime="3000"/> <Receiver className="org.apache.catalina.cluster.tcp.ReplicationListener" tcpListenAddress="auto" tcpListenPort="4001" tcpSelectorTimeout="100" tcpThreadCount="6"/> <Sender className="org.apache.catalina.cluster.tcp.ReplicationTransmitter" replicationMode="pooled"/> <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.html;.*\.txt;"/> </Cluster> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/> </Host> <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> </Engine>
到此,我們的配置已經完成.
<6>查看結果
啟動S1和S2下的tomcat服務,然后啟動S1下的apache服務.
打開流覽器,輸入地址http://192.168.70.101/jkstatus,如果能看到以下界面,那么,恭喜您,您該感謝我了!呵呵!
JK Status Manager for 192.168.70.101:80
Server Version: | Apache/2.2.4 (Win32) mod_jk/1.2.26 |
JK Version: | mod_jk/1.2.26 |
Listing Load Balancing Worker (1 Worker) [Hide]
[S|E|R] Worker Status for SZMAP
Type | Sticky Sessions | Force Sticky Sessions | Retries | LB Method | Locking | Recover Wait Time | Max Reply Timeouts |
---|---|---|---|---|---|---|---|
lb | True | False | 2 | Request | Optimistic | 60 | 0 |
Good | Degraded | Bad/Stopped | Busy | Max Busy | Next Maintenance |
---|---|---|---|---|---|
2 | 0 | 0 | 0 | 6 | 32/94 |
Balancer Members [Hide]
Name | Type | Host | Addr | Act | State | D | F | M | V | Acc | Err | CE | RE | Wr | Rd | Busy | Max | Route | RR | Cd | Rs | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[E|R] | s1 | ajp13 | 192.168.70.101:8009 | 192.168.70.101:8009 | ACT | OK/IDLE | 0 | 1 | 1 | 0 | 1821 | 0 | 0 | 0 | 1.3M | 2.0M | 0 | 5 | s1 | 0/0 | ||
[E|R] | s2 | ajp13 | 192.168.70.102:8009 | 192.168.70.102:8009 | ACT | OK/IDLE | 0 | 1 | 1 | 0 | 1821 | 0 | 0 | 0 | 1.3M | 2.0M | 0 | 4 | s2 | 0/0 |
Edit one attribute for all members: [Activation |LB Factor |Route |Redirect Route |Cluster Domain |Distance ]
參考:
proxy方式:http://blog.chinaunix.net/u/22176/showart_1002535.html
liunx下的配置:http://seven.blog.51cto.com/120537/57930
posted @ 2008-09-10 10:25 Kevin Meng 閱讀(559) | 評論 (0) | 編輯 收藏
在struts.xml中加
<constant name="struts.locale" value="zh_CN"></constant>
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
即可。
posted @ 2008-08-22 18:50 Kevin Meng 閱讀(246) | 評論 (0) | 編輯 收藏
(1)在eclipse中配置好struts2
(2)把struts2-spring-plugin-2.0.11.2.jar包復制到WEB-INF\lib目錄(3)在web.xml中配置spring
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
記住,如果您之前用過spring,請把spring配置去掉。
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
(4)修改applicationContext.xml
<beans default-autowire="byName" xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
(5)在struts.xml加入
<constant name="struts.objectFactory" value="spring" />
(6)在spring的配置文件applicationContext.xml中定義action
<bean id="SearchBusLineAction"
class="com.bus.struts2.action.SearchBusLineAction" abstract="false"
lazy-init="default" autowire="default" dependency-check="default">
<property name="busService">
<ref bean="BusServiceImpl" />
</property>
</bean>
(7)在struts.xml中定義action
<!-- 注意這里class="SearchBusLineAction"而不是com.bus.struts2.action.SearchBusLineAction是因為這個已經在spring的applicationContext.xml中定義 -->
<action name="searchBusLine" class="SearchBusLineAction">
<result name="success" type="freemarker">/index.jsp</result>
</action>
posted @ 2008-08-22 17:41 Kevin Meng 閱讀(2422) | 評論 (0) | 編輯 收藏
posted @ 2008-08-08 16:07 Kevin Meng 閱讀(234) | 評論 (0) | 編輯 收藏
freemarker腳本將你的頁面搞得一團槽吧.
修改一下dreamweaver的配置,將freemarker 腳本顯示成和js一樣的圖標效果吧
以dreamweaver8為例
打開
Dreamweaver 8\Configuration\ThirdPartyTags\Tags.xml
加入
< !-- FreeMarker Tag By hety-->
<directive_spec
tag_name="ftl_b1" start_string="[#" end_string="]"
detect_in_attribute="true" icon="TemplateExpr.gif" icon_width="17"
icon_height="15"/>
<directive_spec tag_name="ftl_e1"
start_string="[/#" end_string="]" detect_in_attribute="true"
icon="TemplateExpr.gif" icon_width="17" icon_height="15"/>
<directive_spec
tag_name="ftl_i" start_string="[@" end_string="/]"
detect_in_attribute="true" icon="TemplateExpr.gif" icon_width="17"
icon_height="15"/>
<directive_spec tag_name="ftl_b2"
start_string="<#" end_string=">" detect_in_attribute="true"
icon="TemplateExpr.gif" icon_width="17" icon_height="15"/>
<directive_spec
tag_name="ftl_e2" start_string="</#" end_string=">"
detect_in_attribute="true" icon="TemplateExpr.gif" icon_width="17"
icon_height="15"/>
<directive_spec tag_name="ftl_v"
start_string="${" end_string="}" detect_in_attribute="true"
icon="TemplateExpr.gif" icon_width="17" icon_height="15"/>
重啟下dreamweaver就搞定
dreamweaver其它版本的腳本配置也差不多
還可參考:http://weishuwei.javaeye.com/blog/85041
posted @ 2008-08-08 14:06 Kevin Meng 閱讀(314) | 評論 (0) | 編輯 收藏
posted @ 2008-07-07 10:43 Kevin Meng 閱讀(164) | 評論 (0) | 編輯 收藏
(1)配置tomcat支持SSL,請參考我的文章:http://www.aygfsteel.com/menglikun/archive/2008/07/02/212065.html
(2)把證書導到jre,運行cmd
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>d:
D:\>cd d:\tomcat5.0
D:\Tomcat5.0>keytool -export -file myserver.cert -alias cas -keystore server.key
store
輸入keystore密碼:
保存在文件中的認證 <myserver.cert>
D:\Tomcat5.0>
執(zhí)行到這里,您應該可以在d:\tomcat5.0目錄中找到一個文件myserver.cert
接著,我們要把這個證書文件導到客戶端的JVM中,因為現在我們的客戶端和服務器端都是同一臺機器,所以直接進入cmd,執(zhí)行以下命令就可以了
D:\Tomcat5.0>keytool -import -keystore c:/jdk1.6/jre/lib/security/cacerts -file
myserver.cert -alias cas
輸入keystore密碼: //注意,這里是默認密碼changeit
所有者:CN=localhost, OU=szghj, O=szghj, L=suzhou, ST=jiangsu, C=cn
簽發(fā)人:CN=localhost, OU=szghj, O=szghj, L=suzhou, ST=jiangsu, C=cn
序列號:486ae46a
有效期: Wed Jul 02 10:14:02 CST 2008 至Tue Sep 30 10:14:02 CST 2008
證書指紋:
MD5:AC:A9:C2:47:36:DF:D0:C1:76:F3:6D:14:70:73:90:5C
SHA1:3C:2E:45:92:29:98:ED:7E:93:34:BB:11:2D:EE:ED:E3:E4:4D:E3:85
簽名算法名稱:SHA1withRSA
版本: 3
信任這個認證? [否]: y
認證已添加至keystore中
(3)配置CAS服務器
我用戶的是3.2.1版本,直接把cas-server-webapp-3.2.1.war復制到tomcat的webapp目錄,改名為userservice-cas就可以了
(4)配置客戶端,我用的是cas-client-java-2.1.0,把casclient.jar復制到客戶端的lib目錄,然后打開web.xml,添加如下的過濾器就可以了。
<filter>
<filter-name>CAS Filter</filter-name>
<filter-class>
edu.yale.its.tp.cas.client.filter.CASFilter
</filter-class>
<init-param>
<param-name>
edu.yale.its.tp.cas.client.filter.loginUrl
</param-name>
<param-value>
https://localhost:8443/userservice-cas/login
</param-value>
</init-param>
<init-param>
<param-name>
edu.yale.its.tp.cas.client.filter.validateUrl
</param-name>
<param-value>
https://localhost:8443/userservice-cas/serviceValidate
</param-value>
</init-param>
<init-param>
<param-name>
edu.yale.its.tp.cas.client.filter.serverName
</param-name>
<param-value>
localhost:4000
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>/jsp/user/*</url-pattern>
</filter-mapping>
其他:
(1)成功登錄后,出現錯誤 Unable to validate ProxyTicketValidator 是什么原因。
這是因為數字證書的簽名不一致造成的,例如生成證書的時候用localhost,但是訪問的時候卻用機器名。統(tǒng)一一下就可以了
posted @ 2008-07-02 11:19 Kevin Meng 閱讀(314) | 評論 (0) | 編輯 收藏
環(huán)境:
window xp
tomcat 5.028
jdk 1.6
(1)進入cmd
我的tomcat安裝在d:\tomcat5.0,所以進入該目錄
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>d:
D:\>cd d:\tomcat5.0
D:\Tomcat5.0>keytool -genkey -alias cas -keyalg RSA -keystore server.keystore //別名是cas,您可以自己修改
輸入keystore密碼: //我輸入了密碼menglikun,您可以自己改,但要記住,后面要用到
再次輸入新密碼:
您的名字與姓氏是什么?
[Unknown]: localhost //如果是開發(fā)環(huán)境,建議用localhost或機器名,如果是發(fā)布環(huán)境,請用域名,不要用IP
您的組織單位名稱是什么?
[Unknown]: szghj
您的組織名稱是什么?
[Unknown]: szghj
您所在的城市或區(qū)域名稱是什么?
[Unknown]: suzhou
您所在的州或省份名稱是什么?
[Unknown]: jiangsu
該單位的兩字母國家代碼是什么
[Unknown]: cn
CN=localhost, OU=szghj, O=szghj, L=suzhou, ST=jiangsu, C=cn 正確嗎?
[否]: y
輸入<cas>的主密碼
(如果和 keystore 密碼相同,按回車): //輸入密碼menglikun
再次輸入新密碼:
D:\Tomcat5.0>
執(zhí)行到這一步,如果不出意外的話,在d:\tomcat5.0目錄下就會有一個server.ksystore文件
(2)打開d:\tomcat5.0\conf\server.xml,添加一個新的connector,修改后的server.xml如下:
<?xml version='1.0' encoding='utf-8'?>
<Server>
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<GlobalNamingResources>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
<Service name="Catalina">
<Connector URIEncoding="UTF-8" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="4000" redirectPort="8443" useBodyEncodingForURI="true" maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
</Connector>
<Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
</Connector>
<Connector port="8443"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystorePass="menglikun" keystoreFile="server.keystore" />
<Engine defaultHost="localhost" name="Catalina">
<Host appBase="webapps" name="localhost">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
</Host>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
</Engine>
</Service>
</Server>
(3)重新啟動tomcat,在瀏覽器中輸入https://localhost:8443,如果出現安全提示,說明SSL配置成功
posted @ 2008-07-02 10:48 Kevin Meng 閱讀(195) | 評論 (0) | 編輯 收藏
(2)修改tomcat目錄下的conf/server.xml,在engine里面添加
<Host name="localhost" debug="0" appBase="E:\\Tomcat5.0\\webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
<Context path="" docBase="E:\\Tomcat5.0\\webapps\\szmap" reloadable="true" caseSensitive="false" debug="0"></Context>
</Host>
<Host name="house.map512.cn" debug="0" appBase="E:\\Tomcat5.0\\suzhou"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>house.map512.cn</Alias>
<Context path="" docBase="E:\\Tomcat5.0\\suzhou\\szhouse" reloadable="true" caseSensitive="false" debug="0"></Context>
</Host>
<Host name="plan.map512.cn" debug="0" appBase="E:\\Tomcat5.0\\suzhou"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>plan.map512.cn</Alias>
<Context path="" docBase="E:\\Tomcat5.0\\suzhou\\szghgs" reloadable="true" caseSensitive="false" debug="0"></Context>
</Host>
posted @ 2008-07-01 16:14 Kevin Meng 閱讀(902) | 評論 (0) | 編輯 收藏
create table tab2 tablespace space2 as (select t.* from tab1 t);
tab1為原來的表,tab2為臨時表 space2為目的表空間。
執(zhí)行完后,把tab1刪除,然后把tab2改名為tab1就可以了。注意該方法不能復制索引,所以必須重建索引!
posted @ 2008-06-18 16:02 Kevin Meng 閱讀(488) | 評論 (0) | 編輯 收藏
1、盡量不要使用 like '%..%'
2、對于 like '..%..' (不以 % 開頭),Oracle可以應用 colunm上的index
3、對于 like '%...' 的 (不以 % 結尾),可以利用 reverse + function index 的形式,變化成 like '..%' 代碼
建測試表和Index。
注意:重點在于帶reverse的function index。同時,一定要使用CBO才行......
SQL> select reverse('123') from dual;
REVERSE('123')
--------------------------------
321
1 row selected.
SQL> create table test_like as select object_id,object_name from dba_objects;
Table created.
SQL> create index test_like__name on test_like(object_name);
Index created.
SQL> create index test_like__name_reverse on test_like(reverse(object_name));
Index created.
SQL> analyze table test_like compute statistics for table for all indexes;
Table analyzed.
SQL> set autot trace
--常量開頭的like , 會利用index ,沒問題......
SQL> select * from test_like where object_name like AS%';
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=655 Bytes=15720)
1 0 TABLE ACCESS (BY INDEX ROWID) OF 'TEST_LIKE' (Cost=2 Card=655Bytes=15720)
2 1 INDEX (RANGE SCAN) OF 'TEST_LIKE__NAME' (NON-UNIQUE) (Cost=2 Card=118)
-- 開頭和結尾都是%,對不起,很難優(yōu)化
SQL> select * from test_like where object_name like '%%';
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=6 Card=655 Bytes=15720)
1 0 TABLE ACCESS (FULL) OF 'TEST_LIKE' (Cost=6 Card=655 ytes=15720)
-- 以常量結束,直接寫的時候是不能應用index的
SQL> select * from test_like where object_name like '%S';
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=6 Card=655 Bytes=15720)
1 0 TABLE ACCESS (FULL) OF 'TEST_LIKE' (Cost=6 Card=655 Bytes=15720)
--'以常量結束的,加個reverse 函數,又可以用上index了'
SQL> select * from test_like where reverse(object_name)like reverse('%AS');
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=655 Bytes=15720)
1 0 TABLE ACCESS (BY INDEX ROWID) OF 'TEST_LIKE' (Cost=2 Card=655 Bytes=15720)
2 1 INDEX (RANGE SCAN) OF 'TEST_LIKE__NAME_REVERSE' (NON-UNIQUE) (Cost=2 Card=118)
posted @ 2008-06-16 09:18 Kevin Meng 閱讀(395) | 評論 (0) | 編輯 收藏
今天開機的時候,ubuntu系統(tǒng)提示說
Busybox v1.1.3 (debian1:1.1.3-5 ubuntu12)built-in shell (ash)
enter 'help'for a list of built-in commands
(initranfs)
在網上找了很多資料終于找到了解決方法:
先說說我的情況,我的是雙系統(tǒng),WindowsXP+Ubuntu,所以我進去windowsxp系統(tǒng)
把boot里面的initrd.img-2.6.24-12-generic.bak重命名替換initrd.img-2.6.24-12-generic
我的問題就是這樣解決的。
重啟電腦,一切正常??!
希望對大家有幫助!
posted @ 2008-05-26 09:52 Kevin Meng 閱讀(1168) | 評論 (3) | 編輯 收藏
(1)正確安裝Oracle 9i企業(yè)版,Oracle9i企業(yè)版在安裝的時候就已經默認提供了全文索引支持。如果你的Oracle還沒有安裝,請先安裝一下,至于怎樣安裝,這里不做討論,請Google一下。
(2)Oracle9i默認情況下會把ctxsys用戶鎖定,請以DBA身份登陸Oracle,把用戶ctxsys解鎖,并修改其密碼為ctxsys,以便于我們后面登陸Text Manager
(3)進入Oracle的text manager,點程序->Oracle-OracleHome92->Enterprise Manager Console。選獨立啟動,然后選工具欄最下面的應用程序->text Manager,這時會要求您輸入用戶名和密碼,用戶名ctxsys,密碼ctxsys
(4)選擇首選項——〉語言指定器——〉CTXSYS,選一個點類似創(chuàng)建,輸入指示器的名字如chinese_lexer,選擇lexer下的chinese_vgrnm_lexer 。
(5)建立索引,在索引上點右鍵,然后選創(chuàng)建CONTEXT索引,這里要注意方案要選擇您自己的表空間,如我有個表SZPOI在表空間SUZHOU中,現在我要對該表的UNITNAME字段建立全文索引,那么方案選suzhou,表選szpoi,字段選unitname,首選項中選擇chinese_lexer 。
這樣全文檢索就建好了,并用chinese_vgram_lexer作為分析器。
(6)如何查詢數據。索引建立以后,我們就可以對該表進行全文索引查詢了,查詢語句如下:
SELECT score(1),t.unitname,t.objectid,t.eminx,t.eminy,t.mpfullname,t.dianhua FROM szpoi t WHERE contains (unitname, '規(guī)劃局,吳中分局', 1) > 0 order by score(1) desc
大功告成了嗎?沒有!
接著我們還要建立兩個job來維護和優(yōu)化索引。
維護:
begin
sys.dbms_job.submit(job => :job,
what => 'ctx_ddl.sync_index(''SZPOI_UNITNAME_INDEX'');',
next_date => to_date('23-05-2008 13:54:57', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'SYSDATE + (1/24/4)');
commit;
end;
優(yōu)化:
begin
sys.dbms_job.submit(job => :job,
what => 'ctx_ddl.optimize_index(''SZPOI_UNITNAME_INDEX'',''FULL'');',
next_date => to_date('23-05-2008 14:03:02', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'SYSDATE + 1');
commit;
end;
posted @ 2008-05-23 13:47 Kevin Meng 閱讀(664) | 評論 (0) | 編輯 收藏
二、安裝apache,最好用80端口
三、安裝Subversion
四、安裝TortoiseSVN
五、進入D:\Subversion,新建一個目錄projects
六、在projects目錄中點鼠標右鍵,選擇TortoiseSVN->create reposities here...新建一個倉庫
七、打開apache的httpd.conf文件,找到
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
把前面的#去掉,并添加
LoadModule dav_svn_module D:/Subversion/bin/mod_dav_svn.so
LoadModule authz_svn_module D:/Subversion/bin/mod_authz_svn.so
八、在httpd.conf后面添加
<Location /svn>
#
# SVN
#
DAV svn
SVNParentPath "D:/Subversion"
</Location>
保存,然后重啟apache,打開ie,輸入http://localhost/svn/projects/看看能不能打開,如果能打開,恭喜您,您離成功已經不遠了!
九、設置權限
點開始->運行,打開控制臺
進入D:\Apache\Apache2\bin,運行
htpasswd -c D:\Subversion\passwd menglikun
新建一個密碼文件,并添加用戶menglikun,如果要添加更多用戶,運行
htpasswd -m D:\Subversion\passwd test
添加test用戶
十、修改apache的httpd.conf文件
<Location /svn>
#
# SVN
#
DAV svn
SVNParentPath "D:/Subversion"
AuthType Basic
AuthName "Subversion repository"
AuthUserFile D:/Subversion/passwd
Require valid-user
</Location>
保存,重啟apache,再次進入http://localhost/svn/projects,這次就要求輸入密碼了!
OK,大功告成!
更多設置,請找google,如如何設置目錄的訪問權限(只讀,可寫等等)。
posted @ 2008-04-11 11:15 Kevin Meng 閱讀(225) | 評論 (0) | 編輯 收藏
新建一個CSS標簽,標簽名選擇TABLE,確定后在彈出的CSS樣式編輯器里,選"分類"中的"方框"選項,將里面的寬,高,填充,邊界的值全部設為0;再將"定位"中"類型"下面的寬,高的值也都設為0,點保存,然后再把表格的樣式設置為table就可以了,即class="TABLE".
posted @ 2008-03-03 17:20 Kevin Meng 閱讀(1533) | 評論 (0) | 編輯 收藏
Local DNS Cache for Faster Browsing on Ubuntu System
A DNS server resolves domain names into IP addresses. So when you request “yahoo.com” for example, the DNS server finds out the address for the domain, and sends your request the right way.
You can run a DNS cache on your computer. This will speed up the process of looking up domain names when browsing. The difference is about 30-60 ms. Multiply that difference by the number of websites you visit a day for an approximate estimate of the speed improvement.
The following instructions are for someone with a broadband internet connection, where the computer gets it’s local IP address using DHCP from the router in your home or office.
Install dnsmasq in Ubuntu
Dnsmasq is a lightweight, easy to configure, DNS forwarder and DHCP server. It is designed to provide DNS and optionally, DHCP, to a small network. It can serve the names of local machines which are not in the global DNS. The DHCP server integrates with the DNS server and allows machines with DHCP-allocated addresses to appear in the DNS with names configured either in each host or in a central configuration file. Dnsmasq supports static and dynamic DHCP leases and BOOTP for network booting of diskless machines.
First you need to make sure that Universe repository is enabled in your sources.list file
Install dnsmasq Using the following command
sudo apt-get install dnsmasq
uncomment the following line (remove “#” in the beginning) in the file /etc/dnsmasq.conf
listen-address=127.0.0.1
Now edit
/etc/dhcp3/dhclient.conf
and make sure the section below exactly like this, especially the line that says “prepend domain-name-servers 127.0.0.1;”
#supersede domain-name “fugue.com home.vix.com”;
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name,
netbios-name-servers, netbios-scope;
In the normal case, when you get a new dhcp lease, the dhcp3 client (tool) on your computer gets a new lease, and updates the
/etc/resolv.conf
file on your computer with the right values for the DNS servers to use (usually some machine in the network of your hosting provider). Adding the “prepend” option as we did above ensures that “127.0.0.1″ will appear on the top of the list of DNS servers. That magic number refers to your own computer. So in the future, whenever your computer needs to resolve a domain name, it will forward that request to dnsmasq (which is running at 127.0.0.1 - your computer). If the details for the domain name are already in you cache, well and good, dnsmasq will serve it up and make the process real fast. If it is not in the cache, then dnsmasq will look at the /etc/resolv.conf file and use the nameservers listed below the “127.0.0.1″. I hope that explains things.
Now open the file
/etc/resolv.conf
in your text editor. It probably looks like:
search yourisp.com
nameserver 217.54.170.023
nameserver 217.54.170.024
nameserver 217.54.170.026
The 127.0.0.1 is missing right now since you haven’t renewed your lease after you edited the /etc/dhcp3/dhclient.conf file. So, let us add that in manually this one time. After you do, your /etc/resolv.conf file will look like the following:
search yourisp.com
nameserver 127.0.0.1
nameserver 217.54.170.023
nameserver 217.54.170.024
nameserver 217.54.170.026
Now you need to restart the dnsmasq using the following command
sudo /etc/init.d/dnsmasq restart.
Now you are running a local DNS cache.
Testing Your Local DNS Cache
If you want to measure your speed improvement, type the command
dig yahoo.com
You will see something like “;; Query time: 38 msec” there.
Now type the command again, and you should see something like:”;; Query time: 2 msec”
posted @ 2008-01-22 12:47 Kevin Meng 閱讀(1883) | 評論 (0) | 編輯 收藏
tomcat 5.028
下載 mod_jk.so(http://www.aygfsteel.com/Files/menglikun/mod_jk2.rar )放到D:\Apache2.2\modules
修改D:\Apache2.2\conf\httpd.conf在后面加以下代碼
# Using mod_jk2.dll to redirect dynamic calls to Tomcat
LoadModule jk_module modules\mod_jk2.so
JkWorkersFile "conf\workers.properties"
JkLogFile "logs\mod_jk2.log"
JkLogLevel debug
JkMount /*.jsp worker1
JkMount /szmap3/* worker1
在D:\Apache2.2\conf\httpd.conf中新建workers.properties加入代碼
workers.tomcat_home=d:\Tomcat5.0 #讓mod_jk模塊知道Tomcat
workers.java_home=C:\jdk1.5 #讓mod_jk模塊知道j2sdk
ps=\ #指定文件路徑分割符
worker.list=worker1
worker.worker1.port=8009 #工作端口,若沒占用則不用修改
worker.worker1.host=localhost #Tomcat服務器的地址
worker.worker1.type=ajp13 #類型
worker.worker1.lbfactor=1 #負載平衡因數
為避免出現亂碼,必須修改tomcat安裝目錄下的conf/server.xml,修改以下配置
<Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443" URIEncoding="GBK">
</Connector>
重新啟動apache就可以了
posted @ 2007-12-25 15:20 Kevin Meng 閱讀(232) | 評論 (0) | 編輯 收藏
posted @ 2007-11-23 09:08 Kevin Meng 閱讀(708) | 評論 (0) | 編輯 收藏
var name = document.getElementById("textName").value;
if (name=="樓盤名稱")
name = "";
var url="house/searchHouse.php?district="+encodeURIComponent(district);
posted @ 2007-09-26 15:09 Kevin Meng 閱讀(565) | 評論 (0) | 編輯 收藏
(1)apache_2.2.3-win32-x86-no_ssl.msi 到官方網站下載
(2)php-5.2.4-win32-installer.msi 到官方網站下載
二、安裝apache_2.2.3我們安裝在D:\apache2.2目錄下,如果您的機器上已經安裝有oracle,因為oracle的apache占用了80端口,安裝完后打開D:\Apache2.2\conf\httpd.conf文件,把Listen 80改成別的端口號,如4001
三、安裝php5.2.4,安裝時要求選擇apache安裝目錄,選擇D:\Apache2.2就可以了。
四、測試PHP是否已經安裝成功,進入D:\Apache2.2\htdocs新建一個文本文件,輸入
<?php
phpinfo();
?>
另存為phpinfo.php
啟動apahche服務,然后打開瀏覽器,輸入http://localhost:4001/phpinfo.php,如果出現php信息頁面,說明php安裝成功。
posted @ 2007-09-26 11:15 Kevin Meng 閱讀(337) | 評論 (0) | 編輯 收藏
cursor t1 is select * from szmenpaipro;
begin
for rec in t1 loop
update wgspoi t set t.detail=rec.jieshao where t.objectid=rec.objid;
end loop;
end;
posted @ 2007-08-02 16:48 Kevin Meng 閱讀(1344) | 評論 (1) | 編輯 收藏
(1)執(zhí)行SQL
SELECT MAX(id) FROM gdb_objectclasses
找出id的最大值。例如執(zhí)行結果是
MAX(ID)
---------------
55
(2)執(zhí)行SQL
SELECT registration_id FROM table_registry WHERE table_name = 'GDB_OBJECTCLASSES'找到表'GDB_OBJECTCLASSES'注冊ID號
如執(zhí)行結果是
--------------
3
(3)執(zhí)行SQL
SELECT last_number FROM user_sequences WHERE sequence_name = 'R3'
找出序列R3的下一個值,如果第二步中的執(zhí)行結果是4則這里是R4。例如執(zhí)行結果是:
LAST_NUMBER
---------------
50
(4)從上面的查詢結果中可以看出,序列R3的下一個值是50,而表gdb_objectclasses中小于55的值都已經被占用了。所以就會出現異常Unique contraint (SDE.GDB_OC_PKC) violated。解決辦法是不斷增加序列R3的值,使其大于55,執(zhí)行下面的SQL語句6次就可以了。
SELECT R3.NEXTVAL from dual
(5)在SDE中,選中sde連接后點鼠標右鍵,選擇refresh。然后就可以再導數據了。注意這一步一定要進行,這也是我一直認為sde很爛的地方。
posted @ 2007-04-11 09:52 Kevin Meng 閱讀(7881) | 評論 (0) | 編輯 收藏
例如有這樣一個表,其中ID號為AAAK2aAAMAAAOX+AAX的記錄是重復的,如何只取其中一條記錄呢?
ID1 |
XINGMING |
XINGBIE |
CENGYONGMING |
MINZU |
PAICHUSUOBIANHAO |
JUWEIHUIBIANHAO |
AAAK2aAAMAAAOefAAx |
陳長芬 |
2 |
|
01 |
32059856 |
3205985607 |
AAAK2aAAMAAAOfgAAn |
陳尺平 |
1 |
|
01 |
32059856 |
3205985615 |
AAAK2aAAMAAAOX+AAX |
陳春付 |
1 |
|
01 |
32059856 |
3205985602 |
AAAK2aAAMAAAOX+AAX |
陳春付 |
1 |
|
01 |
32059856 |
3205985602 |
AAAK2aAAMAAAOX+AAX |
陳春付 |
1 |
|
01 |
32059856 |
3205985602 |
create table szzzrktemp as (select * from zzrktemp t1
where rowid in (select max(rowid) from zzrktemp t2
where t1.id1=t2.id1))
posted @ 2007-04-09 13:13 Kevin Meng 閱讀(234) | 評論 (0) | 編輯 收藏
oracle打了9.2.0.4的補丁之后,必須把版本也改變過來。
運行cmd
sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 4月 5 09:35:41 2007
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
ORACLE 例程已經啟動。
Fixed Size 457892 bytes
Variable Size 486539264 bytes
Database Buffers 1199570944 bytes
Redo Buffers 1191936 bytes
數據庫裝載完畢。
數據庫已經打開。
SQL> spool d:\catpatch.log
SQL> @d:\oracle\ora92\rdbms\admin\catpatch.sql
SQL> spool off
注:在catpatch中會調用catexp來修改exp
使用exp導出成功DD
posted @ 2007-04-05 09:42 Kevin Meng 閱讀(679) | 評論 (1) | 編輯 收藏
posted @ 2007-04-02 23:08 Kevin Meng 閱讀(543) | 評論 (0) | 編輯 收藏
Error Description : SPECIFIED ATTRIBUTE COLUMN DOESN'T EXIST.
com.esri.sde.sdk.client
at com.esri.sde.sdk.client.j.a(Unknown Source)
at com.esri.sde.sdk.client.j.a (Unknown Source)
at com.esri.sde.sdk.client
at com.suzhou.service.sde.SDEOpera
at com.suzhou.struts.action
at org.springframework.web.struts
at org.apache.struts.action
at org.apache.struts.action
at org.apache.struts.action
at org.apache.struts.action
at javax.servlet.http.HttpServlet
at javax.servlet.http.HttpServlet
at org.apache.catalina.core
at org.apache.catalina.core
at com.suzhou.util.SetCharacterEnc
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.valves
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.catalina.core
at org.apache.coyote.tomcat5
at org.apache.coyote.http11
at org.apache.coyote.http11
at org.apache.tomcat.util.net
at org.apache.tomcat.util.threads
at java.lang.Thread.run(Thread.java:619)
插入點的java代碼如下:
String server = "menglikunm";
int instance = 5151;
String database = "ora";
String user = "suzhou";
String password = "suzhou";
public Long addPointObject(long x, long y, String tabname) throws Exception {
SeLayer insertLayer = null;
SeConnection conn = null;
Long intsertRowID = null;
try {
conn = new SeConnection(server, instance, database, user, password);
Vector layerList = conn.getLayers();
for (int index = 0; index < layerList.size(); index++) {
SeLayer layer = (SeLayer) layerList.elementAt(index);
System.out.println(layer.getName());
if ( layer.getName().equalsIgnoreCase(tabname)) {
insertLayer = layer;
break;
}
}
} catch (SeException e) {
// e.printStackTrace();
throw e;
}
// 開始插入數據
if (insertLayer == null) {
throw new Exception("找不到空間表:" + tabname);
}
try {
conn.startTransaction();
String[] cols = new String[1];
//cols[0] = insertLayer.getSpatialColumn();
cols[0]="SHAPE";
System.out.println(cols[0]);
SeInsert insert = new SeInsert(conn);
System.out.println(insertLayer.getName());
insert.intoTable(insertLayer.getName(), cols);//運行到這里時出現錯誤!
insert.setWriteMode(true);
SeCoordinateReference coordref = (SeCoordinateReference) insertLayer
.getCoordRef();
SeShape shape = new SeShape(coordref);
int numPts = 1;
SDEPoint[] ptArray = new SDEPoint[numPts];
ptArray[0] = new SDEPoint(x, y);
shape.generatePoint(numPts, ptArray);
SeRow row = insert.getRowToSet();
row.setShape(0, shape);
insert.execute();
intsertRowID = new Long(insert.lastInsertedRowId().longValue());
insert.close();
conn.commitTransaction();
conn.close();
} catch (Exception ex) {
ex.printStackTrace ();
try {
conn.rollbackTransaction();
conn.close();
} catch (Exception ex2) {
}
throw ex;
}
return intsertRowID;
}
很多時候,這些問題都要你自己來發(fā)現和解決,不能太相信ESRI的技術支持,他們大部分時候都不能給你什么幫助:)
posted @ 2007-04-02 23:05 Kevin Meng 閱讀(1859) | 評論 (1) | 編輯 收藏
例如有的時候你需要你的筆記本去作演示,web應用安裝在你的筆記本上,但沒有網線,無法連網。這時候如果啟動tomcat,將無法鏈接數據庫,那怎么辦呢。點網絡連接,選擇屬性,然后把所有驅動都安裝一遍,再重新啟動tomcat服務就可以了。
posted @ 2007-03-29 17:11 Kevin Meng 閱讀(492) | 評論 (0) | 編輯 收藏












































































































































posted @ 2007-03-20 17:16 Kevin Meng 閱讀(384) | 評論 (1) | 編輯 收藏
(1)給oracle打最新的補?。ê苤匾?br />(2)在控制面板的服務里面選擇oracleServiceXXX,選擇屬性,點“恢復”,把下面的三個操作都設置為“重新啟動”就可以了。
posted @ 2007-02-28 14:01 Kevin Meng 閱讀(1489) | 評論 (0) | 編輯 收藏
新建一個.bat文件,如“啟動所有服務.bat”。打開,輸入以下代碼:
net start "OracleOraHome92TNSListener"
pause
net start "OracleServiceORA"
pause
net start "esri_sde"
pause
net start "ArcIMS Application Server 9.1"
pause
net start "ArcIMS Monitor 9.1"
pause
net start "ArcIMS Tasker 9.1"
pause
說明:
net start "OracleOraHome92TNSListener" --啟動Oracle服務
pause --暫停
net start "OracleServiceORA" --啟動Oracle服務
net?start "szmap_sde" --啟動arcSDE服務
net start "ArcIMS Application Server 9.1" --啟動arcIMS服務
net?start "ArcIMS Monitor 9.1" --啟動arcIMS服務
net?start "ArcIMS Monitor 9.1" --啟動arcIMS服務
注意,啟動服務的順序不能亂。
net命令的詳細說明看MS的DOS命令幫助。這里只作簡單說明。
net?start "serviceKeyName",這里的serviceKeyName是服務的關鍵字,而不是控制面板中顯示的名字,控制面板中顯示的名字是DispalyName.要通過服務的DisplayName獲得KeyName可以通過以下命令實現:
sc getkeyname "serviceDisplayName"
例如要查詢arcSDE服務“ArcSde Service(esri_sde)”的KeyName,可以運行以下命令:
C:\Documents and Settings\menglikun>sc getkeyname "ArcSde Service(esri_sde)"
[SC] GetServiceKeyName SUCCESS? Name = esri_sde
這里可以看出“ArcSde Service(esri_sde)”的KeyName=seri_sde,所以要啟動這個SDE服務,只要執(zhí)行命令:
sc start "seri_sde"
即可。
再新建一個批處理文件“停止所有服務.bat”,打開,輸入以下代碼:
net stop "ArcIMS Tasker 9.1"
net?stop "ArcIMS Monitor 9.1"
net?stop "ArcIMS Application Server 9.1"
net?stop "szmap_sde"
net stop "OracleOraHome92TNSListener"
注意,停止服務的順序剛好以啟動相反。
這樣,大功告成。以后要啟動服務,執(zhí)行“啟動所有服務.bat”,停止服務執(zhí)行“停止所有服務.bat”即可。
posted @ 2007-01-19 23:08 Kevin Meng 閱讀(494) | 評論 (0) | 編輯 收藏
由于文章比較長而且?guī)Ш芏鄨D片,不好在這里貼出,需要者請發(fā)郵件到kookmen@163.com索取。
posted @ 2006-11-28 15:31 Kevin Meng 閱讀(603) | 評論 (9) | 編輯 收藏
即加入:<param name="wmode" value="transparent">
posted @ 2006-11-12 13:42 Kevin Meng 閱讀(351) | 評論 (0) | 編輯 收藏
一、新建一個Filter,代碼如下:
package com.suzhou.util;
import java.io.IOException;
import javax.servlet.*;
public class SetCharacterEncodingFilter implements Filter {
?protected String encoding = null;// ///要制定的編碼,在web.xml中配置
?protected FilterConfig filterConfig = null;
?public void destroy() {
??this.encoding = null;
??this.filterConfig = null;
?}
?public void doFilter(ServletRequest request, ServletResponse response,
???FilterChain chain) throws IOException, ServletException {
??if (request.getCharacterEncoding() == null) {
???String encoding = getEncoding();// //得到指定的編碼名字
???if (encoding != null)
????request.setCharacterEncoding(encoding);// //設置request的編碼
??}
??chain.doFilter(request, response);// /有機會執(zhí)行下一個filter
?}
?public void init(FilterConfig filterConfig) throws ServletException {
??this.filterConfig = filterConfig;
??this.encoding = filterConfig.getInitParameter("encoding");// /得到在web.xml中配置的編碼
?}
?protected String getEncoding() {
??return (this.encoding);// /得到指定的編碼
?}
}
二、修改web.xml,添加:
<filter>
??<filter-name>SetCharacterEncoding</filter-name>
??<filter-class>com.suzhou.util.SetCharacterEncodingFilter</filter-class>
??<init-param>
???<param-name>encoding</param-name>
???<param-value>GBK</param-value>
??</init-param>
?</filter>
?<filter-mapping>
??<filter-name>SetCharacterEncoding</filter-name>
??<url-pattern>/*</url-pattern>
?</filter-mapping>
三、進入http://localhost:port/admin,選擇Tomcat server/Service/Connector(port),把URI Encoding改成UTF-8,Use Body Encoding For URI Query Parameters:設置為true,點保存然后重新啟動Tomcat即可。
記住,每個jsp頁面的編碼都為:
<%@ page contentType="text/html; charset=GBK" language="java" import="java.sql.*" errorPage="" %>
這樣子不但能徹底解決中文參數問題(如http://menglikn:4000/suzhou/getMap.do?ditu=市區(qū)圖),而且還能解決中文URL問題(如http://menglikun:4000/suzhou/空白頁.html)
posted @ 2006-11-10 19:26 Kevin Meng 閱讀(527) | 評論 (0) | 編輯 收藏
window xp
jdk 1.5
tomcat 5.028
eclispe 3.2
myeclipse 4.0
步驟:
(1)新建一個web project,名稱為suzhouadmin
(2)在項目上點鼠標右鍵,選擇myeclipse->add spring capablities...
(3)把Spring 1.2 AOP,Spring 1.2 Core Lib,Spring ORM/DAO/Hibernate 3.0 lib,Spring 1.2 web lib選擇中,Copy Checked lib content to project folder,然后點Next
(4)folder改為:WebRoot/WEB-INF,File為applicationContext.xml不變。點Finish。
Spring的引用完成。
(5)在項目上點鼠標右鍵,選擇myeclipse->add Struts capablities...
(6)選擇struts1.1,base package for classes?改成 com.suzhou.admin.struts,然后點finish。
Struts的引用完成。
(6)新建立一個包com.suzhou.admin.hibernate,然后在項目上點鼠標右鍵,選擇myeclipse->add Hibernate capablities...
(7)把Hibernate 3.0 core lib,Hibernate 3.0 advanced lib中,Copy Checked lib content to project folder,點Next
(8)選擇Spring Configuration file(applicationContext.xml),點Next
(9)選擇Exit spring configuration file.輸入sessionFactory id為sessionFactory。點Next
(10)設置數據源ID為dataSource,選擇一個已經設置好的DB profile,然后點Next
(11)點Package...選擇com.suzhou.admin.hibernate,自動生成類名com.suzhou.admin.hibernate.HibernateSessionFactory。
開始配置Struts和Spring.
(12)打開WEB-INFO/web.xml,在最后面添加:
?<servlet>
??<servlet-name>context</servlet-name>
??<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
??<load-on-startup>1</load-on-startup>
?</servlet>
這樣,Spring 的ApplicationContext就配置好了。通過以上配置,Web容器會自動加載/WEB-INF/applicationContext.xml初始化
ApplicationContext實例,如果需要指定配置文件位置,可通過context-param加以指定:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/myApplicationContext.xml</param-value>
</context-param>
配置完成之后,即可通過
WebApplicationContextUtils.getWebApplicationContext()
方法在Web應用中獲取ApplicationContext引用。
(13)通過Struts config新建一個Action名為LoginAction,自動生成的action定義如下:
??? <action
????? attribute="loginForm"
????? input="/index.jsp"
????? name="loginForm"
????? path="/login"
????? scope="request"
????? type="com.suzhou.admin.struts.action.LoginAction">
????? <forward name="loginfail" path="/error.jsp" />
????? <forward name="loginok" path="/main.jsp" />
??? </action>
把其改成:
??? <action
????? attribute="loginForm"
????? input="/index.jsp"
????? name="loginForm"
????? path="/login"
????? scope="request"
????? type="org.springframework.web.struts.DelegatingActionProxy">
????? <forward name="loginfail" path="/error.jsp" />
????? <forward name="loginok" path="/main.jsp" />
??? </action>
并在struts-config.xml中添加Spring插件。
?<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
??<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
?</plug-in>
(13)用Myeclipse Spring donfig editor打開applicationContext.xml,點右鍵,選擇new Bean,輸入Bean name為/login,calss為com.suzhou.admin.struts.action.LoginAction。點finish,applicationContext.xml多加了一個Bean定義:
<bean name="/login" class="com.suzhou.admin.struts.action.LoginAction" abstract="false" singleton="true" lazy-init="default" autowire="default" dependency-check="default"></bean>
posted @ 2006-10-25 13:36 Kevin Meng 閱讀(952) | 評論 (0) | 編輯 收藏
(2)如果安裝不成功,必須重新安裝時,最好把所有已經安裝的oracle服務刪除。刪除步驟是。
a.進入DOC
b.進入C:\WINDOWS\system32
c.運行sc delete OracleServiceName
(3)如果系統(tǒng)安裝有放火墻,最好先把其關閉。安裝完oracle后再重新開啟。
posted @ 2006-10-19 09:29 Kevin Meng 閱讀(275) | 評論 (0) | 編輯 收藏
開發(fā)環(huán)境:
jdk 1.5
tomcat 5.0.28
oracle 9i
(1)在瀏覽器中輸入http://localhost:8181/admin/,登陸tomcat管理系統(tǒng)
(2)選擇Tomcat server->service->Host->Context(/yourproject)->Resource->Data Source
(3)在下拉列表中選擇Create new DataSource
JNDI Name:jdbc/yourDatasourceName
Data Source URL:jdbc:oracle:thin:@menglikunm:1521:ora
JDBC Driver:oracle.jdbc.driver.OracleDriver
UserName:username
Password:password
Max. Active Connections:2000(自己定)
2
(自己定)
(4)把oracle 的class12.jar拷貝到tomcat的common/lib目錄下(不要忘記這一步哦)
(5)重新啟動Tomcat
(6)測試,代碼如下:
Connection con = null;
??try{
???Context ctx=new InitialContext();
???DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/ora_menglikunm");
???con=ds.getConnection();
??}catch(Exception ex){
???ex.printStackTrace();
??}
(7)加班作吧!?。。。海?br />
posted @ 2006-09-22 10:36 Kevin Meng 閱讀(405) | 評論 (0) | 編輯 收藏
select * from v$session where username is not null
查看不同用戶的連接數
select username,count(username) from v$session where username is not null group by username
posted @ 2006-09-21 17:18 Kevin Meng 閱讀(6210) | 評論 (0) | 編輯 收藏
在右邊的窗口中打開列表,選中"JavaScript",在下面的"default encoding"右邊的輸入框中輸入javaScript編碼,要看您的網頁用的編碼,如果是“GBK”就選"GBK",是"GB2312"就選“GB2312”,UTF-8就是UTF-8,再點"update"按鈕。
posted @ 2006-09-06 17:46 Kevin Meng 閱讀(2199) | 評論 (5) | 編輯 收藏
exp sde/sde@ora 導出sde下的所有數據
exp yourdata/yourdata@ora導出yourdata下所有的數據
(2)用post install在目標機器配置sde。
(3)在目標機器中建立用戶yourdata和yourdata表空間
(4)把sde下面所有的表刪除掉,并授予sde用戶和yourdata用戶dba權限。
(5)用PLSQL把導出的mdp文件導到sde和yourdata用戶下。
(6)重新運行arcsde post installation,選擇custom,去掉Define sde user Envirenment,然后不斷點下一步配置。最后一步選擇手動啟動sde服務。然后在控制面搬中手動啟動服務。
posted @ 2006-08-23 09:50 Kevin Meng 閱讀(262) | 評論 (0) | 編輯 收藏
?? 在dom4j的范例和網上流行的《DOM4J 使用簡介》這篇教程中新建一個xml文檔的代碼都類似如下
????public void createXML(String fileName) {
????????Document doc = org.dom4j.DocumentHelper.createDocument();
????????Element root = doc.addElement("book");
????????root.addAttribute("name", "我的圖書");
????????Element childTmp;
????????childTmp = root.addElement("price");
????????childTmp.setText("21.22");
????????Element writer = root.addElement("author");
????????writer.setText("李四");
????????writer.addAttribute("ID", "001");
????????try {
????????????org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter(
????????????????????new FileWriter(fileName));
????????????xmlWriter.write(doc);
????????????xmlWriter.close();
????????}
????????catch (Exception e) {
????????????System.out.println(e);
????????}
????}
?? 在上面的代碼中輸出使用的是FileWriter對象進行文件的輸出。這就是不能正確進行文件編碼的原因所在,java中由Writer類繼承下來的子類沒有提供編碼格式處理,所以dom4j也就無法對輸出的文件進行正確的格式處理。這時候所保存的文件會以系統(tǒng)的默認編碼對文件進行保存,在中文版的window下java的默認的編碼為GBK,也就是所雖然我們標識了要將xml保存為utf-8格式但實際上文件是以GBK格式來保存的,所以這也就是為什么能夠我們使用GBK、GB2312編碼來生成xml文件能正確的被解析,而以UTF-8格式生成的文件不能被xml解析器所解析的原因。
?? 好了現在我們找到了原因所在了,我們來找解決辦法吧。首先我們看看dom4j是如何實現編碼處理的
?? public XMLWriter(OutputStream out) throws UnsupportedEncodingException {
????????//System.out.println("In OutputStream");
????????this.format = DEFAULT_FORMAT;
????????this.writer = createWriter(out, format.getEncoding());
????????this.autoFlush = true;
?????? namespaceStack.push(Namespace.NO_NAMESPACE);
????}
????public XMLWriter(OutputStream out, OutputFormat format) throws UnsupportedEncodingException {
????????//System.out.println("In OutputStream,OutputFormat");
????????this.format = format;
????????this.writer = createWriter(out, format.getEncoding());
????????this.autoFlush = true;
?????? namespaceStack.push(Namespace.NO_NAMESPACE);
????}
????/**
???? * Get an OutputStreamWriter, use preferred encoding.
???? */
????protected Writer createWriter(OutputStream outStream, String encoding) throws UnsupportedEncodingException {
????????return new BufferedWriter(
????????????new OutputStreamWriter( outStream, encoding )
????????);
????}
?? 由上面的代碼我們可以看出dom4j對編碼并沒有進行什么很復雜的處理,完全通過java本身的功能來完成。所以我們在使用dom4j的來生成我們的XML文件時不應該直接為在構建XMLWriter時,不應該直接為其賦一個Writer對象,而應該通過一個OutputStream的子類對象來構建。也就是說在我們上面的代碼中,不應該用FileWriter對象來構建xml文檔,而應該使用FileOutputStream對象來構建所以將代碼修改入下:
????public void createXML(String fileName) {
????????Document doc = org.dom4j.DocumentHelper.createDocument();
????????Element root = doc.addElement("book");
????????root.addAttribute("name", "我的圖書");
????????Element childTmp;
????????childTmp = root.addElement("price");
????????childTmp.setText("21.22");
????????Element writer = root.addElement("author");
????????writer.setText("李四");
????????writer.addAttribute("ID", "001");
????????try {
????????????//注意這里的修改
????????????org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter(
????????????????????new FileOutputStream(fileName));
????????????xmlWriter.write(doc);
????????????xmlWriter.close();
????????}
????????catch (Exception e) {
????????????System.out.println(e);
????????}
????}
??
?? 至此DOM4J的問題編碼問題算是告一段落,希望對此文章對其他朋友有用。
posted @ 2006-08-16 22:56 Kevin Meng 閱讀(112) | 評論 (0) | 編輯 收藏
posted @ 2006-07-31 13:18 Kevin Meng 閱讀(1283) | 評論 (2) | 編輯 收藏
解決辦法是進入arcSDE的安裝目錄\lib下面把jpe91_sdk.jar,jsde91_sdk.jar兩個文件拷貝出來,然后搜索arcIMS的安裝目錄,只要有這兩個文件的地方都覆蓋掉,然后依此重啟一下arcIMS的三個服務就可以了。
posted @ 2006-07-28 16:55 Kevin Meng 閱讀(580) | 評論 (0) | 編輯 收藏
all表示對所有的值求平均值,distinct只對不同的值求平均值
SQLWKS> create table table3(xm varchar(8),sal number(7,2));
語句已處理。
SQLWKS>? insert into table3 values('gao',1111.11);
SQLWKS>? insert into table3 values('gao',1111.11);
SQLWKS>? insert into table3 values('zhu',5555.55);
SQLWKS> commit;
SQL> select avg(distinct sal) from gao.table3;
AVG(DISTINCTSAL)
----------------
3333.33
SQL> select avg(all sal) from gao.table3;
AVG(ALLSAL)
-----------
2592.59
61.MAX(DISTINCT|ALL)
求最大值,ALL表示對所有的值求最大值,DISTINCT表示對不同的值求最大值,相同的只取一次
SQL> select max(distinct sal) from scott.emp;
MAX(DISTINCTSAL)
----------------
5000
62.MIN(DISTINCT|ALL)
求最小值,ALL表示對所有的值求最小值,DISTINCT表示對不同的值求最小值,相同的只取一次
SQL> select min(all sal) from gao.table3;
MIN(ALLSAL)
-----------
1111.11
63.STDDEV(distinct|all)
求標準差,ALL表示對所有的值求標準差,DISTINCT表示只對不同的值求標準差
SQL> select stddev(sal) from scott.emp;
STDDEV(SAL)
-----------
1182.5032
SQL> select stddev(distinct sal) from scott.emp;
STDDEV(DISTINCTSAL)
-------------------
1229.951
64.VARIANCE(DISTINCT|ALL) 求協(xié)方差
SQL> select variance(sal) from scott.emp;
VARIANCE(SAL)
-------------
1398313.9
65.GROUP BY 主要用來對一組數進行統(tǒng)計
SQL> select deptno,count(*),sum(sal) from scott.emp group by deptno;
DEPTNO? COUNT(*)? SUM(SAL)
--------- --------- ---------
10???????? 3????? 8750
20???????? 5???? 10875
30???????? 6????? 9400
66.HAVING? 對分組統(tǒng)計再加限制條件
SQL> select deptno,count(*),sum(sal) from scott.emp group by deptno having nt(*)>=5;
DEPTNO? COUNT(*)? SUM(SAL)
--------- --------- ---------
20???????? 5???? 10875
30???????? 6????? 9400
SQL> select deptno,count(*),sum(sal) from scott.emp having count(*)>=5 group by tno ;
DEPTNO? COUNT(*)? SUM(SAL)
--------- --------- ---------
20???????? 5???? 10875
30???????? 6????? 9400
67.ORDER BY? 用于對查詢到的結果進行排序輸出
SQL> select deptno,ename,sal from scott.emp order by deptno,sal desc;
DEPTNO ENAME??????????? SAL
--------- ---------- ---------
10 KING??????????? 5000
10 CLARK?????????? 2450
10 MILLER????????? 1300
20 SCOTT?????????? 3000
20 FORD??????????? 3000
20 JONES?????????? 2975
20 ADAMS?????????? 1100
20 SMITH??????????? 800
30 BLAKE?????????? 2850
30 ALLEN?????????? 1600
30 TURNER????????? 1500
30 WARD??????????? 1250
30 MARTIN????????? 1250
30 JAMES??????????? 950
posted @ 2006-07-26 15:15 Kevin Meng 閱讀(182) | 評論 (0) | 編輯 收藏
將源字符串 sset從一個語言字符集轉換到另一個目的dset字符集
SQL> select convert('strutz','we8hp','f7dec') "conversion" from dual;
conver
------
strutz
44.HEXTORAW 將一個十六進制構成的字符串轉換為二進制
45.RAWTOHEXT 將一個二進制構成的字符串轉換為十六進制
46.ROWIDTOCHAR 將ROWID數據類型轉換為字符類型
47.TO_CHAR(date,'format')
SQL> select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2004/05/09 21:14:41
48.TO_DATE(string,'format') 將字符串轉化為ORACLE中的一個日期
49.TO_MULTI_BYTE? 將字符串中的單字節(jié)字符轉化為多字節(jié)字符
SQL>? select to_multi_byte('高') from dual;
TO
--
高
50.TO_NUMBER
將給出的字符轉換為數字
SQL> select to_number('1999') year from dual;
YEAR
---------
1999
51.BFILENAME(dir,file)指定一個外部二進制文件
SQL>insert into file_tb1 values(bfilename('lob_dir1','image1.gif'));
52.CONVERT('x','desc','source') 將x字段或變量的源source轉換為desc
SQL> select sid,serial#,username,decode(command,
2? 0,'none',
3? 2,'insert',
4? 3,
5? 'select',
6? 6,'update',
7? 7,'delete',
8? 8,'drop',
9? 'other') cmd? from v$session where type!='background';
SID?? SERIAL# USERNAME?????????????????????? CMD
--------- --------- ------------------------------ ------
1???????? 1??????????????????????????????? none
2???????? 1??????????????????????????????? none
3???????? 1??????????????????????????????? none
4???????? 1??????????????????????????????? none
5???????? 1??????????????????????????????? none
6???????? 1??????????????????????????????? none
7????? 1275??????????????????????????????? none
8????? 1275??????????????????????????????? none
9??????? 20 GAO??????????????????????????? select
10??????? 40 GAO??????????????????????????? none
53.DUMP(s,fmt,start,length)
DUMP函數以fmt指定的內部數字格式返回一個VARCHAR2類型的值
SQL> col global_name for a30
SQL> col dump_string for a50
SQL> set lin 200
SQL> select global_name,dump(global_name,1017,8,5) dump_string from global_name;
GLOBAL_NAME??????????????????? DUMP_STRING
------------------------------ --------------------------------------------------
ORACLE.WORLD?????????????????? Typ=1 Len=12 CharacterSet=ZHS16GBK: W,O,R,L,D
54.EMPTY_BLOB()和EMPTY_CLOB()
這兩個函數都是用來對大數據類型字段進行初始化操作的函數
55.GREATEST
返回一組表達式中的最大值,即比較字符的編碼大小.
SQL> select greatest('AA','AB','AC') from dual;
GR
--
AC
SQL> select greatest('啊','安','天') from dual;
GR
--
天
56.LEAST
返回一組表達式中的最小值
SQL> select least('啊','安','天') from dual;
LE
--
啊
57.UID
返回標識當前用戶的唯一整數
SQL> show user
USER 為"GAO"
SQL> select username,user_id from dba_users where user_id=uid;
USERNAME???????????????????????? USER_ID
------------------------------ ---------
GAO?????????????????????????????????? 25
58.USER
返回當前用戶的名字
SQL> select user from? dual;
USER
------------------------------
GAO
59.USEREVN
返回當前用戶環(huán)境的信息,opt可以是:
ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE
ISDBA? 查看當前用戶是否是DBA如果是則返回true
SQL> select userenv('isdba') from dual;
USEREN
------
FALSE
SQL> select userenv('isdba') from dual;
USEREN
------
TRUE
SESSION
返回會話標志
SQL> select userenv('sessionid') from dual;
USERENV('SESSIONID')
--------------------
152
ENTRYID
返回會話人口標志
SQL> select userenv('entryid') from dual;
USERENV('ENTRYID')
------------------
0
INSTANCE
返回當前INSTANCE的標志
SQL> select userenv('instance') from dual;
USERENV('INSTANCE')
-------------------
1
LANGUAGE
返回當前環(huán)境變量
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
LANG
返回當前環(huán)境的語言的縮寫
SQL> select userenv('lang') from dual;
USERENV('LANG')
----------------------------------------------------
ZHS
TERMINAL
返回用戶的終端或機器的標志
SQL> select userenv('terminal') from dual;
USERENV('TERMINA
----------------
GAO
VSIZE(X)
返回X的大小(字節(jié))數
SQL> select vsize(user),user from dual;
VSIZE(USER) USER
----------- ------------------------------
6 SYSTEM
posted @ 2006-07-26 15:13 Kevin Meng 閱讀(189) | 評論 (0) | 編輯 收藏
SQL> select mod(10,3),mod(3,3),mod(2,3) from dual;
MOD(10,3)? MOD(3,3)? MOD(2,3)
--------- --------- ---------
1???????? 0???????? 2
27.POWER 返回n1的n2次方根
SQL> select power(2,10),power(3,3) from dual;
POWER(2,10) POWER(3,3)
----------- ----------
1024???????? 27
28.ROUND和TRUNC
按照指定的精度進行舍入
SQL> select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual;
ROUND(55.5) ROUND(-55.4) TRUNC(55.5) TRUNC(-55.5)
----------- ------------ ----------- ------------
56????????? -55????????? 55????????? -55
29.SIGN 取數字n的符號,大于0返回1,小于0返回-1,等于0返回0
SQL> select sign(123),sign(-100),sign(0) from dual;
SIGN(123) SIGN(-100)?? SIGN(0)
--------- ---------- ---------
1???????? -1???????? 0
30.SIN 返回一個數字的正弦值
SQL> select sin(1.57079) from dual;
SIN(1.57079)
------------
1
31.SIGH 返回雙曲正弦的值
SQL> select sin(20),sinh(20) from dual;
SIN(20)? SINH(20)
--------- ---------
.91294525 242582598
32.SQRT 返回數字n的根
SQL> select sqrt(64),sqrt(10) from dual;
SQRT(64)? SQRT(10)
--------- ---------
8 3.1622777
33.TAN 返回數字的正切值
SQL> select tan(20),tan(10) from dual;
TAN(20)?? TAN(10)
--------- ---------
2.2371609 .64836083
34.TANH
返回數字n的雙曲正切值
SQL> select tanh(20),tan(20) from dual;
TANH(20)?? TAN(20)
--------- ---------
1 2.2371609
35.TRUNC
按照指定的精度截取一個數
SQL> select trunc(124.1666,-2) trunc1,trunc(124.16666,2) from dual;
TRUNC1 TRUNC(124.16666,2)
--------- ------------------
100???????????? 124.16
36.ADD_MONTHS
增加或減去月份
SQL> select to_char(add_months(to_date('199912','yyyymm'),2),'yyyymm') from dual;
TO_CHA
------
200002
SQL> select to_char(add_months(to_date('199912','yyyymm'),-2),'yyyymm') from dual;
TO_CHA
------
199910
37.LAST_DAY
返回日期的最后一天
SQL> select to_char(sysdate,'yyyy.mm.dd'),to_char((sysdate)+1,'yyyy.mm.dd') from dual;
TO_CHAR(SY TO_CHAR((S
---------- ----------
2004.05.09 2004.05.10
SQL> select last_day(sysdate) from dual;
LAST_DAY(S
----------
31-5月 -04
38.MONTHS_BETWEEN(date2,date1)
給出date2-date1的月份
SQL> select months_between('19-12月-1999','19-3月-1999') mon_between from dual;
MON_BETWEEN
-----------
9
SQL>selectmonths_between(to_date('2000.05.20','yyyy.mm.dd'),to_date('2005.05.20','yyyy.dd')) mon_betw from dual;
MON_BETW
---------
-60
39.NEW_TIME(date,'this','that')
給出在this時區(qū)=other時區(qū)的日期和時間
SQL> select to_char(sysdate,'yyyy.mm.dd hh24:mi:ss') bj_time,to_char(new_time
2? (sysdate,'PDT','GMT'),'yyyy.mm.dd hh24:mi:ss') los_angles from dual;
BJ_TIME???????????? LOS_ANGLES
------------------- -------------------
2004.05.09 11:05:32 2004.05.09 18:05:32
40.NEXT_DAY(date,'day')
給出日期date和星期x之后計算下一個星期的日期
SQL> select next_day('18-5月-2001','星期五') next_day from dual;
NEXT_DAY
----------
25-5月 -01
41.SYSDATE 用來得到系統(tǒng)的當前日期
SQL> select to_char(sysdate,'dd-mm-yyyy day') from dual;
TO_CHAR(SYSDATE,'
-----------------
09-05-2004 星期日
trunc(date,fmt)按照給出的要求將日期截斷,如果fmt='mi'表示保留分,截斷秒
SQL> select to_char(trunc(sysdate,'hh'),'yyyy.mm.dd hh24:mi:ss') hh,
2? to_char(trunc(sysdate,'mi'),'yyyy.mm.dd hh24:mi:ss') hhmm from dual;
HH????????????????? HHMM
------------------- -------------------
2004.05.09 11:00:00 2004.05.09 11:17:00
42.CHARTOROWID 將字符數據類型轉換為ROWID類型
SQL> select rowid,rowidtochar(rowid),ename from scott.emp;
ROWID????????????? ROWIDTOCHAR(ROWID) ENAME
------------------ ------------------ ----------
AAAAfKAACAAAAEqAAA AAAAfKAACAAAAEqAAA SMITH
AAAAfKAACAAAAEqAAB AAAAfKAACAAAAEqAAB ALLEN
AAAAfKAACAAAAEqAAC AAAAfKAACAAAAEqAAC WARD
AAAAfKAACAAAAEqAAD AAAAfKAACAAAAEqAAD JONES
posted @ 2006-07-26 15:13 Kevin Meng 閱讀(156) | 評論 (0) | 編輯 收藏
|
||
SQL中的單記錄函數
1.ASCII 返回與指定的字符對應的十進制數; A???????? A????? ZERO???? SPACE
ZH C
3.CONCAT 連接兩個字符串; 高乾競電話
4.INITCAP 返回字符串并將字符串的第一個字母變?yōu)榇髮? UPP
5.INSTR(C1,C2,I,J) 在一個字符串中搜索指定的字符,返回發(fā)現指定的字符的位置; INSTRING
6.LENGTH 返回字符串的長度; NAME?? LENGTH(NAME) ADDR???????????? LENGTH(ADDR)?????? SAL LENGTH(TO_CHAR(SAL))
7.LOWER 返回字符串,并將所有的字符小寫 AABBCCDD
8.UPPER 返回字符串,并將所有的字符大寫 UPPER
9.RPAD和LPAD(粘貼字符)
LPAD(RPAD('GAO',1
10.LTRIM和RTRIM
LTRIM(RTRIM('
11.SUBSTR(string,start,count)
SUBSTR('
12.REPLACE('string','s1','s2')
REPLACE('HELOVEYOU','HE','I')
13.SOUNDEX 返回一個與給定的字符串讀音相同的字符串 SQL> select xm from table1 where soundex(xm)=soundex('weather'); XM
14.TRIM('s' from 'string')
15.ABS 返回指定值的絕對值 ABS(100) ABS(-100)
16.ACOS 給出反余弦的值 ACOS(-1)
17.ASIN 給出反正弦的值 ASIN(0.5)
18.ATAN 返回一個數字的反正切值 ATAN(1)
19.CEIL 返回大于或等于給出數字的最小整數 CEIL(3.1415927)
20.COS 返回一個給定數字的余弦 COS(-3.1415927)
21.COSH 返回一個數字反余弦值 COSH(20)
22.EXP 返回一個數字e的n次方根 EXP(2)??? EXP(1)
23.FLOOR 對給定的數字取整數 FLOOR(2345.67)
24.LN 返回一個數字的對數值 LN(1)???? LN(2) LN(2.7182818)
25.LOG(n1,n2) 返回一個以n1為底n2的對數 LOG(2,1)? LOG(2,4) |
posted @ 2006-07-26 15:11 Kevin Meng 閱讀(213) | 評論 (0) | 編輯 收藏
在很多程序做多需要有發(fā)送電子郵件的功能,以前使用java mail實現這個功能很麻煩?,F在apache的下的一個子項目common-email,把這個問題大大的簡化了?,F在在java程序中實現發(fā)信功能,只需要短短幾行代碼。 ????? 可以http://jakarta.apache.org/commons/email/在這個地址下載開發(fā)包和查看詳細的介紹。 |
|
? ??try { ???HtmlEmail email = new HtmlEmail(); ???email.setHostName("smtp.163.com");//設置發(fā)信的smtp服務器 ???email.addTo(to, toName);//設置收件人帳號和收件人 ???email.setFrom("aaa@163.com", "aaa");//設置發(fā)信的郵件帳號和發(fā)信人 ???email.setSubject(subject);//設置郵件主題 ???email.setAuthentication("aaa","111111");//如果smtp服務器需要認證的話,在這里設置帳號、密碼 ???email.setHtmlMsg(body,"text/html; charset=GB2312");//設置郵件正文和字符編碼 ???email.send(); ??} catch (EmailException e) { ???e.printStackTrace(); ??} ?} ?網站的介紹中沒有提及如何發(fā)送中文郵件,如果發(fā)送中文郵件像上面在setHtmlMsg(),加上字符編碼即可。 |
posted @ 2006-07-25 16:34 Kevin Meng 閱讀(884) | 評論 (0) | 編輯 收藏
import?java.sql.*;
import?java.io.*;
import?java.util.*;
import?javax.servlet.*;
import?javax.servlet.http.*;
import?com.jspsmart.upload.*;
public?class?UpLoad?extends?HttpServlet?{
????private?ServletConfig?config;
????/**
?????*?Init?the?servlet
?????*/
????final?public?void?init(ServletConfig?config)?throws?ServletException?{
????????this.config?=?config;
????}
????final?public?ServletConfig?getServletConfig()?{
????????return?config;
????}
????public?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)?throws?ServletException,?IOException?{
????????doPost(request,?response);
????}
????public?void?doPost(HttpServletRequest?request,?HttpServletResponse?response)?throws?ServletException,?IOException?{
????????System.out.println("============UpLoad?begin?ddd=============");
????????String?id?=?null;
????????SmartUpload?mySmartUpload?=?new?SmartUpload();
????????PrintWriter?out?=?response.getWriter();
????????java.io.File?file=null;
????????try?{
????????????Class.forName("oracle.jdbc.driver.OracleDriver");
????????}?catch?(java.lang.ClassNotFoundException?e)?{
????????????System.err.print("ClassNotFoundException:?"?+?e.getMessage());
????????}
????????try?{
????????????//Class.forName("oracle.jdbc.driver.OracleDriver");
????????????Connection?conn?=?DriverManager.getConnection("jdbc:oracle:thin:@10.216.0.2:1521:ORCL",?"test",?"test");
????????????conn.setAutoCommit(false);?//設置手動提交,以提高性能。
????????????Statement?stmt?=?conn.createStatement();
????????????//?Initialization
????????????mySmartUpload.initialize(config,?request,?response);
????????????mySmartUpload.setMaxFileSize(500?*?1024);
????????????//?Upload
????????????mySmartUpload.upload();
????????????//取得text框中的數據
????????????id?=?mySmartUpload.getRequest().getParameter("id");
????????????//取得文件和文件名
????????????com.jspsmart.upload.File?myFile?=?mySmartUpload.getFiles().getFile(0);
????????????String?fileName?=?myFile.getFileName();
????????????if?(!myFile.isMissing())?{
????????????????//save?data
????????????????myFile.saveAs(fileName,?mySmartUpload.SAVE_PHYSICAL);
????????????????System.out.println("============fileName="?+?fileName?+?"====");
????????????????file?=?new?java.io.File(fileName);
????????????????java.io.InputStream?inStream?=?new?java.io.FileInputStream(file);
????????????????int?fileSize?=?myFile.getSize();
????????????????byte[]?bytes?=?new?byte[fileSize];
????????????????System.out.println("============fileSize="?+?fileSize?+?"====");
????????????????//將數據插入到表中
????????????????String?strSql?=?"insert?into?test(id,name,content)?values(’"?+?id?+?"’,’"?+?fileName?+?"’,empty_blob())";
????????????????stmt.execute(strSql);
????????????????ResultSet?rs?=?stmt.executeQuery("select?content?from?zyw_test?where?id=’"?+?id?+?"’?for?update?");
????????????????if?(rs.next())?{
????????????????????oracle.sql.BLOB?blob?=?(?(oracle.jdbc.OracleResultSet)?rs).getBLOB("content");
????????????????????OutputStream?outStream?=?blob.getBinaryOutputStream();
????????????????????inStream.read(bytes);
????????????????????outStream.write(bytes);
????????????????????outStream.flush();
????????????????????stmt.execute("commit");
????????????????????outStream.close();
????????????????}
????????????????inStream.close();
????????????????stmt.close();
????????????????if(file!=null)//刪除文件
????????????????????file.delete();
????????????????out.println("upload?sucess");
????????????}?else?{
????????????????out.println("no?file");
????????????}
????????}?catch?(Exception?ex)?{
????????????if(file!=null)
????????????????file.delete();
????????????out.println("upload?fail");
????????????ex.printStackTrace();
????????}
????????System.out.println("============UpLoad?end=============");
????}
}
這是下載,進行顯示圖片
import?java.sql.*;
import?java.io.*;
import?java.util.*;
import?javax.servlet.*;
import?javax.servlet.http.*;
public?class?DownLoad?extends?HttpServlet{
????public?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)
????????throws?ServletException,?IOException?{
????????doPost(request,response);
????}
????public?void?doPost(HttpServletRequest?request,?HttpServletResponse?response)
????????throws?ServletException,?IOException?{
????????System.out.println("======DownLoad?begin=====");
????????try{
????????????Class.forName("oracle.jdbc.driver.OracleDriver");
????????????Connection?conn?=?DriverManager.getConnection("jdbc:oracle:thin:@10.216.0.2:1521:ORCL","test","test");
????????????Statement?stmt=conn.createStatement();
????????????String?id=request.getParameter("id");
????????????String?sql="SELECT?id,?name,?content?FROM?test?where?id=’"+id+"’";
????????????ResultSet?rs=stmt.executeQuery(sql);
????????????if(rs.next()){
????????????????Blob?blob?=?rs.getBlob("content");
????????????????byte[]?ab?=?blob.getBytes(1,?(int)blob.length());
????????????????response.setContentType("image/jpeg");
????????????????ServletOutputStream?op?=?response.getOutputStream();
????????????????op.write(ab);
????????????????op.flush();
????????????????op.close();
????????????}
????????}catch(Exception?ex){
????????????ex.printStackTrace();
????????}
????????System.out.println("======DownLoad?end=====");
????}
}
posted @ 2006-07-24 23:59 Kevin Meng 閱讀(826) | 評論 (0) | 編輯 收藏