posted @ 2007-07-20 19:18 oksonic 閱讀(6997) | 評(píng)論 (8) | 編輯 收藏
2007年2月10日
使用NetBean + Visual Web Pack 5.5開(kāi)發(fā)之用戶管理
下載地址:www.oksonic.cn www.oksonic.com.cn
1. 介紹
用戶的增、刪、改操作
2. 準(zhǔn)備
a) NetBean5.5中文版
b) JDK
c) Visual Web Pack 5.5
3. 開(kāi)發(fā)步驟
a) 新建項(xiàng)目user
i. 拷貝mysql的jdbc驅(qū)動(dòng)到netbean安裝目錄下的common/lib目錄下,沒(méi)有這一步的話在運(yùn)行程序時(shí)會(huì)出現(xiàn)找不到jdbc驅(qū)動(dòng)的錯(cuò)誤提示
b) 創(chuàng)建數(shù)據(jù)源
i. 創(chuàng)建用戶表
c) 使用數(shù)據(jù)組件
i. 設(shè)置綁定數(shù)據(jù)源
ii. 更改姓名、密碼字段為可編輯狀態(tài)
d) 增加新用戶事件
public String add_action() { try { // 創(chuàng)建一個(gè)空的記錄行 RowKey rk = usersDataProvider.appendRow(); usersDataProvider.setCursorRow(rk); } catch (Exception e){ error(e.getMessage()); } return null; }
e) 增加保存事件
public String save_action() { try{ usersDataProvider.commitChanges(); usersDataProvider.refresh(); } catch (Exception e){ error(e.getMessage()); } return null; }
f) 增加刪除事件
public String delete_action() { try{ RowKey rk = tableRowGroup1.getRowKey(); usersDataProvider.removeRow(rk); usersDataProvider.commitChanges(); usersDataProvider.refresh(); } catch (Exception e){ error(e.getMessage()); } return null; }
4. 參考資料
Java Studio Creator 教程
posted @ 2007-05-14 22:52 oksonic 閱讀(6225) | 評(píng)論 (9) | 編輯 收藏
使用NetBean5.5可視環(huán)境開(kāi)發(fā)JSF應(yīng)用程序
下載地址:www.oksonic.cn
1. 準(zhǔn)備
a) JDK
b) NetBean5.5 http://www.netbeans.org/
c) Visual Web Pack http://www.netbeans.org/
2. 開(kāi)發(fā)步驟
a) 安裝NetBean5.5、安裝Visual Web Pack
b) 創(chuàng)建一個(gè)簡(jiǎn)單的登錄項(xiàng)目
i. 新建一個(gè)Visual Web工程名稱為login
ii. 拖動(dòng)一個(gè)文本框組件和一個(gè)口令字段組件到頁(yè)面中,修改ID屬性為username、password,修改Label屬性為姓名、密碼
iii. 拖動(dòng)一個(gè)按鈕組件到頁(yè)面中,修改按鈕的ID為login,修改text屬性為登錄
iv. 雙擊登錄按鈕界面跳轉(zhuǎn)到代碼編輯頁(yè),修改光標(biāo)所在的代碼為以下內(nèi)容:
public String login_action() { // 待做事項(xiàng):處理按鈕單擊操作。返回的值是一個(gè)導(dǎo)航 // 條件名稱,如果它為 Null,則返回到同一頁(yè)。 return "success"; }
根據(jù)注釋內(nèi)容可以看到這里的return的返回值為success,根據(jù)這個(gè)返回值,我們只需要配置相應(yīng)的導(dǎo)航就可以控制頁(yè)面到想轉(zhuǎn)的地方了
v. 新建一個(gè)welcome頁(yè)
vi. 在welcome頁(yè)中加入一個(gè)靜態(tài)文本組件,并修改它的text屬性為“您已經(jīng)成功登錄了!”
vii. 點(diǎn)擊左邊樹(shù)型菜單中的“頁(yè)面導(dǎo)航”項(xiàng)進(jìn)入頁(yè)面導(dǎo)航的配置頁(yè),這時(shí)可以看到兩個(gè)圖標(biāo),一個(gè)是Page1.jsp,另一個(gè)是welcome.jsp,在Page1.jsp圖標(biāo)的右邊可以看到一個(gè)小方塊,點(diǎn)擊方塊并拖動(dòng)到welcome.jsp文件上后放開(kāi)鼠標(biāo),這時(shí)就看到有一條線將兩個(gè)圖標(biāo)連在一塊了,上面還有文字信息,點(diǎn)中這條線后,修改它的屬性“結(jié)果”為“success”這里的“success”就是根據(jù)上面的login_action方法中所返回的“success”文字來(lái)進(jìn)行判斷,只要文字相同就跳轉(zhuǎn)到welcome頁(yè)面
viii. 按下F6或是點(diǎn)擊菜單項(xiàng)的“運(yùn)行”à“運(yùn)行主項(xiàng)目”就可以啟動(dòng)tomcat進(jìn)行測(cè)試了,項(xiàng)目啟動(dòng)后會(huì)自動(dòng)打開(kāi)IE并顯示當(dāng)前頁(yè)面,點(diǎn)擊登錄按鈕就可以看到頁(yè)面跳轉(zhuǎn)到了welcome.jsp了
c) 表單驗(yàn)證
i. 修改文本框組件和口令字段的required屬性為true,也就是打上鉤,這里的意思是這兩個(gè)文本框必須輸入內(nèi)容后才可以提交,這時(shí)進(jìn)行測(cè)試就可以看到效果了,不輸入內(nèi)容就提交的話文字信息就會(huì)變?yōu)榧t色的了
ii. 加入長(zhǎng)度驗(yàn)證器,將文本框組件和口令字段組件的validator屬性從下拉列表中選擇lengthValidator1,在左邊的樹(shù)型菜單中選擇lengthValidator1,修改maximun和minimun屬性為10和2,這里的意思是驗(yàn)證用戶輸入數(shù)據(jù)的最大長(zhǎng)度和最小長(zhǎng)度分別為10個(gè)字符和2個(gè)字符
d) 調(diào)試代碼
i. 雙擊登錄按鈕進(jìn)入代碼編輯頁(yè)面加入以下代碼
public String login_action() { // 待做事項(xiàng):處理按鈕單擊操作。返回的值是一個(gè)導(dǎo)航 // 條件名稱,如果它為 Null,則返回到同一頁(yè)。 if(!this.username.getValue().equals("oksonic")) return null; return "success"; }
這里的意思是判斷用戶輸入的姓名是否是“oksonic”不是的話就返回null,返回值為null的話就是回到提交頁(yè)面
ii. 按下F5或是點(diǎn)擊菜單項(xiàng)的“運(yùn)行”à“調(diào)試主項(xiàng)目”就可以啟動(dòng)tomcat進(jìn)行調(diào)試了,在上面代碼的if語(yǔ)句前打上一個(gè)斷點(diǎn),在頁(yè)面中輸入信息后點(diǎn)登錄按鈕,這時(shí)就可以看到代碼運(yùn)行到斷點(diǎn)處就停止了,這時(shí)可以使用快捷鍵進(jìn)行操作。F7是跳到下一行代碼,Ctrl+F5是繼續(xù)執(zhí)行,其它的可以查看菜單“運(yùn)行”里的其它菜單項(xiàng)后的快捷方式
本教程到此結(jié)束,謝謝收看!
聯(lián)系方法: oksonic@tom.com
其它教程下載: www.oksonic.cn
posted @ 2007-05-07 02:22 oksonic 閱讀(5173) | 評(píng)論 (6) | 編輯 收藏
速動(dòng)畫(huà)教程第三十一集
下載地址:www.oksonic.cn www.oksonic.com.cn
使用Axis2構(gòu)建Hello應(yīng)用
A. 環(huán)境準(zhǔn)備
a. Eclipse3.2.2
b. MyEclipse5.5m2
c. Axis2.1.1 War包 http://ftp.wayne.edu/apache/ws/axis2/1_1_1/axis2.war
d. Axis Eclipse plug-in(代碼生成工具和打包工具):
http://apache.justdn.org/ws/axis2/tools/1_1_1/axis2-eclipse-codegen-wizard.zip
http://apache.justdn.org/ws/axis2/tools/1_1_1/axis2-eclipse-service-archiver-wizard.zip
B. 開(kāi)發(fā)步驟
a. 創(chuàng)建一個(gè)web項(xiàng)目,名稱為hello
b. 生成wsdl文件
打開(kāi)MyEclipse的web service中的wsdl向?qū)?/span>
文件名為hello.wdsl,下一步
目標(biāo)地址為http://www.oksonic.cn/hello/,其它為默認(rèn),完成
修改hello.wsdl文件為以下格式
C. 根據(jù)wsdl文件生成客戶端java代碼
使用Ctrl + N 打開(kāi)Axis Wizards中的Axis2 Code Generator
使用默認(rèn)的第一項(xiàng),下一步
選擇生成的hello.wsdl文件D:\oksonic\workspace\hello\src\hello.wsdl,下一步
參照下圖進(jìn)行配置
解壓Axis2.1.1 文件到C盤,然后參照下圖進(jìn)行配置
將加入進(jìn)來(lái)的lib目錄移到WEB-INF目錄下,刷新一下項(xiàng)目就可以看到生成的代碼了。
D. 根據(jù)wsdl文件生成服務(wù)端java代碼
使用Ctrl + N 打開(kāi)Axis Wizards中的Axis2 Code Generator
使用默認(rèn)的第一項(xiàng),下一步
選擇生成的hello.wsdl文件D:\oksonic\workspace\hello\src\hello.wsdl,下一步
參照下圖進(jìn)行配置
下一步
E. 修改HelloSkeleton代碼,內(nèi)容如下:
package org.example.www.hello; public class HelloSkeleton { public org.example.www.hello.HelloResponse hello( org.example.www.hello.Hello param0) { try { HelloResponse response = new HelloResponse(); response.setOut(param0.getIn() + "歡迎你的到來(lái)!"); return response; } catch (UnsupportedOperationException e) { throw e; } } }
F. 發(fā)布項(xiàng)目
1. 打開(kāi)Axis2的向?qū)Вx擇Axis2 Service Archiver
2. 選擇class文件所在的目錄,如:D:\oksonic\workspace\hello\WebRoot\WEB-INF\classes
3. 選擇項(xiàng)目中resources目錄下的hello.wsdl文件如:D:\oksonic\workspace\hello\resources\hello.wsdl
4. 跳過(guò)一下步,這里選擇resources目錄下的service.xml文件如:D:\oksonic\workspace\hello\resources\services.xml
5. 這一步是輸出一個(gè)jar文件或是aar都可以,上面是輸出路徑,下面是文件名,如:C:\Documents and Settings\Administrator\桌面,Hello.jar
6. 將axis2.1.1 .war文件拷貝到tomcat安裝路徑下的webapps目錄下,這里可以選擇啟動(dòng)tomcat來(lái)解開(kāi)axis2.1.1.war,也可以直接將文件改名為zip后解壓,解壓后的文件夾名稱為axis2,然后將Hello.jar拷貝到asix2.1.1/WEB-INF/service目錄下
G. 測(cè)試
啟動(dòng)tomcat服務(wù),打開(kāi)IE在地址欄中輸入http://localhost/axis2,進(jìn)入頁(yè)面后點(diǎn)擊Services鏈接,在下一個(gè)頁(yè)面中將會(huì)看到hello服務(wù)的鏈接,點(diǎn)開(kāi)此鏈接就可以看到服務(wù)信息了。
接下來(lái)使用客戶端測(cè)試代碼進(jìn)行測(cè)試,修改HelloTest.java文件中的testHello方法,內(nèi)容如下:
public void testHello() throws java.lang.Exception { String url = "http://localhost/axis2/services/Hello"; HelloStub stub = new HelloStub(url); Hello hello = (Hello) getTestObject(Hello.class); hello.setIn("oksonic"); System.out.println(stub.Hello(hello).getOut()); assertNotNull(stub.Hello(hello)); }
這里使用到了Junit,所以還需要將Junit的jar包加到項(xiàng)目中
為了制作更多更好的錄像教程,希望大家多多提供相關(guān)資料!!!
聯(lián)系方法:
http://www.oksonic.cn
Email: oksonic@tom.com
QQ: 71279650
posted @ 2007-04-30 09:06 oksonic 閱讀(8533) | 評(píng)論 (4) | 編輯 收藏
posted @ 2007-04-28 16:00 oksonic 閱讀(13482) | 評(píng)論 (13) | 編輯 收藏
速動(dòng)畫(huà)教程第二十九集
單點(diǎn)登錄CAS的使用方法
下載地址: http://www.oksonic.cn
一.環(huán)境
a) Windows 2003 sp1
b) JDK
c) Tomcat
d) MySql5.0
二.準(zhǔn)備
a) cas-server-
b) cas-client-java-
c) 安裝完jdk和jre后,需要配置JAVA_HOME和PATH=%JAVA_HOME%\bin
三.步驟
a) 配置Tomcat使用SSL安全認(rèn)證
i. 使用命令提示符進(jìn)入到Tomcat安裝目錄
ii. 生成服務(wù)端密匙,執(zhí)行以下命令
keytool -genkey -alias 別名keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore
例:keytool -genkey -alias casserver -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore
運(yùn)行后出現(xiàn)提示信息:
輸入keystore密碼:changeit 這里也填入主機(jī)名
您的名字與姓氏是什么?
[Unknown]: localhost 這里一定要填寫(xiě)正確的主機(jī)名
您的組織單位名稱是什么?
[Unknown]: oksonic
您的組織名稱是什么?
[Unknown]: oksonic
您所在的城市或區(qū)域名稱是什么?
[Unknown]:
您所在的州或省份名稱是什么?
[Unknown]:
該單位的兩字母國(guó)家代碼是什么
[Unknown]: cn
CN=localhost, OU=oksonic, O=oksonic, L=kunming, ST=yunnan, C=cn 正確嗎?
[否]: y
完成后會(huì)在Tomcat目錄生成一個(gè)名為casserver的文件
iii. 生成服務(wù)端證書(shū),執(zhí)行以下命令
keytool -export -alias casserver -storepass changeit -file server.cer -keystore server.keystore
命令執(zhí)行后生成一個(gè)server.cer的證書(shū)文件
iv. 生成客戶端密匙,執(zhí)行以下命令
keytool -genkey -alias casclient -keyalg RSA -keypass changeit -storepass changeit -keystore client.keystore
v. 生成客戶端證書(shū),執(zhí)行以下命令
keytool -export -alias casclient -storepass changeit -file client.cer -keystore client.keystore
命令執(zhí)行后生成一個(gè)server.cer的證書(shū)文件
vi. 導(dǎo)入證書(shū)文件到cacerts 文件中,執(zhí)行以下命令
keytool -import -trustcacerts -alias server -file server.cer -keystore cacerts -storepass changeit
keytool -import -trustcacerts -alias client -file client.cer -keystore cacerts -storepass changeit
把cacerts文件,拷貝到<JAVA_HOME>\jre\lib\security目錄下
vii. 拷貝cas-server-
viii. 修改Tomcat的配置文件server.xml把以下補(bǔ)注釋的內(nèi)容打開(kāi)
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
加入紅字部份后的內(nèi)容如下:
<Connector port="8443" maxHttpHeaderSize="8192"
keystorePass="changeit" keystoreFile="/server.keystore"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
b) 配置客戶端應(yīng)用
i. 使用Tomcat的例子jsp-examples來(lái)做客戶端
ii. 打開(kāi)項(xiàng)目中的web.xml文件,加入以下配置信息
<filter>
<filter-name>CASFilter</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/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/cas/proxyValidate
</param-value>
</init-param>
<init-param>
<param-name>
edu.yale.its.tp.cas.client.filter.serverName
</param-name>
<param-value>localhost:8080</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/ *</url-pattern>
</filter-mapping>
拷貝cas-client-java-
現(xiàn)在可以啟動(dòng)Tomcat來(lái)測(cè)試一下是否能夠進(jìn)入到登錄頁(yè)
c) 配置CAS使用數(shù)據(jù)庫(kù)進(jìn)行驗(yàn)證
i. 在MySql中的Test庫(kù)中新建app_user表
CREATE TABLE `app_user` (
`username` varchar(30) NOT NULL default '',
`password` varchar(45) NOT NULL default '',
PRIMARY KEY (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
添加以下用戶:
INSERT INTO `app_user` (`username`,`password`) VALUES
('oksonic','oksonic'),
('oksonic1','oksonic1');
ii. 修改cas項(xiàng)目中的deployerConfigContext.xml文件
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
注釋掉該行,在其下加入:
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="sql" value="select password from app_user where username=?" />
<property name="dataSource" ref="dataSource" />
</bean>
并添加一個(gè)bean:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
<property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
<property name="url"><value>jdbc:mysql://localhost:3306/test</value></property>
<property name="username"><value>test</value></property>
<property name="password"><value>test</value></property>
</bean>
拷貝cas-server-jdbc-
posted @ 2007-04-02 01:36 oksonic 閱讀(10633) | 評(píng)論 (13) | 編輯 收藏
posted @ 2007-03-02 16:16 oksonic 閱讀(3709) | 評(píng)論 (11) | 編輯 收藏
posted @ 2007-03-01 00:19 oksonic 閱讀(5821) | 評(píng)論 (15) | 編輯 收藏
posted @ 2007-02-10 09:56 oksonic 閱讀(9346) | 評(píng)論 (9) | 編輯 收藏