posted @ 2015-09-18 21:04 Kevin Meng 閱讀(227) | 評論 (0) | 編輯 收藏
posted @ 2015-08-10 23:15 Kevin Meng 閱讀(196) | 評論 (0) | 編輯 收藏
posted @ 2012-10-22 11:53 Kevin Meng 閱讀(1490) | 評論 (0) | 編輯 收藏
posted @ 2012-08-15 12:52 Kevin Meng 閱讀(262) | 評論 (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 閱讀(337) | 評論 (0) | 編輯 收藏
這次項目開發,運行環境的tomcat版本從5.5.12升級到了6.0.18,發現以前的項目不能跑了,訪問一個很簡單的jsp也會報錯,說無法編譯,報的錯誤就是:Only a type can be imported. com.xxx.xxx.XXX resolves to a package,意思就是說你jsp頁面上引用的那個類不存在,可是在老版本明明跑的好好的,而且另一個現象就是項目根目錄下的jsp訪問沒有問題,子目錄下就報錯,google了一下,發現這是新版本tomcat的一個變化,就是如果不指定context的話,每一個子文件夾都會被tomcat當作一個獨立的虛擬應用的,所以每個子文件夾下的jsp頁面訪問的時候,都會在它的同一層找WEB-INF里面的class,這樣當然找不到了,只有剛巧放在根目錄下的jsp文件能訪問。
解決辦法:其實這也是自己以前寫tomcat的配置文件時候,寫法不規范造成的,以前的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,就發生了類似的問題,但是當時沒充裕時間去解決,就一直把問題遺留到現在。
posted @ 2012-08-01 11:14 Kevin Meng 閱讀(521) | 評論 (0) | 編輯 收藏
web開發中,我們經常需要將一個表的數據插入到另外一個表,有時還需要指定導入字段,設置只需要導入目標表中不存在的記錄,雖然這些都可以在程序中拆分成簡單sql來實現,但是用一個sql的話,會節省大量代碼。下面我以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 閱讀(1612) | 評論 (0) | 編輯 收藏
解決辦法:
posted @ 2011-11-09 20:30 Kevin Meng 閱讀(2478) | 評論 (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 閱讀(420) | 評論 (0) | 編輯 收藏
(7)點下一步開始安裝,耐心等待,安裝完后重啟,就可以進入美麗的Mac世界了。
posted @ 2009-08-05 12:27 Kevin Meng 閱讀(328) | 評論 (0) | 編輯 收藏
posted @ 2009-02-16 13:29 Kevin Meng 閱讀(4220) | 評論 (4) | 編輯 收藏
posted @ 2009-02-12 15:31 Kevin Meng 閱讀(911) | 評論 (3) | 編輯 收藏
posted @ 2009-02-06 16:08 Kevin Meng 閱讀(2588) | 評論 (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 閱讀(750) | 評論 (0) | 編輯 收藏
posted @ 2009-01-08 15:28 Kevin Meng 閱讀(265) | 評論 (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 閱讀(780) | 評論 (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 閱讀(1205) | 評論 (0) | 編輯 收藏
昨天老肖提醒了我一下,打補丁,于是立刻給arcEngine打上了SP5補丁,果然再也沒有問題了!靠
心得是:有事別找ESRI技術支持!:)
posted @ 2008-10-24 10:08 Kevin Meng 閱讀(1974) | 評論 (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 閱讀(756) | 評論 (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 閱讀(1537) | 評論 (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>軟硬件環境
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下
添加環境變量:
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開發人員來說應該都不是問題,接下來就是重頭戲了!
<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網頁文件目錄要指向同一個目錄,否則靜態頁面會無法訪問
<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來執行,這里你可以添加無限多個服務器來實現負載(當然,前提是您有足夠的RMB),一個是status是用來查看負載均衡狀態的,我們后面將會用到.
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服務)去執行,除了*.gif,*.html等靜態元素和/jkstatus,/jkstatus由status這個worker執行.
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 閱讀(558) | 評論 (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 閱讀(245) | 評論 (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 閱讀(2421) | 評論 (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>
執行到這里,您應該可以在d:\tomcat5.0目錄中找到一個文件myserver.cert
接著,我們要把這個證書文件導到客戶端的JVM中,因為現在我們的客戶端和服務器端都是同一臺機器,所以直接進入cmd,執行以下命令就可以了
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
簽發人: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,但是訪問的時候卻用機器名。統一一下就可以了
posted @ 2008-07-02 11:19 Kevin Meng 閱讀(314) | 評論 (0) | 編輯 收藏
環境:
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 //如果是開發環境,建議用localhost或機器名,如果是發布環境,請用域名,不要用IP
您的組織單位名稱是什么?
[Unknown]: szghj
您的組織名稱是什么?
[Unknown]: szghj
您所在的城市或區域名稱是什么?
[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>
執行到這一步,如果不出意外的話,在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 閱讀(194) | 評論 (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 閱讀(901) | 評論 (0) | 編輯 收藏
create table tab2 tablespace space2 as (select t.* from tab1 t);
tab1為原來的表,tab2為臨時表 space2為目的表空間。
執行完后,把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)
-- 開頭和結尾都是%,對不起,很難優化
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 閱讀(394) | 評論 (0) | 編輯 收藏