1ã€?/span>首先下è²apache2.2 下è²åœ°å€åQ?/font>http://mirrors.sohu.com/apache/httpd-2.2.16.tar.gz
2ã€?/span>ç„¶åŽä¸‹è²SVN
a) 包:subversion-deps-1.6.12.tar.gz
i. 地å€åQ?font face="Times New Roman">http://subversion.tigris.org/downloads/subversion-deps-1.6.12.tar.gz
b) susubversion-1.6.12.tar.gz 地å€åQ?/font>
i. http://subversion.tigris.org/downloads/subversion-1.6.12.tar.gz
3ã€?/span>ç„¶åŽè§£æžApache2åQŒå®‰è£?/font>
4�/span>tar -zxvf httpd-2.2.16.tar.gz
5�/span>安装Apache
a) ./configure -prefix=/opt/web/apache2 --enable-mods-shared=all --enable-so
b) Make
c) Make install
6ã€?/span>‹‚€æŸ?font face="Times New Roman">APACHE是å¦å®‰è£…æˆåŠŸåQ?/font>
å¯åЍapache:/opt/web/apache2/bin/apachectl start
7�/span>安装Svn
8ã€?/span>首先解压åQ?nbsp;tar -zxvf subversion-deps-1.6.12.tar.gz
9ã€?/span>ç„¶åŽè§£åŽ‹åQ?font face="Times New Roman">tar -zxvf susubversion-1.6.12.tar.gz
10ã€?/span>安装命ä×oåQ?/span>
a) ./configure --prefix=/opt/web/subversion --with-apxs=/opt/web/apache2/bin/apxs --with-apr=/opt/web/httpd-2.2.16/srclib/apr --with-apr-util=/opt/web/httpd-2.2.16/srclib/apr-util
11�/font>make make install
LoadModule caucho_module \ <installdir>/resin-3.1.x/win32/apache-2.0/mod_caucho.dll ResinConfigServer localhost 6802 <Location /caucho-status> SetHandler caucho-status </Location>
1ã€é¦–先检查一下linux下是有å˜åœ¨ä¸€ä¸‹èÊYä»Óž¼Œå¦‚æžœä¸å˜åœ¨ï¼Œå¿…é¡»ž®†è¿™äº›èÊY件安è£?br />
rpm -q compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc- gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
2ã€ä»¥rootæ–¹å¼ç™»é™†åQŒä¿®æ”?etc/sysctl.confåQŒåœ¨æ–‡äšgä¸å¢žåР䏀䏋傿•?br />
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range =1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default =262144
net.core.wmem_max =262144
ç„¶åŽåˆ›å¾æ•°æ®åº“的所有者:
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba Oracle 创å¾ç”¨æˆ·Oracle
passwd OracleåQˆä¿®æ”¹Oracle的密ç )
修改Oracle用户的é™åˆ?br />
cd /etc/security
vi limits.conf
在该文äšgå¢žåŠ ä¸€ä¸‹å†…å®?br />
Oracle soft nproc 2047
Oracle hard nproc 16384
Oracle soft nofile 1024
Oracle hard nofile 65536
在文ä»?etc/pam.d/loginæ–‡äšgå¢žåŠ ä¸€ä¸‹å†…å®?br />
session required /lib/security/pam_limits.so
session required pam_limits.so
在文ä»?etc/profileå¢žåŠ ä¸€ä¸‹å†…å®?/p>
if [$USER = "Oracle"] ; then
if [ $SHELL = " /bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65535
else
ulimit -u 16384 -n 65536
fi
fi
创å¾å®‰è£…目录åQ?br />
mkdir -p /opt/app/oracle
chown -P Oracle:oinstall /opt/app
chmod -R 755 /opt/app
执行命ä×oåQŒè§£åŽ‹å®‰è£…æ–‡ä»?åQšunzip linux_11gR1_database.zip
然厘q›å…¥è§£åŽ‹åŽçš„目录åQŒæ‰§è¡?br />
$ ./runInstaller
首先我们看看Directory 的类
public abstract class Directory {
volatile boolean isOpen = true;
/*** æŒæœ‰ä¸€ä¸ªLockFactory的实例(实现é”定˜q™ä¸ªç›®å½•实例åQ?/
protected LockFactory lockFactory;
/**˜q”回该目录下的所有文件数¾l?如果˜q™ä¸ªç›®å½•下没有文件å˜åœ¨ï¼Œæˆ–者å˜åœ¨æƒé™é—®é¢˜ä¸èƒ½è®¿é—®ï¼Œè¯¥æ–¹æ³•å¯èƒ½è¿”回Null*/
public abstract String[] list() throws IOException;
/** * ˜q”回指定åç§°çš„æ–‡ä»¶æ˜¯ä¸æ˜¯å˜åœ¨ */
public abstract boolean fileExists(String name)
throws IOException;
/**˜q”回指定å称的文件最åŽä¿®æ”¹çš„æ—‰™—´
public abstract long fileModified(String name) throws IOException;
/**讄¡½®æŒ‡å®šæ–‡äšgå的文äšg最åŽçš„修改旉™—´ä¸ºå½“剿—¶é—?/
public abstract void touchFile(String name) throws IOException;
/**åˆ é™¤æŒ‡å®šæ–‡äšgã€?*/
public abstract void deleteFile(String name)throws IOException;
/**˜q”回指定文äšg的长度ã€?*/
public abstract long fileLength(String name) throws IOException;
/** 在当å‰ç›®å½•下使用¾l™å®šçš„å¿U°åˆ›å»ÞZ¸€ä¸ªç©ºçš„æ–‡ä»¶ã€‚åÆˆä¸”è¿”å›žä¸€ä¸ªæµæ¥å†™è¯¥æ–‡ä»¶ã€?/
public abstract IndexOutput createOutput(String name) throws IOException;
/** * Luceneä½¿ç”¨è¯¥æ–¹æ³•ç¡®ä¿æ‰€æœ‰çš„针对该文件的写æ“作都会å˜å‚¨åˆ°Indexã€‚åÆˆä¸”é˜»æ¢machine/OSå‘生故障 ç ´å该indexã€?/
public void sync(String name) throws IOException {}
/**获å–å·²ç»å˜åœ¨çš„一个文件的IndexInput‹¹æ“作该文äšgã€?*/
public abstract IndexInput openInput(String name) throws IOException;
/** ˜q”回已ç»å˜åœ¨çš„一个文件ã€åƈ且ä‹É用指定大ž®çš„¾~“冲的IndexInputåQŒä½†æ˜¯å½“å‰ç›®å½•也å¯èƒ½å¿½ç•¥è¯¥ç¼“å†²æ± çš„å¤§ž®ï¼Œ
* 当å‰ä¸»è¦æ˜¯è€ƒè™‘CompoundFileReaderå’ŒFSDirectory对于‹Æ¡å‚数的需求ã€?/
public IndexInput openInput(String name, int bufferSize) throws IOException {
return openInput(name);
}
/** 创å¾ä¸€ä¸ªæŒ‡å®šå¿U°çš„é”?
public Lock makeLock(String name) {
return lockFactory.makeLock(name);
}
/**
* 清除指定的é”å®šï¼ˆå¼ø™¡Œè§£é”å’Œåˆ é™¤ï¼‰˜q™ä¸ä»…è¦æ±‚在˜q™ä¸ªæ—¶å€™å½“å‰çš„é”一定ä¸åœ¨ä‹É用ã€?*/
public void clearLock(String name) throws IOException {
if (lockFactory != null) {
lockFactory.clearLock(name);
}
}
/** ¾l“柘q™ä¸ªstore. */
public abstract void close() throws IOException;
/**讄¡½®LockFactoryåQŒæ¤ç›®å½•实例应ä‹Éå…‰™”定执行。æ¯ä¸ªLockFactory实例åªç”¨äºŽä¸€ä¸ªç›®å½•(å»I¼Œä¸è¦å…Þq”¨ä¸€ä¸ªå®žä¾‹åœ¨å¤šä¸ªç›®å½•åQ?*/
public void setLockFactory(LockFactory lockFactory) {
this.lockFactory = lockFactory;
lockFactory.setLockPrefix(this.getLockID());
}
/** 获得LockFactoryåQŒæ¤ç›®å½•例实例ä‹É用其é”定执行。请注æ„åQŒè¿™å¯èƒ½æ˜¯æ— 效的目录执行åQŒæä¾›è‡ªå·±é”执行*/
public LockFactory getLockFactory() {
return this.lockFactory;
}
/**˜q‡åŽ»é”实例的唯一表示ID的嗽W¦ä¸²æè¿°*/
public String getLockID() {
return this.toString();
}
/**// 拯‚´æºç›®å½•src下的文äšgåQŒå¤åˆ¶åˆ°ç›®çš„目录dest下é¢åQŒæ‹·è´å®ŒæˆåŽå…³é—æºç›®å½•src*/
public static void copy(Directory src, Directory dest, boolean closeDirSrc) throws IOException {
final String[] files = src.list();
if (files == null)
throw new IOException("cannot read directory " + src + ": list() returned null");
byte[] buf = new byte[BufferedIndexOutput.BUFFER_SIZE];
for (int i = 0; i < files.length; i++) {
IndexOutput os = null;
IndexInput is = null;
try {
// create file in dest directory
os = dest.createOutput(files[i]);
// read current file
is = src.openInput(files[i]);
// and copy to dest directory
long len = is.length();
long readCount = 0;
while (readCount < len) {
int toRead = readCount + BufferedIndexOutput.BUFFER_SIZE > len ? (int)(len - readCount) : BufferedIndexOutput.BUFFER_SIZE;
is.readBytes(buf, 0, toRead);
os.writeBytes(buf, toRead);
readCount += toRead;
}
} finally {
// graceful cleanup
try {
if (os != null)
os.close();
} finally {
if (is != null)
is.close();
}
}
}
if(closeDirSrc)
src.close();
}
从Directory抽象¾cÈš„定义åQŒæˆ‘们å¯ä»¥å¾—åˆ°å¦‚ä¸‹å‡ ç‚¹ï¼š
1ã€ç®¡ç†é”工厂åŠå…¶é”实例;
2ã€ç®¡ç†Directoryç›®å½•å®žä¾‹çš„åŸºæœ¬å±žæ€§ï¼Œä¸»è¦æ˜¯é€šè¿‡æ–‡äšgåç§°˜q›è¡Œ½Ž¡ç†åQ?br />
3ã€ç®¡ç†ä¸Žæ“作该目录相关的一些æµå¯¹è±¡åQ?br />
4ã€ç®¡ç†çƒ¦å¼•文件的拯‚´ã€?br />
˜q™ä¸ªæ˜¯éœ€è¦æ›¿æ¢çš„内容<a href=../../08/19/10483.html>下一½‹‡ï¼š PHP+MySQL应用ä¸ä‹É用XOR˜qç®—åŠ å¯†½Ž—法</a>
ä¸çŸ¥é“æ˜¯ä»€ä¹ˆåŽŸå› ï¼Œreplassall竟然ä¸èƒ½æ›¿æ¢åQŒæ˜¯æ‰¾ä¸åˆ°æºé‡Œçš„æ•°æ®åQŒè¿˜æ˜¯å…¶ä»–有问题呢?其他™åµé¢éƒ½èƒ½æ›¿æ¢æŽ‰ï¼Œž®±æ˜¯æœ?-2个页é¢ä¸èƒ½æ›¿æ¢ï¼Œéƒé—·ã€‚æ˜¯ä¸æ˜¯å—符¾~–ç 的问题?有è°çŸ¥é“å—?误‚µæ•?br />
î‚‘Ö®žçްé™åˆ¶è¾“入大ã€å°å†™è‹±æ–‡ï¼Œæ•°å—åQŒæÕQç‚¹å°æ•ŽÍ¼Œæ—¥æœŸåQŒä¸æ–‡ï¼Œéƒ¨åˆ†è‹±æ–‡åQŒéƒ¨åˆ†ä¸æ–‡ç‰ä¼—å¤šåŠŸèƒ½ã€‚ç›´æŽ¥åŠ å…¥åˆ°html代ç ä¸å³å¯ä‹É用ã€?/p>
<script>
function regInput(obj, reg, inputStr)
{
var docSel = documentåQŽselection.createRange()
if (docSel.parentElement().tagName != "INPUT") return false
oSel = docSel.duplicate()
oSel.text = ""
var srcRange = obj.createTextRange()
oSel.setEndPoint("StartToStart", srcRange)
var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length)
return reg.test(str)
}
</script>
ž®å†™è‹±æ–‡åQ?lt;xmp style= "display:inline"> </xmp>
<input onkeypress = "return regInput(this, /^[a-z]*$/, String.fromCharCode(event.keyCode))"
onpaste = "return regInput(this, /^[a-z]*$/, window.clipboardData.getData('Text'))"
ondrop = "return regInput(this, /^[a-z]*$/, event.dataTransfer.getData('Text'))"
style="ime-mode:Disabled"><br>
大写英文åQ?lt;xmp style= "display:inline"> </xmp>
<input onkeypress = "return regInput(this, /^[A-Z]*$/, String.fromCharCode(event.keyCode))"
onpaste = "return regInput(this, /^[A-Z]*$/, window.clipboardData.getData('Text'))"
ondrop = "return regInput(this, /^[A-Z]*$/, event.dataTransfer.getData('Text'))"
style="ime-mode:Disabled">
<br>
ä»ÀL„æ•°å—åQ?lt;xmp style="display:inline"> </xmp>
<input onkeypress = "return regInput(this, /^[0-9]*$/, String.fromCharCode(event.keyCode))"
onpaste = "return regInput(this, /^[0-9]*$/, window.clipboardData.getData('Text'))"
ondrop = "return regInput(this, /^[0-9]*$/, event.dataTransfer.getData('Text'))"
style="ime-mode:Disabled"><br>
é™?ä½å°æ•ŽÍ¼š<xmp style="display:inline"> </xmp>
<input onkeypress = "return regInput(this, /^\d*\.?\d{0,2}$/,
String.fromCharCode(event.keyCode))"
onpaste = "return regInput(this, /^\d*\.?\d{0,2}$/,
window.clipboardData.getData('Text'))"
ondrop = "return regInput(this, /^\d*\.?\d{0,2}$/,
event.dataTransfer.getData('Text'))"
style="ime-mode:Disabled">
� 123.12<br>
日  期:<xmp style="display:inline"> </xmp>
<input onkeypress = "return regInput(this, /^\d{1,4}
([-\/](\d{1,2}([-\/](\d{1,2})?)?)?)?$/,
String.fromCharCode(event.keyCode))"
onpaste = "return regInput(this, /^\d{1,4}([-\/](\d{1,2}
([-\/](\d{1,2})?)?)?)?$/,
window.clipboardData.getData('Text'))"
ondrop = "return regInput(this, /^\d{1,4}([-\/](\d{1,2}
([-\/](\d{1,2})?)?)?)?$/,
event.dataTransfer.getData('Text'))"
style="ime-mode:Disabled">
� 2002-9-29<br>
ä»ÀL„䏿–‡åQ?lt;xmp style="display:inline"> </xmp>
<input onkeypress = "return regInput(this, /^$/,
String.fromCharCode(event.keyCode))"
onpaste = "return regInput(this, /^[\u4E00-\u9FA5]*$/,
window.clipboardData.getData('Text'))"
ondrop = "return regInput(this, /^[\u4E00-\u9FA5]*$/,
event.dataTransfer.getData('Text'))"><br>
部分英文åQ?lt;xmp style="display:inline"> </xmp>
<input onkeypress = "return regInput(this, /^[a-e]*$/,
String.fromCharCode(event.keyCode))"
onpaste = "return regInput(this, /^[a-e]*$/,
window.clipboardData.getData('Text'))"
ondrop = "return regInput(this, /^[a-e]*$/,
event.dataTransfer.getData('Text'))"
style="ime-mode:Disabled">
范围: a,b,c,d,e<br>
éƒ¨åˆ†ä¸æ–‡åQ?lt;xmp style="display:inline"> </xmp>
<script language=javascript>
function checkChinese(oldLength, obj)
{
var oTR = window.documentåQŽselection.createRange()
var reg = /[^一二三四五å…七八ä¹å]/g
oTR.moveStart("character", -1*(obj.value.length-oldLength))
oTR.text = oTR.text.replace(reg, "")
}
</script>
<input onkeypress="return false" onkeydown=
"setTimeout('checkChinese('+this.value.length+','+this.uniqueID+')',
1)"
onpaste = "return regInput(this, /^[一二三四五å…七八ä¹å]*$/,
window.clipboardData.getData('Text'))"
ondrop = "return regInput(this, /^[一二三四五å…七八ä¹å]*$/,
event.dataTransfer.getData('Text'))">
范围: 一二三四五å…七八ä¹å?lt;br>
2.ä¸èƒ½å±•å¼€å³é”®åQŒä¸èƒ½å…¨é€‰ï¼Œä¸èƒ½å¤åˆ¶çš„实çŽ?
<body oncontextmenu="window.event.returnvalue=false"
onkeypress="window.event.returnvalue=false"
onkeydown="window.event.returnvalue=false"
onkeyup="window.event.returnvalue=false"
ondragstart="window.event.returnvalue=false"
onselectstart="event.returnvalue=false">
...
</body>
3.¼›æ¢™åµé¢æ£æ–‡å†…容被选å–
<body oncontextmenu="return false" ondragstart="return false"
onselectstart ="return false" onselect="documentåQŽselection.empty()"
oncopy="documentåQŽselection.empty()" onbeforecopy="return false"onmouseup="documentåQŽselection.empty()">
4.é¿å…别äh把网™å‰|”¾åœ¨æ¡†æž¶ä¸
<script language=“javascript”><!--if (self!=top){top.location=self.location;}-->< /script>
5.¼›ç¤ºæŸ¥çœ‹æºä»£ç ?
<frameset>
<frame src="ä½ è¦ä¿å¯†çš„æ–‡ä»¶çš„URL">
</frameset>
6.å…³é—输入æ³?
<input style="ime-mode:disabled">
7.¼›æ¢å›„¡‰‡ä¸‹è²
在这里的最åŽåŠ å…¥ï¼š
oncontextmenu="return false" ondragstart="return false" onselectstart="return
false" scroll="auto"
8.¼›æ¢¾~“å˜
在HEADé‡ŒåŠ å…¥ï¼š
<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">
webServiceä¸»è¦æ˜¯å¯ä»¥è§£å†³ç«™ç‚šw—´çš„æ•°æ®å…±äº«é—®é¢˜ï¼ŒæŠŠå¤æ‚的业务æ–ÒŽ³•åQŒå°è£…在被调用的站点上é¢åQŒè¿™æ ·ä¸½Ž¡æ˜¯WEB站点和其他的应用½E‹åºåQˆå½“ç„¶è¦èƒ½ä¿è¯ä¸Š¾|‘)都å¯ä»¥è®¿é—®åˆ°æš´éœ²çš„æ–¹æ³•ã€?/p>
myeclipse5.1支æŒxfire支æŒçš„éžå¸¸æ£’。这里讲解一个简å•的例ååQ?
æ¤æ–‡ç« äØ“å¼•ç”¨æ–‡ç« åQŒä»…åšä¿ç•™ï¼Œä¾›å¦ä¹ å‚考ä‹Éç”?
点击finish之åŽåQŒmyeclipseè‡ªåŠ¨å¸®ä½ ç”Ÿæˆservices.xml以åŠweb应用目录¾l“æž„åQŒå…¶ä¸çš„services.xmlæ˜¯ä½ å¯¼å‡ºæœåŠ¡çš„é…¾|®æ–‡ä»Óž¼Œæ³¨æ„在WEB-INF/web.xmlæ–‡äšgä¸é…¾|®äº†xfire自己çš?/p>
servlet.
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
2.接下æ¥ï¼ŒçŽ°åœ¨¾~–写è¦å¯¼å‡ºçš„pojo¾c»ï¼Œé¦–先是接å£ï¼š
˜q‡ç¨‹åQšFile>New>Other>MyEclipse>Web Service
选择åQšCreate web service from Java beanåQŒæŠŠCreate new javabean也勾ä¸?br />
3ã€‚åœ¨å¯ÆDˆª™åµé¢ä¸ï¼Œè¾“å…¥
web service name: HelloWorldTest
java package : services
services Interface : IHelloWorldTest
services impl.class :HelloWorldTestImpl
其他的默认,点finish
最åŽå¯ä»¥çœ‹åˆ°Web Services 下é¢çš„services.xml的内容如ä¸?br />
<beans xmlns="
<service>
<name>HelloWorldTest</name>
<serviceClass>services.IHelloWorldTest</serviceClass>
<implementationClass>
services.HelloWorldTestImpl
</implementationClass>
<style>wrapped</style>
<use>literal</use>
<scope>application</scope>
</service>
</beans>
4。services包ä¸çš„æ–‡ä»Óž¼š
IHelloWorldTest.java
-----------------------------------------------
package services;
//Generated by MyEclipse
public interface IHelloWorldTest {
public String sayHello(String message);
}
----------------------------------------------------------
HelloWorldTestImpl.java
----------------------------------------------------
package services;
//Generated by MyEclipse
public class HelloWorldTestImpl implements IHelloWorldTest {
public String sayHello(String message) {
return "Hello,"+message;
}
}
------------------------------------------------------------
到æ¤ä¸ºæ¢webServices¾~–ç 工作完æˆåQŒçŽ°åœ¨å¼€å§‹éƒ¨¾|²åˆ°tomcat˜q™é‡Œçœç•¥ã€?/p>
部çÖv好åŽå¯ä»¥‹¹‹è¯•下:
http://localhost:8080/HelloWorld/services/HelloWorldTest?WSDL
æ–°å¾å·¥ç¨‹useWebServiceåQŒåƈ且å¾ç«‹clientå’ŒservicesåŒ?br /> bulid pathä¸å¯¼å…¥ï¼ŒXFire 1.1 core libraries å’ŒXFire 1.1 HTTP client libraries.
SayHello.java
----------------------------------------
package client;
import java.net.MalformedURLException;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import services.IHelloWorldTest;
public class SayHello {
public String say(String name)
{
String result="";
Service srvcModel = new ObjectServiceFactory().create(IHelloWorldTest.class);
XFireProxyFactory factory =
new XFireProxyFactory(XFireFactory.newInstance().getXFire());
String helloWorldURL = "http://localhost:8080/HelloWorld/services/HelloWorldTest";
try {
IHelloWorldTest srvc = (IHelloWorldTest)factory.create(srvcModel, helloWorldURL);
result = srvc.sayHello(name);
} catch (MalformedURLException e) {
e.printStackTrace();
}finally{
return result;}
}
}
--------------------------------------------------------------
IHelloWorldTest .java
---------------------------------------------------------------
package services;
public interface IHelloWorldTest {
public String sayHello(String message);
}
-----------------------------------------------------------------
创å¾index.jspåQŒbody部分
-----------------------
<form name="form1" action="say.jsp" method="POST">
您的大ååQ?lt;input name="userName" type="text"/> <input value="æäº¤" type="submit"/>
</form>
-------------------------------
创å¾say.jsp,body部分
----------------------------------------------------------------
<%String name=(String)request.getParameter("userName");
String result=new SayHello().say(name);
%>
webService˜qœç¨‹è°ƒç”¨¾l“æžœåQ?<%=result %>
------------------------------------------------------------------------
˜q行下测试ï¼OK
å—符 | 转义åŽçš„å—符 | ||
---|---|---|---|
HTMLå—符 | å—符¾~–ç | ||
and(å’? | & | & | & |
å•引å?/td> | ' | ' | ' |
åŒå¼•å?/td> | " | " | " |
大于å?/td> | > | > | > |
ž®äºŽå?/td> | < | < | < |
web.xml
<?xml version="1.0" encoding="GB18030"?>
<web-app version="2.4"
xmlns=" xmlns:xsi=" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
<filter>
<filter-name>webwork</filter-name>
<filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
xwork.xml
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
"
import com.opensymphony.xwork.ActionSupport;
/**
* @author $author
*/
@SuppressWarnings("serial")
public class HelloWorld extends ActionSupport{
private String message;
private String name;
/**
* @see com.opensymphony.xwork.Action#execute()
*/
public String execute() throws Exception
{
if(name==null||name.equals("")||name.equals("world")){
addFieldError("name","blank names or names of 'world' are not allowed!");
return INPUT;
}
message ="hello "+name+"!\n";
message+="this is the time is: "+System.currentTimeMillis();
return SUCCESS;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the message
*/
public String getMessage() {
return message;
}
}
出现˜q™ä¸ªé—®é¢˜åQŒæ˜¯å› äØ“ä½ æ²¡æœ‰æ£¼‹®é…¾|?Hibernate internal session context management .
String s = new String("The Java platform is the ideal platform for network computing");
StringTokenizer st = new StringTokenizer(s);
System.out.println( "Token Total: " + st.countTokens() );
while( st.hasMoreElements() ){
System.out.println( st.nextToken() );
           }
¾l“果为:
Token Total: 10
The
Java
platform
is
the
ideal
platform
for
network
computing
String s = new String("The=Java=platform=is=the=ideal=platform=for=network=computing");
StringTokenizer st = new StringTokenizer(s,"=",true);
System.out.println( "Token Total: " + st.countTokens() );
while( st.hasMoreElements() ){
System.out.println( st.nextToken() );
}
¾l“果为:
Token Total: 19
The
=
Java
=
platform
=
is
=
the
=
ideal
=
platform
=
for
=
network
=
computing
String question = new String("1+1=");
int answer = 3;
boolean result = (1+1==3);
StringBuffer sb = new StringBuffer();
sb.append(question);
sb.append(answer);
sb.append('\t');
sb.append(result);
System.out.println(sb);
¾l“果为:
1+1=3 false
StringBuffer sb1 = new StringBuffer(5);
StringBuffer sb2 = new StringBuffer(5);
sb1.ensureCapacity(6);
sb2.ensureCapacity(100);
System.out.println( "sb1.Capacity: " + sb1.capacity() );
System.out.println( "sb2.Capacity: " + sb2.capacity() );
¾l“果为:
sb1.Capacity: 12
sb2.Capacity: 100
StringBuffer sb = new StringBuffer("I love her!");
char[] i = {'I',' ','l','o','v','e',' ','y','o','u'};
sb.getChars(7,10,i,7);
System.out.println( "sb: " + sb );
¾l“果为:sb: I love her!
StringBuffer sb = new StringBuffer("0123456789");
System.out.println( "sb.reverse(): " + sb.reverse() );
¾l“果为:sb.reverse(): 9876543210
StringBuffer sb = new StringBuffer("0123456789");
sb.setLength(5);
System.out.println( "sb: " + sb );
¾l“果为:sb: 01234
log4j.rootLogger=INFO, A1,A4
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.Threshold=ERROR
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%p [%t] %c{2} (%M:%L) - %m%n
log4j.appender.A4=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A4.file=D:\\Java\\logs\\yeming.log
log4j.appender.A4.Encoding=GBK
log4j.appender.A4.DatePattern='.'yyyy-MM-dd
log4j.appender.A4.layout=org.apache.log4j.PatternLayout
log4j.appender.A4.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
使用代ç åQ?br />package com.javawoker.yeming.jiemie.database;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import org.apache.log4j.Logger;
/**
 *@author å¶æ˜Ž ---guming123416@gmail.com
 *@version $Id: v 1.01 2006/06/38 16:09:14 teodord Exp $
 */
public class Pubconn {
Â
 /*
 * 创徿U有å˜é‡conn为数æ®åº“˜qžæŽ¥å¯¹è±¡ä¸Connection
 * 创徿U有å˜é‡dsye为数æ®åº“˜qžæŽ¥æ± çš„DataSource
 */
Â
 private Connection conn;
 private DataSource dsye;
 private static Logger log=Logger.getLogger(Pubconn.class);
 /*
 * åˆ›å¾æž„é€ å‡½æ•°PubconnåQŒåœ¨å»ºç«‹classä¸åŠ è½½æ•°æ®æºçš„InitialContext
 */
 public Pubconn()
 {
  try{
   Context initCtx=new InitialContext();
   if(initCtx==null)
   {
    throw new Exception("ä¸èƒ½åŠ è²æ–‡äšgContext");
   }
   dsye=(javax.sql.DataSource)initCtx.lookup("jdbc/yeming");
  }catch(Exception ex)
  {
   ex.printStackTrace();
   log.error("åœ¨åŠ æ ½æ•°æ®åº“˜qžæŽ¥æ± æ—¶é—´å‘生错è¯?+ex.getMessage());
  }
 }
 /*
 * ä»Žè¿žæŽ¥æ± ä¸å–å‡ÞZ¸€æ¡è¿žæŽ¥å˜é‡?br /> *
 */
 public Connection getConn()
 {
  try{
   conn=dsye.getConnection();
  }catch(SQLException ex)
  {
   ex.printStackTrace();
   log.error("获得˜qžæŽ¥å¯¹è±¡CONNæ—‰™—´å‘生错误"+ex.getMessage());
  }
  return conn;
 }
 /*
 * 关闿•°æ®åº“连接,释放资æº
 */
 public void closeConn(Connection conn)
 {
  try{
   if(conn!=null)
   {
    conn.close();
    conn=null;
   }
  }catch(SQLException ex)
  {
   ex.printStackTrace();
   log.error("å…³é—CONNæ—‰™—´å‘生错误"+ex.getMessage());
  }
 }
}