锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲午夜精品在线,久久精品国产亚洲5555,国产v亚洲v天堂无码网站http://www.tkk7.com/shmily432685/category/4001.htmlzh-cnMon, 08 Oct 2007 04:10:08 GMTMon, 08 Oct 2007 04:10:08 GMT60浣跨敤Spring閭歡鎶借薄灞傚彂閫佺畝鍗曢偖浠?閫氳繃鑷繁緙栧啓錛屾洿鏂板悗鍙戝竷)1http://www.tkk7.com/shmily432685/archive/2005/12/30/26041.html闂墊瘬闂墊瘬Fri, 30 Dec 2005 04:49:00 GMThttp://www.tkk7.com/shmily432685/archive/2005/12/30/26041.htmlhttp://www.tkk7.com/shmily432685/comments/26041.htmlhttp://www.tkk7.com/shmily432685/archive/2005/12/30/26041.html#Feedback1http://www.tkk7.com/shmily432685/comments/commentRss/26041.htmlhttp://www.tkk7.com/shmily432685/services/trackbacks/26041.html1銆佹垜浠畾涔変竴涓彂閫侀偖浠剁殑鎺ュ彛:OrderManager.java
1publicinterface聽OrderManager聽extends聽BaseManager{
2/**
3*email,瑕佸彂閫佺殑閭歡鍦板潃;
4*Code:嬋媧葷爜
5*/
6聽聽聽聽聽publicvoid聽placeOrder(String聽email);
7}

2銆佹垜浠渶瑕佸璇ユ帴鍙h繘琛屽疄鐜扮殑鏂規硶:OrderManagerImpl.java

聽1import聽javax.mail.Message;
聽2import聽javax.mail.MessagingException;
聽3import聽javax.mail.internet.InternetAddress;
聽4import聽javax.mail.internet.MimeMessage;
聽5import聽org.springframework.mail.MailException;
聽6import聽org.springframework.mail.javamail.JavaMailSender;
聽7import聽org.springframework.mail.javamail.MimeMessagePreparator;
聽8import聽service.OrderManager;
聽9聽聽
11publicclass聽OrderManagerImpl聽extends聽BaseManagerImpl聽implements聽OrderManager聽{
12
13private聽JavaMailSender聽mailsender;
14private聽MyMailMessage聽message;
15
16
17聽聽聽聽publicvoid聽setMessage(CityMailMessage聽message)
18聽聽聽聽{
19聽聽聽聽聽聽聽聽this.message聽=聽message;
20聽聽聽聽}
21聽聽聽聽publicvoid聽setMailsender(JavaMailSender聽mailsender)聽{
22聽聽聽聽聽聽聽聽this.mailsender聽=聽mailsender;
23聽聽聽聽}
24聽聽聽聽publicvoid聽placeOrder(final聽String聽email)聽{
25聽聽聽聽聽聽聽聽
26
27聽聽聽聽聽聽聽聽MimeMessagePreparator聽preparator聽=new聽MimeMessagePreparator()聽{
28聽聽聽聽聽聽聽聽聽聽聽聽publicvoid聽prepare(MimeMessage聽mimeMessage)聽throws聽MessagingException聽{
29聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽mimeMessage.setRecipient(Message.RecipientType.TO,聽
30聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽new聽InternetAddress(email));
31聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽mimeMessage.setFrom(new聽InternetAddress(message.getFrom()));
32聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽/**杞崲緙栫爜涓篏BK*/
33聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽mimeMessage.setSubject(message.getSubject(),"GBK");
36聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽mimeMessage.setText(email+"<br>"+message.getSubject()+message.getText(),"GBK");
37聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
38聽聽聽聽聽聽聽聽聽聽聽聽}
39聽聽聽聽聽聽聽聽};
40聽聽聽聽聽聽聽聽try{
41聽聽聽聽聽聽聽聽聽聽聽聽mailsender.send(preparator);
42聽聽聽聽聽聽聽聽}
43聽聽聽聽聽聽聽聽catch(MailException聽ex)聽{
44聽聽聽聽聽聽聽聽聽聽聽聽//log聽it聽and聽go聽on
45聽聽聽聽聽聽聽聽聽聽聽聽System.err.println(ex.getMessage());聽聽聽聽聽聽聽聽聽聽聽聽
46聽聽聽聽聽聽聽聽}
47聽聽聽聽}
48}

3銆乻pring閰嶇疆鍙戦乪mail鐨刟pplicationContext-email.xml

聽1<?xml聽version="1.0"聽encoding="UTF-8"?>
聽2<!DOCTYPE聽beans聽PUBLIC聽"-//SPRING//DTD聽BEAN//EN"
聽3聽聽聽聽"http://www.springframework.org/dtd/spring-beans.dtd">
聽4
聽5<beans>
聽6聽聽聽聽<bean聽id="mailSender"class="org.springframework.mail.javamail.JavaMailSenderImpl">
聽7聽聽聽聽聽聽聽聽<property聽name="host">
聽8聽聽聽聽聽聽聽聽聽聽聽聽<value>smtp.163.com</value>
聽9聽聽聽聽聽聽聽聽</property>
10聽聽聽聽聽聽聽聽<property聽name="username">
11聽聽聽聽聽聽聽聽聽聽聽聽<value>username</value>
12聽聽聽聽聽聽聽聽</property>
13聽聽聽聽聽聽聽聽<property聽name="password">
14聽聽聽聽聽聽聽聽聽聽聽聽<value>password</value>
15聽聽聽聽聽聽聽聽</property>
16聽聽聽聽聽聽聽聽<property聽name="javaMailProperties">
17聽聽聽聽聽聽聽聽聽聽聽聽<props>
18聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<prop聽key="mail.smtp.auth">true</prop>
19聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<prop聽key="mail.smtp.timeout">25000</prop>
20聽聽聽聽聽聽聽聽聽聽聽聽</props>
21聽聽聽聽聽聽聽聽</property>
22聽聽聽聽</bean>
23
24聽聽聽聽<bean聽id="mailMessage"class="org.springframework.mail.SimpleMailMessage">
25聽聽聽聽聽聽聽聽<property聽name="from">
26聽聽聽聽聽聽聽聽聽聽聽聽<value>Email</value>
27聽聽聽聽聽聽聽聽</property>
28聽聽聽聽聽聽聽聽<property聽name="subject">
29聽聽聽聽聽聽聽聽聽聽聽聽<value>鏍囬</value>
30聽聽聽聽聽聽聽聽</property>
31聽聽聽聽聽聽聽聽<property聽name="text">
32聽聽聽聽聽聽聽聽聽聽聽聽<value>鍐呭</value>
33聽聽聽聽聽聽聽聽</property>
46聽聽聽聽</bean>
47
48聽聽聽聽<bean聽id="orderManager"class="cn.cityyouth.service.impl.OrderManagerImpl">
49聽聽聽聽聽聽聽聽<property聽name="mailsender">
50聽聽聽聽聽聽聽聽聽聽聽聽<ref聽bean="mailSender"/>
51聽聽聽聽聽聽聽聽</property>
52聽聽聽聽聽聽聽聽<property聽name="message">
53聽聽聽聽聽聽聽聽聽聽聽聽<ref聽bean="mailMessage"/>
54聽聽聽聽聽聽聽聽</property>
55聽聽聽聽</bean>
56
57</beans>

4銆佹渶鍚庨厤緗嚜宸辯殑jsp欏甸潰浠ュ強action

聽1package聽cn.cityyouth.web.action;
聽2
聽3import聽javax.servlet.http.HttpServletRequest;
聽4import聽javax.servlet.http.HttpServletResponse;
聽5import聽org.apache.struts.action.ActionForm;
聽6import聽org.apache.struts.action.ActionForward;
聽7import聽org.apache.struts.action.ActionMapping;
聽8import聽org.apache.struts.action.ActionMessage;
聽9import聽org.apache.struts.action.ActionMessages;
10import聽com.test.service.OrderManager;
11
12publicclass聽SendMailAction聽extends聽BaseAction聽{
13
14聽聽聽聽/**
15聽聽聽聽聽*聽Method聽execute
16聽聽聽聽聽*聽
17聽聽聽聽聽*聽@param聽mapping
18聽聽聽聽聽*聽@param聽form
19聽聽聽聽聽*聽@param聽request
20聽聽聽聽聽*聽@param聽response
21聽聽聽聽聽*聽@return聽ActionForward
22聽聽聽聽聽*/
23聽聽聽聽public聽ActionForward聽execute(ActionMapping聽mapping,聽ActionForm聽form,
24聽聽聽聽聽聽聽聽聽聽聽聽HttpServletRequest聽request,聽HttpServletResponse聽response)聽{
25聽聽聽聽聽聽聽聽OrderManager聽omi=(OrderManager)this.getBean("orderManager");
26聽聽聽聽聽聽聽聽String聽useremail="123@163.com";
27聽聽聽聽聽聽聽聽聽omi.placeOrder(useremail);
28聽聽聽聽聽聽聽}
29}

鍒版鎵鏈夌殑寮鍙戜互緇撴潫銆?br />

Sring閭歡鎶借薄灞傜殑涓昏鍖呮槸錛歰rg.springframework.mail 鍖呫傚畠鍖呭惈鍙玀ailSender涓哄彂閫侀偖浠剁殑鏍稿績鎺ュ彛鍜屽寘鍚畝鍗曢偖浠跺睘鎬т緥濡俧rom,to,cc,subject,text鍙玈impleMailMessage鐨勫煎璞? 榪欎釜鍖呬篃鍖呭惈涓涓鏌ュ紓甯哥殑灞傛錛屽畠鏀寔涓涓洿楂樼駭鍒殑鎶借薄瓚呰繃浣庣駭鍒殑閭歡緋葷粺寮傚父浼撮殢鏍瑰紓甯稿瓨鍦∕ailException. 璇峰弬鑰僇avaDocs涓烘洿澶氱殑淇℃伅鏉傞偖浠跺紓甯稿眰嬈°?/p>

spring in action in action also provides a sub-interface of MailSender for specialized JavaMail features such as MIME messages, namely org.springframework.mail.javamail.JavaMailSender It also provides a callback interface for preparation of JavaMail MIME messages, namely org.springframework.mail.javamail.MimeMessagePreparator

Spring涔熸敮鎸佷竴涓狹ailSender鐨勪笓鐢ㄤ簬JavaMail鐗瑰緛渚嬪MIME娑堟伅瀛愭帴鍙o紝鍛藉悕涓簅rg.springframework.javamail.JavaMailerSener銆傚畠涔熸敮鎸佷竴涓負JavaMail MIME淇℃伅鐨勫噯澶囧洖璋冩帴鍙o紝鍛藉悕涓簅rg.springframework.mail.JavaMail.MimeMessagePreparator.



闂墊瘬 2005-12-30 12:49 鍙戣〃璇勮
]]>
JMS 娑堟伅鏈嶅姟閰嶇疆http://www.tkk7.com/shmily432685/archive/2005/12/05/22502.html闂墊瘬闂墊瘬Mon, 05 Dec 2005 01:42:00 GMThttp://www.tkk7.com/shmily432685/archive/2005/12/05/22502.htmlhttp://www.tkk7.com/shmily432685/comments/22502.htmlhttp://www.tkk7.com/shmily432685/archive/2005/12/05/22502.html#Feedback0http://www.tkk7.com/shmily432685/comments/commentRss/22502.htmlhttp://www.tkk7.com/shmily432685/services/trackbacks/22502.htmlJMS 綆浠?/SPAN>

JMS鍗蟲秷鎭湇鍔★紝鏄兘澶熷紓姝ュ鐞嗗鎴瘋姹傜殑寮鍙戞ā鍨嬨備負鏀寔娑堟伅鐨勫紓姝ュ鐞嗭紝Java/J2EE騫沖彴寮曞叆浜?/SPAN>JMS API銆?/SPAN>JMS鏀寔涓ょ娑堟伅妯″瀷錛氱偣瀵圭偣鍜屽彂甯?/SPAN>/璁㈤槄妯″紡銆?/SPAN>

JMS 鎶借薄瀵硅薄

浠?/SPAN>spring in action妗嗘灦涓?/SPAN>jms鐩稿叧鍖呯粨鏋勭湅錛屼富瑕佸寘鎷涓嬪唴瀹癸細

鈼?SPAN style="FONT: 7pt 'Times New Roman'">     org.springframework.jms:

鈼?SPAN style="FONT: 7pt 'Times New Roman'">     org.springframework.jms.connection:

鈼?SPAN style="FONT: 7pt 'Times New Roman'">     org.springframework.jms.core:

鈼?SPAN style="FONT: 7pt 'Times New Roman'">     org.springframework.jms.core.support:

鈼?SPAN style="FONT: 7pt 'Times New Roman'">     org.springframework.jms.support

鈼?SPAN style="FONT: 7pt 'Times New Roman'">     org.springframework.jms.support.converter:

鈼?SPAN style="FONT: 7pt 'Times New Roman'">     org.springframework.jms.support.destination

鍙戦佹秷鎭?/SPAN>

     JmsTemplate妯℃澘鐨勪嬌鐢細

     浜嗚В閰嶇疆錛?/SPAN>

<beans>

   <!鈥?/SPAN>瀹氫箟榪炴帴宸ュ巶-->

   <bean id=鈥漜onnectionFactory鈥?class=鈥漮rg.springframework.jndi.JndiObjectFactoryBean鈥?gt;

   <property name=鈥漥ndiName鈥?gt;

       <value>ConnectionFactory</value>

   </property>

<property name=鈥漥ndiTemplate鈥?gt;

    <ref  local=鈥漥ndiTemplate鈥?>

</property>

</bean>

<!鈥?/SPAN>瀹氫箟鐩殑鍦?/SPAN>-->

   <bean id=鈥漝estination鈥?class=鈥漮rg.springframework.jndi.JndiObjectFactoryBean鈥?gt;

     <property name=鈥漥ndiName鈥?gt;

       <value>queue/testQueue</value>

     </property>

<property name=鈥漥ndiTemplate鈥?gt;

    <ref  local=鈥漥ndiTemplate鈥?>

</property>

</bean>

<!鈥攋msTemplate妯℃澘-->

<bean id=鈥漥msTemplate鈥?class=鈥漮rg.springframework.jms.core.JmsTemplate鈥?gt;

     <property name=鈥漜onnectionFactory鈥?gt;

       <ref local=鈥漜onnectionFactory鈥?>

     </property>

<property name=鈥漝efaultDestination鈥?gt;

    <ref  local=鈥漝estination鈥?>

</property>

</bean>

<bean id=鈥漥ndiTemplate鈥?class=鈥漮rg.springframework.jms.jndi.JndiTemplate鈥?gt;

     <property name=鈥漞nvironment鈥?gt;

       <props>

             <prop key = 鈥渏ava.naming.factory.initial鈥?gt;

                   Org.jnp.interfaces.NamingContextFactory

             </prop>

             <prop key = 鈥渏ava.naming.provider.url鈥?gt;

                   Jnp://url

             </prop>

             <prop key = 鈥渏ava.naming.factory.url.pkgs鈥?gt;

                   Org.jboss.naming:org.jnp.interfaces

             </prop>

       </props>

</property>

</bean>

<beans>

浠ヤ笂閰嶇疆閫氳繃spring in action JNDI鎶借薄鏈嶅姟涓殑org.springframework.jndi.JndiObjectFactoryBean鑾峰緱銆傛渶鍚庡畾涔夊悓瀹㈡埛搴旂敤浜や簰鐨?/SPAN>jmsTemplate.鍗?/SPAN>org.springframework.jms.core.JmsTemplate,瀹冨皢寮曠敤浠ヤ笂閰嶇疆涓殑鐩殑鍦板拰榪炴帴宸ュ巶銆?/SPAN>

緙栧啓瀹㈡埛绔唬鐮?/SPAN>

JmsTemplate Jt = (JmsTemplate)this.getBean();

Jt.sent(new MessageCreator())

{

   Public Message createMessage(Session session) throws JMSException{

   Return session.createTextMessge(鈥?/SPAN>鏂囨湰娑堟伅,queue/testQueue鈥?;

   Log.info(鈥?/SPAN>鍙戦佹秷鎭垚鍔燂紱鈥?;

}

}

浠?/SPAN>spring in action妗嗘灦鎻愪緵鐨?/SPAN>Jms鎶借薄涓紝JmsTemplate鍚?/SPAN>MessageCreator緇撳悎鑳藉鍙戦佹秷鎭紝鍥犳闇瑕佸疄鐜?/SPAN>MessageCreator鍥炶皟鎺ュ彛瀹氫箟鐨?/SPAN>createMessage鍙戞硶銆?/SPAN>



闂墊瘬 2005-12-05 09:42 鍙戣〃璇勮
]]>
myeclipse涓瓀eblogic鏈嶅姟綆浠?/title><link>http://www.tkk7.com/shmily432685/archive/2005/11/26/21511.html</link><dc:creator>闂墊瘬</dc:creator><author>闂墊瘬</author><pubDate>Sat, 26 Nov 2005 08:11:00 GMT</pubDate><guid>http://www.tkk7.com/shmily432685/archive/2005/11/26/21511.html</guid><wfw:comment>http://www.tkk7.com/shmily432685/comments/21511.html</wfw:comment><comments>http://www.tkk7.com/shmily432685/archive/2005/11/26/21511.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.tkk7.com/shmily432685/comments/commentRss/21511.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/shmily432685/services/trackbacks/21511.html</trackback:ping><description><![CDATA[<H2 class=diaryTitle>myeclipse閰嶇疆weblogic                                    </H2> <P> <P> <P>weblogic瀹夎鍙傝</P> <P><A >http://zhangstar.blogbus.com/logs/2004/09/413796.html</A></P> <P> <P>MyEclipse榛樿鐨勫簲鐢ㄦ湇鍔″櫒涓篔Boss3錛岃繖閲屾垜浠嬌鐢╓ebLogic8.1銆傚惎鍔‥clipse錛岄夋嫨鈥滅獥鍙棣栭夐」鈥濊彍鍗曪紝鎵撳紑棣栭夐」瀵硅瘽妗嗐傚睍寮MyEclipse涓嬬殑Application Servers緇撶偣錛岀偣鍑籎Boss 3錛岄変腑鍙抽潰鐨凞isable鍗曢夋寜閽紝鍋滅敤JBoss 3銆傜劧鍚庣偣鍑籛ebLogic 8錛岄変腑鍙寵竟鐨凟nable鍗曢夋寜閽紝鍚敤WebLogic鏈嶅姟鍣ㄣ傚悓鏃朵笅闈㈢殑閰嶇疆濡備笅錛?<BR>(1)BEA home directory錛欳:\BEA銆傚亣瀹歐ebLogic瀹夎鍦―:\BEA鏂囦歡澶逛腑銆?<BR>(2)WebLogic installation directory錛欳:\BEA\weblogic81銆?<BR>(3)Admin username錛氱敤鎴峰悕銆?<BR>(4)Admin password錛氬瘑鐮併?<BR>(5)Execution domain root錛氬畨瑁呭悗錛屽惎鍔ㄦ湇鍔$殑璺緞銆?<BR>(6)Execution domain name錛歮ydomain銆?<BR>(7)Execution server name錛歮yserver銆?<BR>(8)Hostname:PortNumber錛歭ocalhost:7001銆?<BR>(9)Security policy file錛欴:\BEA\weblogic81\server\lib\weblogic.policy銆?<BR>(10)JAAS login configuration file錛氱渷鐣ャ?<BR>浠ヤ笂閰嶇疆鏍規嵁瀹夎鎯呭喌涓嶅悓鑰屼笉鍚屻?BR>濡傚浘錛?BR><IMG height=529 alt=myeclipse_weblogic.JPG src="http://www.tkk7.com/images/blogjava_net/shmily432685/subject/myeclipse_weblogic.JPG" width=759 border=0><BR>鎺ョ潃灞曞紑WebLogic 8緇撶偣錛岀偣鍑籎DK錛屽湪鍙寵竟鐨刉LS JDK name澶勯夋嫨WebLogic 8鐨勯粯璁DK銆傝繖閲岀粍鍚堟涓己鐪佷負j2re1.4.2_03錛屽嵆涔嬪墠鍗曠嫭瀹夎鐨刯re銆傚崟鍑籄dd鎸夐挳錛屽脊鍑篧ebLogic > Add JVM瀵硅瘽妗嗭紝鍦↗RE鍚嶇О澶勯殢渚胯緭鍏ヤ竴涓悕瀛楋紝濡俲re1.4.1_02銆傜劧鍚庡湪JRE涓葷洰褰曞閫夋嫨WebLogic瀹夎鏂囦歡澶逛腑鐨凧DK鏂囦歡澶癸紝濡侱:\BEA\jdk141_02錛岀▼搴忎細鑷姩濉厖Javadoc URL鏂囨湰妗嗗拰JRE緋葷粺搴撳垪琛ㄦ銆傚崟鍑葷‘瀹氭寜閽叧闂璇濇銆傝繖鏃跺欏氨鍙互鍦╓LS JDK name緇勫悎妗嗕腑閫夋嫨jre1.4.1_02浜嗐備箣鍚庤繕瑕佸湪涓嬮潰鐨凮ptional Java VM arguments錛屽-ms64m -mx64m -Djava.library.path="D:/BEA/weblogic81/server/bin" -Dweblogic.management.discover=false -Dweblogic.ProductionModeEnabled=false <BR>鏈鍚庣偣鍑籔aths錛屽湪鍙寵竟鐨凱repend to classpath鍒楄〃妗嗕腑錛岄氳繃Add JAR/ZIP鎸夐挳錛屽姞鍏:\BEA\weblogic81\server\lib\weblogic.jar銆丏:\BEA\weblogic81\server\lib\webservices.jar銆傚鏋滅敤鍒版暟鎹簱錛岃繕闇鎶婃暟鎹簱鐨勯┍鍔ㄧ被搴撳姞榪涙潵錛岃繖閲屾垜浠敤WebLogic鑷甫鐨凷QL Server鏁版嵁搴撻┍鍔ㄥ簱D:\BEA\weblogic81\server\lib\mssqlserver4v65.jar銆?<BR>鑷蟲錛孧yEclipse涓璚ebLogic8鐨勯厤緗伐浣滃氨綆楀畬鎴愪簡銆備笅闈㈠彲浠ョ湅鐪嬪湪Eclipse涓兘鍚﹀惎鍔╓ebLogic浜嗭紵鑷粠瀹夎浜哅yEclipse涔嬪悗錛孍clipse宸ュ叿鏍忎腑灝變細鏈変竴涓猂un/Stop Servers涓嬫媺鎸夐挳銆傜偣鍑昏鎸夐挳鐨勪笅鎷夐儴鍒嗭紝閫夋嫨鈥淲ebLogic 8\Start鈥濊彍鍗曪紝鍗沖紑濮嬪惎鍔╓ebLogic浜嗐傞氳繃鏌ョ湅涓嬮潰鐨勬帶鍒跺彴娑堟伅錛屽氨鍙互鐭ラ亾鍚姩鏄惁鎴愬姛錛屾垨鏈変粈涔堝紓甯稿彂鐢熴傚仠姝ebLogic鍙夋嫨鈥淲ebLogic\Stop鈥濊彍鍗?/P><img src ="http://www.tkk7.com/shmily432685/aggbug/21511.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/shmily432685/" target="_blank">闂墊瘬</a> 2005-11-26 16:11 <a href="http://www.tkk7.com/shmily432685/archive/2005/11/26/21511.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>web.xml瑙勫垯緇忚繃鏁寸悊鎬葷粨濡備笅錛?/title><link>http://www.tkk7.com/shmily432685/archive/2005/11/11/19258.html</link><dc:creator>闂墊瘬</dc:creator><author>闂墊瘬</author><pubDate>Fri, 11 Nov 2005 02:29:00 GMT</pubDate><guid>http://www.tkk7.com/shmily432685/archive/2005/11/11/19258.html</guid><wfw:comment>http://www.tkk7.com/shmily432685/comments/19258.html</wfw:comment><comments>http://www.tkk7.com/shmily432685/archive/2005/11/11/19258.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/shmily432685/comments/commentRss/19258.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/shmily432685/services/trackbacks/19258.html</trackback:ping><description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">1銆侀儴緗叉弿榪扮鏂囦歡灝卞儚鎵鏈?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">XML</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鏂囦歡涓鏍鳳紝蹇呴』浠ヤ竴涓?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">XML</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">澶村紑濮嬨傝繖涓ご澹版槑鍙互浣跨敤鐨?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">XML</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鐗堟湰騫剁粰鍑烘枃浠剁殑瀛楃緙栫爜銆?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>2銆丏OCYTPE</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">澹版槑蹇呴』绔嬪嵆鍑虹幇鍦ㄦ澶翠箣鍚庛傝繖涓0鏄庡憡璇夋湇鍔″櫒閫傜敤鐨?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">servlet</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">瑙勮寖鐨勭増鏈紙濡?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">2.2</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鎴?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">2.3</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">錛夊茍鎸囧畾綆$悊姝ゆ枃浠跺叾浣欓儴鍒嗗唴瀹圭殑璇硶鐨?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">DTD(Document Type Definition</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">錛屾枃妗g被鍨嬪畾涔?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">)</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">銆?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR></SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鎵鏈夐儴緗叉弿榪扮鏂囦歡鐨勯《灞傦紙鏍癸級鍏冪礌涓?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">web-app</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">銆傝娉ㄦ剰錛?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">XML</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌涓嶅儚</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">HTML</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">錛屼粬浠槸澶у皬鍐欐晱鎰熺殑銆傚洜姝わ紝</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">web-App</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍜?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">WEB-APP</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">閮芥槸涓嶅悎娉曠殑錛?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">web-app</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">蹇呴』鐢ㄥ皬鍐欍?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"></P> <DIV style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><SPAN style="COLOR: #008080">1</SPAN> <SPAN style="COLOR: #000000"><?</SPAN><SPAN style="COLOR: #000000">xml version</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">1.0</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> encoding</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">UTF-8</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">?></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">2</SPAN> <SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">3</SPAN> <SPAN style="COLOR: #000000"></SPAN><SPAN style="COLOR: #000000"><</SPAN><SPAN style="COLOR: #000000">web</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">app xmlns</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">http://java.sun.com/xml/ns/j2ee</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> xmlns:xsi</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">http://www.w3.org/2001/XMLSchema-instance</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> version</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">2.4</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000"> xsi:schemaLocation</SPAN><SPAN style="COLOR: #000000">=</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd</SPAN><SPAN style="COLOR: #000000">"</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">4</SPAN> <SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">5</SPAN> <SPAN style="COLOR: #000000"></SPAN><SPAN style="COLOR: #000000"></</SPAN><SPAN style="COLOR: #000000">web</SPAN><SPAN style="COLOR: #000000">-</SPAN><SPAN style="COLOR: #000000">app</SPAN><SPAN style="COLOR: #000000">></SPAN><SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">6</SPAN> <SPAN style="COLOR: #000000"><BR></SPAN><SPAN style="COLOR: #008080">7</SPAN> <SPAN style="COLOR: #000000"></SPAN></DIV> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt">2銆?</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">閮ㄧ講鎻忚堪絎︽枃浠跺唴鐨勫厓绱犳搴?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 22pt; mso-char-indent-count: 2.0"><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">XML </SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌涓嶄粎鏄ぇ灝忓啓鏁忔劅鐨勶紝鑰屼笖瀹冧滑榪樺鍑虹幇鍦ㄥ叾浠栧厓绱犱腑鐨勬搴忔晱鎰熴?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 22pt; mso-char-indent-count: 2.0"><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">XML</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">澶村繀欏繪槸鏂囦歡涓殑絎竴欏癸紝</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">DOCTYPE</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">澹版槑蹇呴』鏄浜岄」錛岃?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">web- app</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌蹇呴』鏄涓夐」銆傚湪</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">web-app</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌鍐咃紝鍏冪礌鐨勬搴忎篃寰堥噸瑕併傛湇鍔″櫒涓嶄竴瀹氬己鍒惰姹傝繖縐嶆搴忥紝浣嗗畠浠厑璁革紙瀹為檯涓婃湁浜涙湇鍔″櫒灝辨槸榪欐牱鍋氱殑錛夊畬鍏ㄦ嫆緇濇墽琛屽惈鏈夋搴忎笉姝g‘鐨勫厓绱犵殑</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">Web</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">搴旂敤銆傝繖琛ㄧず浣跨敤闈炴爣鍑嗗厓绱犳搴忕殑</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">web.xml</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鏂囦歡鏄笉鍙Щ妞嶇殑銆?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 22pt; mso-char-indent-count: 2.0"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">涓嬮潰鐨勫垪琛ㄧ粰鍑轟簡鎵鏈夊彲鐩存帴鍑虹幇鍦?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">web-app</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌鍐呯殑鍚堟硶鍏冪礌鎵蹇呴渶鐨勬搴忋?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></P> <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 22pt; mso-char-indent-count: 2.0"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">姝ゅ垪琛ㄨ鏄?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">servlet</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌蹇呴』鍑虹幇鍦ㄦ墍鏈?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">servlet-mapping</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌涔嬪墠銆傝娉ㄦ剰錛屾墍鏈夎繖浜涘厓绱犻兘鏄彲閫夌殑銆傚洜姝わ紝鍙互鐪佺暐鎺夋煇涓鍏冪礌錛屼絾涓嶈兘鎶婂畠鏀句簬涓嶆紜殑浣嶇疆銆?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l icon icon</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌鎸囧嚭</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">IDE</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍜?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">GUI</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">宸ュ叿鐢ㄦ潵琛ㄧず</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">Web</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">搴旂敤鐨勪竴涓拰涓や釜鍥懼儚鏂囦歡鐨勪綅緗?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l display-name display-name</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌鎻愪緵</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">GUI</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">宸ュ叿鍙兘浼氱敤鏉ユ爣璁拌繖涓壒瀹氱殑</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">Web</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">搴旂敤鐨勪竴涓悕縐般?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l description description</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌緇欏嚭涓庢鏈夊叧鐨勮鏄庢ф枃鏈?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l context-param context-param</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌澹版槑搴旂敤鑼冨洿鍐呯殑鍒濆鍖栧弬鏁般?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l filter </SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">榪囨護鍣ㄥ厓绱犲皢涓涓悕瀛椾笌涓涓疄鐜?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">javax.servlet.Filter</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鎺ュ彛鐨勭被鐩稿叧鑱斻?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l filter-mapping </SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">涓鏃﹀懡鍚嶄簡涓涓繃婊ゅ櫒錛屽氨瑕佸埄鐢?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">filter-mapping</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌鎶婂畠涓庝竴涓垨澶氫釜</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">servlet</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鎴?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">JSP</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">欏甸潰鐩稿叧鑱斻?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l listener servlet API</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鐨勭増鏈?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">2.3</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">澧炲姞浜嗗浜嬩歡鐩戝惉紼嬪簭鐨勬敮鎸侊紝浜嬩歡鐩戝惉紼嬪簭鍦ㄥ緩绔嬨佷慨鏀瑰拰鍒犻櫎浼氳瘽鎴?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">servlet</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鐜鏃跺緱鍒伴氱煡銆?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">Listener</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌鎸囧嚭浜嬩歡鐩戝惉紼嬪簭綾匯?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l servlet </SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍦ㄥ悜</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">servlet</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鎴?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">JSP</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">欏甸潰鍒跺畾鍒濆鍖栧弬鏁版垨瀹氬埗</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">URL</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鏃訛紝蹇呴』棣栧厛鍛藉悕</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">servlet</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鎴?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">JSP</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">欏甸潰銆?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">Servlet</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌灝辨槸鐢ㄦ潵瀹屾垚姝ら」浠誨姟鐨勩?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l servlet-mapping </SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鏈嶅姟鍣ㄤ竴鑸負</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">servlet</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鎻愪緵涓涓己鐪佺殑</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">URL</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">錛?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><A href="http://host/webAppPrefix/servlet/ServletName銆備絾鏄紝甯稿父浼氭洿鏀硅繖涓猆RL錛屼互渚縮ervlet鍙互璁塊棶鍒濆鍖栧弬鏁版垨鏇村鏄撳湴澶勭悊鐩稿URL銆傚湪鏇存敼緙虹渷URL鏃訛紝浣跨敤servlet-mapping鍏冪礌銆? target=_blank>http://host/webAppPrefix/servlet/ServletName<SPAN lang=EN-US style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><SPAN lang=EN-US>銆備絾鏄紝甯稿父浼氭洿鏀硅繖涓?/SPAN></SPAN>URL<SPAN lang=EN-US style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><SPAN lang=EN-US>錛屼互渚?/SPAN></SPAN>servlet<SPAN lang=EN-US style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><SPAN lang=EN-US>鍙互璁塊棶鍒濆鍖栧弬鏁版垨鏇村鏄撳湴澶勭悊鐩稿</SPAN></SPAN>URL<SPAN lang=EN-US style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><SPAN lang=EN-US>銆傚湪鏇存敼緙虹渷</SPAN></SPAN>URL<SPAN lang=EN-US style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><SPAN lang=EN-US>鏃訛紝浣跨敤</SPAN></SPAN>servlet-mapping<SPAN lang=EN-US style="FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana"><SPAN lang=EN-US>鍏冪礌銆?/SPAN></SPAN></A><BR>l session-config </SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">濡傛灉鏌愪釜浼氳瘽鍦ㄤ竴瀹氭椂闂村唴鏈璁塊棶錛屾湇鍔″櫒鍙互鎶涘純瀹冧互鑺傜渷鍐呭瓨銆傚彲閫氳繃浣跨敤</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">HttpSession</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鐨?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">setMaxInactiveInterval</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鏂規硶鏄庣‘璁劇疆鍗曚釜浼氳瘽瀵硅薄鐨勮秴鏃跺鹼紝鎴栬呭彲鍒╃敤</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">session-config</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌鍒跺畾緙虹渷瓚呮椂鍊箋?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l mime-mapping </SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">濡傛灉</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">Web</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">搴旂敤鍏鋒湁鎯沖埌鐗規畩鐨勬枃浠訛紝甯屾湜鑳戒繚璇佺粰浠栦滑鍒嗛厤鐗瑰畾鐨?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">MIME</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">綾誨瀷錛屽垯</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">mime-mapping</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌鎻愪緵榪欑淇濊瘉銆?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l welcom-file-list welcome-file-list</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌鎸囩ず鏈嶅姟鍣ㄥ湪鏀跺埌寮曠敤涓涓洰褰曞悕鑰屼笉鏄枃浠跺悕鐨?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">URL</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鏃訛紝浣跨敤鍝釜鏂囦歡銆?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l error-page error-page</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌浣垮緱鍦ㄨ繑鍥炵壒瀹?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">HTTP</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鐘舵佷唬鐮佹椂錛屾垨鑰呯壒瀹氱被鍨嬬殑寮傚父琚姏鍑烘椂錛岃兘澶熷埗瀹氬皢瑕佹樉紺虹殑欏甸潰銆?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l taglib taglib</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌瀵規爣璁板簱鎻忚堪絎︽枃浠訛紙</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">Tag Libraryu Descriptor file</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">錛夋寚瀹氬埆鍚嶃傛鍔熻兘浣夸綘鑳藉鏇存敼</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">TLD</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鏂囦歡鐨勪綅緗紝鑰屼笉鐢ㄧ紪杈戜嬌鐢ㄨ繖浜涙枃浠剁殑</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">JSP</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">欏甸潰銆?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l resource-env-ref resource-env-ref</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌澹版槑涓庤祫婧愮浉鍏崇殑涓涓鐞嗗璞°?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l resource-ref resource-ref</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌澹版槑涓涓祫婧愬伐鍘備嬌鐢ㄧ殑澶栭儴璧勬簮銆?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l security-constraint security-constraint</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌鍒跺畾搴旇淇濇姢鐨?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">URL</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">銆傚畠涓?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">login-config</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌鑱斿悎浣跨敤</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l login-config </SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鐢?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">login-config</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌鏉ユ寚瀹氭湇鍔″櫒搴旇鎬庢牱緇欒瘯鍥捐闂彈淇濇姢欏甸潰鐨勭敤鎴鋒巿鏉冦傚畠涓?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">sercurity-constraint</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌鑱斿悎浣跨敤銆?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l security-role security-role</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌緇欏嚭瀹夊叏瑙掕壊鐨勪竴涓垪琛紝榪欎簺瑙掕壊灝嗗嚭鐜板湪</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">servlet</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌鍐呯殑</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">security-role-ref</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌鐨?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">role-name</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">瀛愬厓绱犱腑銆傚垎鍒湴澹版槑瑙掕壊鍙嬌楂樼駭</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">IDE</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">澶勭悊瀹夊叏淇℃伅鏇翠負瀹規槗銆?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l env-entry env-entry</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌澹版槑</SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">Web</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">搴旂敤鐨勭幆澧冮」銆?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l ejb-ref ejb-ref</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌澹版槑涓涓?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鐨勪富鐩綍鐨勫紩鐢ㄣ?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana"><BR>l ejb-local-ref ejb-local-ref</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鍏冪礌澹版槑涓涓?/SPAN><SPAN lang=EN-US style="FONT-SIZE: 11pt; FONT-FAMILY: Verdana">EJB</SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 瀹嬩綋; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">鐨勬湰鍦頒富鐩綍鐨勫簲鐢ㄣ?BR>3銆?/SPAN></P><img src ="http://www.tkk7.com/shmily432685/aggbug/19258.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/shmily432685/" target="_blank">闂墊瘬</a> 2005-11-11 10:29 <a href="http://www.tkk7.com/shmily432685/archive/2005/11/11/19258.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Spring JMS 娑堟伅澶勭悊鍙婇厤緗?/title><link>http://www.tkk7.com/shmily432685/archive/2005/11/10/19071.html</link><dc:creator>闂墊瘬</dc:creator><author>闂墊瘬</author><pubDate>Wed, 09 Nov 2005 16:14:00 GMT</pubDate><guid>http://www.tkk7.com/shmily432685/archive/2005/11/10/19071.html</guid><wfw:comment>http://www.tkk7.com/shmily432685/comments/19071.html</wfw:comment><comments>http://www.tkk7.com/shmily432685/archive/2005/11/10/19071.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/shmily432685/comments/commentRss/19071.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/shmily432685/services/trackbacks/19071.html</trackback:ping><description><![CDATA[<P><A name=IDAKT00><span id="4qmsweq" class=atitle><FONT face=Arial size=4><a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> JMS</FONT></SPAN></A></P> <P><a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨?JMS 鎶借薄妗嗘灦綆鍖栦簡 JMS API 鐨勪嬌鐢紝騫朵笌 JMS 鎻愪緵鑰咃紙姣斿 IBM 鐨?WebSphere MQ 5.3錛夊鉤婊戝湴闆嗘垚銆?I>org.springframework.jms.core</I> 鍖呮彁渚涗簡鍦?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 涓嬌鐢?JMS 鐨勬牳蹇冨姛鑳姐傚畠鐨勬ā鏉跨被澶勭悊璧勬簮鐨勫垱寤哄拰閲婃斁錛岀畝鍖栦簡 JMS 鐨勪嬌鐢ㄣ?/P> <P>鍍忓叾浠栧ぇ澶氭暟 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妯℃澘綾諱竴鏍鳳紝JMS 妯℃澘綾繪彁渚涗簡鎵ц鍏叡鎿嶄綔鐨?helper 鏂規硶銆傚湪闇瑕佹洿澶嶆潅搴旂敤鐨勬儏鍐典笅錛岀被鎶婂鐞嗕換鍔$殑鏍稿績濮旀墭緇欑敤鎴峰疄鐜扮殑鍥炶皟鎺ュ彛銆侸MS 綾繪彁渚涗簡鏂逛究鐨勬柟娉曪紝鐢ㄦ潵鍙戦佹秷鎭佸悓姝ュ湴浣跨敤娑堟伅浠ュ強鍚戠敤鎴峰叕寮 JMS 浼氳瘽鍜屾秷鎭殑鍒朵綔鑰呫?/P> <P>浠ヤ笅 JMS 鍖呭拰 <I>org.springframework.jms.core</I> 涓璧鋒瀯鎴愪簡 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> JMS 鐨勫姛鑳斤細</P> <DL> <DT><B>org.springframework.jms.support</B> <DD>鎻愪緵杞崲 <CODE>JMSException</CODE> 鐨勫姛鑳姐傝漿鎹唬鐮佹妸媯嫻嬪埌鐨?<CODE>JMSException</CODE> 灞傛緇撴瀯杞崲鎴愭湭媯嫻嬪埌寮傚父鐨勯暅鍍忓眰嬈$粨鏋勩? <DT><B>org.springframework.jms.support.converter</B> <DD>鎻愪緵 <CODE>MessageConverter</CODE> 鎶借薄錛屼互鍦?Java 瀵硅薄鍜?JMS 娑堟伅涔嬮棿榪涜杞崲銆? <DT><B>org.springframework.jms.support.destination</B> <DD>鎻愪緵綆$悊 JMS 鐩爣鐨勪笉鍚岀瓥鐣ワ紝姣斿閽堝 JNDI 涓繚瀛樼殑鐩爣鐨勬湇鍔″畾浣嶅櫒銆? <DT><B>org.springframework.jms.connection</B> <DD>鎻愪緵閫傚悎鍦ㄧ嫭绔嬪簲鐢ㄧ▼搴忎腑浣跨敤鐨?<CODE>ConnectionFactory</CODE> 瀹炵幇銆俢onnection 榪樺寘鍚拡瀵?JMS 鐨?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> <CODE>PlatformTransactionManager</CODE> 瀹炵幇銆傚畠鍏佽鎶?JMS 浣滀負浜嬪姟鎬ц祫婧愰泦鎴愬埌 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨勪簨鍔$鐞嗘満鍒朵腑銆?/DD></DL><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=IDAZU00><span id="84sqwww" class=atitle><FONT face=Arial size=4>IBM WebSphere MQ</FONT></SPAN></A></P> <P>灝卞儚鍓嶉潰鎻愬埌鐨勶紝紺轟緥搴旂敤紼嬪簭浼氱敤 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨?JMS 妗嗘灦閫氳繃 JMS 鎺ュ彛涓?IBM 鐨?WebSphere MQ 闆嗘垚銆傞氳繃鍦ㄥ簲鐢ㄧ▼搴忓拰 Web 鏈嶅姟涔嬮棿浼犻掓秷鎭紝WebSphere MQ 鎻愪緵浜嗗彲闈犵殑銆佹湁鎭㈠鑳藉姏鐨勫簲鐢ㄧ▼搴忛泦鎴愩傚畠浣跨敤闃熷垪鍜屼簨鍔℃у伐鍏峰府鍔╀繚鎸佹秷鎭法緗戠粶鐨勫畬鏁存с俉ebSphere MQ 闄嶄綆浜嗕俊鎭涪澶辯殑椋庨櫓鍜岃皟鍜岄氫俊 IT 緋葷粺鐨勯渶瑕併?/P> <P>WebSphere MQ 鍦ㄥ畠鎵鏀寔鐨勬墍鏈夊鉤鍙頒笂鎻愪緵浜嗕竴鑷寸殑搴旂敤紼嬪簭緙栫▼鎺ュ彛錛岃繖鏈夊姪浜庤闆嗘垚鐨勭▼搴忓彲縐繪銆傞櫎浜嗘爣鍑嗘帴鍙e錛學ebSphere MQ 榪樺畬鏁村疄鐜頒簡JMS 鎺ュ彛錛屽寘鎷鍙戝竷-璁㈤槄娑堟伅浼犻掔殑鏀寔銆俉ebSphere MQ Explorer 宸ュ叿鍙互榪滅▼鍦扮鐞嗗拰閰嶇疆鏁翠釜 MQ 緗戠粶銆傜鐞嗗拰閰嶇疆宸ュ叿鍩轟簬寮鏀炬簮鐮佺殑 Eclipse 妗嗘灦錛岃屼笖鏄彲鎵╁睍鐨勩?/P><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=IDABV00><span id="ywe4s4u" class=atitle><FONT face=Arial size=4><a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> JMS 妯℃澘</FONT></SPAN></A></P> <P><a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鎻愪緵浜?<CODE>JmsTemplate</CODE> 鐨勪袱涓疄鐜般?CODE>JmsTemplate</CODE> 綾諱嬌鐢?JMS 1.1 API錛屽瓙綾?<CODE>JmsTemplate102</CODE> 鍒欎嬌鐢?JMS 1.0.2 API銆傛垜鐨勭ず渚嬪簲鐢ㄧ▼搴忎嬌鐢ㄧ殑鏄?<CODE>JmsTemplate102</CODE>銆?/P> <P>JMS 妯℃澘琚敤鏉ュ彂閫佸拰鎺ユ敹 JMS 娑堟伅銆係pring 閲囩敤鍥炶皟鏈哄埗瀵?JMS 淇℃伅浼犻掕繘琛屽崗璋冦?CODE>MessageCreator</CODE> 鍥炶皟鎺ュ彛鐢?<CODE>JmsTemplate</CODE> 涓殑璋冪敤浠g爜鎻愪緵鐨?<CODE>Session</CODE> 鍒涘緩娑堟伅銆備負浜嗘敮鎸?JMS API 鏇村鏉傜殑搴旂敤錛屽洖璋?<CODE>SessionCallback</CODE> 鍚戠敤鎴鋒彁渚涗簡 JMS 浼氳瘽錛岃?<CODE>callback ProducerCallback</CODE> 鍒欏叕寮浜?<CODE>Session</CODE> 鍜?<CODE>MessageProducer</CODE> 緇勫悎銆?</P> <P>娓呭崟 1 鏄劇ず浜嗙ず渚嬪簲鐢ㄧ▼搴忎嬌鐢ㄧ殑 JMS 妯℃澘鐨勯厤緗傛竻鍗曟憳鑷?<I><a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a>-mqseries-jms.xml</I> 鏂囦歡錛堣鍙傞槄 <A ><FONT color=#996699>涓嬭澆</FONT></A>錛夈?</P><BR><A name=code1><B>娓呭崟 1. JMS 妯℃澘閰嶇疆</B></A><BR> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console"> <!-- JMS Queue Template --> <bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate102"> <property name="connectionFactory"> <ref bean="jmsQueueConnectionFactory"/> </property> <property name="destinationResolver"> <ref bean="jmsDestinationResolver"/> </property> <property name="pubSubDomain"> <value>false</value> </property> <property name="receiveTimeout"> <value>20000</value> </property> </bean> </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P><CODE>jmsQueueTemplate</CODE> bean 涓?JMS 榪炴帴宸ュ巶鍜?JMS 鐩爣瑙f瀽鍣ㄧ粦瀹氬湪涓璧鳳紝鐢ㄤ簬瑙f瀽 JMS 瀹㈡埛鏈洪氳繃 JNDI 鎻愪緵鐨勭洰鏍囬槦鍒楀悕銆?CODE>connectionFactory</CODE> 灞炴ф寚瀹氫簡濡備綍鑾峰緱鍒?JMS 鎻愪緵鑰呯殑榪炴帴銆傚湪鏈緥涓紝娓呭崟 2 鏄劇ず浜嗗浣曚粠 JNDI 媯绱㈣繛鎺ュ伐鍘傘?/P><BR><A name=IDATX00><B>娓呭崟 2. 閫氳繃 JNDI 閰嶇疆 JMS 榪炴帴宸ュ巶</B></A><BR> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console"> <!-- JMS Queue Connection Factory --> <bean id="internalJmsQueueConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiTemplate"> <ref bean="jndiTemplate"/> </property> <property name="jndiName"> <value>MQ_JMS_MANAGER</value> </property> </bean> </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>鍙互鐪嬪埌錛?CODE>JndiObjectFactoryBean</CODE> 琚粦瀹氬埌 <CODE>internalJmsQueueConnectionFactory</CODE>銆?CODE>JndiObjectFactoryBean</CODE> 鐢?<CODE>JndiTemplate</CODE> 灞炴ц繘琛?JNDI 鏌ヨ銆係pring 灝嗙敤 <CODE>JndiTemplate</CODE> 涓寚瀹氱殑鐜灞炴у拰鍒濆涓婁笅鏂囧湪 JNDI 涓煡璇㈣繛鎺ュ伐鍘傘傛竻鍗?3 鏄劇ず浜?<CODE>JndiTemplate</CODE> 閰嶇疆 bean 鐨勯厤緗?/P><BR><A name=IDAZAC1><B>娓呭崟 3. JNDI 鏌ヨ鐨?JNDI 妯℃澘閰嶇疆</B></A><BR> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console"><bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"> <property name="environment"> <props> <prop key="java.naming.factory.initial"> com.sun.jndi.fscontext.RefFSContextFactory </prop> <prop key="java.naming.provider.url"> file:/C:/JNDI-Directory </prop> </props> </property> </bean> </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>浠ヤ笂閰嶇疆榪涜 JNDI 鏌ヨ鏃剁敤 <CODE>com.sun.jndi.fscontext.RefFSContextFactory</CODE> 鎸囧畾鍒濆涓婁笅鏂囧伐鍘傦紝鐢ㄥ熀浜庢枃浠剁殑 <I>file:/C:/JNDI-Directory</I> 浣滀負鎻愪緵鑰?URL銆傛牴鎹ず渚嬪簲鐢ㄧ▼搴忕殑鎰忓浘錛孞NDI 璁塊棶浼氶噰鐢ㄥ熀浜庢枃浠剁殑 <CODE>FSContext</CODE> 鐗堟湰錛堣鍙傞槄 <A ><FONT color=#996699>鍙傝冭祫鏂?/FONT></A>錛夌殑閰嶇疆鎶?MQ 闃熷垪緇戝畾鍒?JNDI銆?/P> <P>鏈変簡瀹氫箟濂界殑 JMS 妯℃澘錛屼笅涓姝ュ氨鏄妸瀹冪粦瀹氬埌紺轟緥搴旂敤紼嬪簭涓紝鐒跺悗灝卞彲浠ョ敤瀹冨彂閫佸拰鎺ユ敹娑堟伅浜嗐?/P><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=IDAQBC1><span id="aomuggy" class=atitle><FONT face=Arial size=4><a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> JMS 瀹炵幇</FONT></SPAN></A></P> <P>JMS 妯℃澘鍙互緇戝畾鍒板簲鐢ㄧ▼搴忎腑錛屼互鍙戦佸拰鎺ユ敹 JMS 娑堟伅銆傚湪娓呭崟 4 涓彲浠ョ湅鍑烘垜濡備綍鎶?<A ><FONT color=#996699>娓呭崟 1</FONT></A> 涓殑 JMS 妯℃澘緇戝畾鍒扮ず渚嬪簲鐢ㄧ▼搴忎腑銆?/P><BR><A name=IDA5BC1><B>娓呭崟 4. 鎶?JmsTemplate 緇戝畾鍒板簲鐢ㄧ▼搴忎腑</B></A><BR> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console"> <bean id="jmsSender" class="springexample.client.JMSSender"> <property name="jmsTemplate102"> <ref bean="jmsQueueTemplate"/> </property> </bean> <bean id="jmsReceiver" class="springexample.client.JMSReceiver"> <property name="jmsTemplate102"> <ref bean="jmsQueueTemplate"/> </property> </bean> </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>鍙互鐪嬪埌錛屾垜鎶?<CODE>jmsQueueTemplate</CODE> 緇戝畾鍒扮敤鏉ュ彂閫佸拰鎺ユ敹娑堟伅鐨?<CODE>JmsSender</CODE> 搴旂敤紼嬪簭 bean 鍜?<CODE>JmsReceiver</CODE> bean銆傛竻鍗?5 鏄劇ず浜嗕笌 <CODE>JMSSender</CODE> 綾繪湁鍏崇殑浠g爜銆?/P><BR><A name=IDA0CC1><B>娓呭崟 5. 鐢?JmsTemplate 鍙戦?JMS 娑堟伅鐨?JMSSender </B></A><BR> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console"> public class JMSSender { private JmsTemplate102 jmsTemplate102; public JmsTemplate102 getJmsTemplate102() { return jmsTemplate102; } public void setJmsTemplate102(JmsTemplate102 jmsTemplate102) { this.jmsTemplate102 = jmsTemplate102; } public void sendMesage(){ jmsTemplate102.send("JMS_RequestResponseQueue", new MessageCreator() { public Message createMessage(Session session) throws JMSException { return session.createTextMessage("This is a sample message"); } }); } </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P><CODE>JMSSender</CODE> 綾葷敤 <CODE>jmsTemplate102.send()</CODE> 鏂規硶鍙戦?JMS 娑堟伅銆?CODE>send()</CODE> 鏂規硶鐨勭涓涓弬鏁版槸 JNDI 闃熷垪鍚嶏紝闃熷垪鍚嶆寚瀹氫簡娑堟伅搴斿綋鍙戦佸埌鍝噷銆傦紙寰堝揩灝變細鐪嬪埌濡備綍鎶?WebSphere MQ 鐨勯槦鍒楀悕緇戝畾鍒?JNDI銆傦級<CODE>send()</CODE> 鏂規硶鐨勭浜屼釜鍙傛暟鏄?<CODE>MessageCreator</CODE> 綾匯?CODE>JmsTemplate</CODE> 涓殑璋冪敤浠g爜鎻愪緵浜?<CODE>Session</CODE> 綾伙紝榪欎釜綾繪彁渚涗簡涓涓垱寤?JMS 娑堟伅鐨勫洖璋冩帴鍙c?/P> <P>涓嬩竴姝ユ槸鐢?JMS 鐨?<CODE>Session</CODE> 綾誨垱寤轟竴涓畝鍗曠殑鏂囨湰娑堟伅銆傚湪浠g爜鎵ц鏃訛紝娑堟伅浼氫紶閫掔粰 WebSphere MQ 鏈嶅姟鍣ㄧ殑闃熷垪銆傛竻鍗?6 鏄劇ず浜嗕嬌鐢?<CODE>JmsTemplate</CODE> 媯绱?JMS 娑堟伅鐨?<CODE>JMSReceiver</CODE> 搴旂敤紼嬪簭 bean 鐨勪唬鐮併?/P><BR><A name=IDAOEC1><B>娓呭崟 6. 鐢?JmsTemplate 媯绱?JMS 娑堟伅鐨?JMSReceiver</B></A><BR> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console"> public class JMSReceiver { private JmsTemplate102 jmsTemplate102; public JmsTemplate102 getJmsTemplate102() { return jmsTemplate102; } public void setJmsTemplate102(JmsTemplate102 jmsTemplate102) { this.jmsTemplate102 = jmsTemplate102; } public void processMessage(){ Message msg = jmsTemplate102.receive("JMS_RequestResponseQueue"); try{ TextMessage textMessage = (TextMessage) msg; if( msg!=null){ System.out.println(" Message Received -->" + textMessage.getText()); } }catch(Exception e){ e.printStackTrace(); } } } </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P><CODE>JMSReceiver</CODE> 綾葷敤 <CODE>jmsTemplate102.receive()</CODE> 鏂規硶鍚屾鍦版帴鏀?JMS 娑堟伅銆?CODE>receive()</CODE> 鏂規硶鎸囧畾 JNDI 闃熷垪鍚嶏紝騫朵粠涓绱㈡秷鎭?CODE>JMSTemplate</CODE> 綾葷殑 <CODE>processMessage()</CODE> 鏂規硶鐢辨帴鏀?JMS 瀹㈡埛鏈鴻皟鐢ㄣ?CODE>JSMTemplate</CODE> bean 鐨勫睘鎬?<I>receiveTimeout</I>錛堝垪鍦?<CODE>JMSTemplate</CODE> 閰嶇疆涓級鎸囧畾鎺ユ敹瀹㈡埛鏈哄悓姝ュ湴浠庨槦鍒椾腑鎺ユ敹娑堟伅鏃惰絳夊欑殑鏃墮棿銆?/P> <P>鐜板湪搴旂敤紼嬪簭鐨勪唬鐮佸凡瀹屾垚錛佷笅涓姝ュ氨鏄厤緗?WebSphere MQ 闃熷垪騫舵妸瀹冧滑緇戝畾鍒?JNDI 瀵硅薄銆?/P><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=IDAUFC1><span id="ciu8mom" class=atitle><FONT face=Arial size=4>闃熷垪綆$悊鍣ㄧ殑璁劇疆</FONT></SPAN></A></P> <P>鍦ㄨ繍琛屽簲鐢ㄧ▼搴忎箣鍓嶏紝闇瑕佽緗?WebSphere MQ 鐨勯槦鍒楃鐞嗗櫒鍜岄槦鍒楋紝騫舵妸瀹冧滑緇戝畾鍒?JNDI銆傚鏋滃枩嬈㈢殑璇濓紝鍙互鎸夌収榪欓儴鍒嗙殑紺轟緥鍋氾細鍙渶 <A ><FONT color=#996699>涓嬭澆</FONT></A> 璁劇疆 WebSphere MQ 闃熷垪鐨勬壒鏂囦歡鍜屽簲鐢ㄧ▼搴忕殑婧愪唬鐮佸拰閮ㄧ講鎻忚堪絎﹀嵆鍙傛妸 zip 鏂囦歡瑙e帇鍒伴┍鍔ㄥ櫒 C:銆?/P> <P><B>璁劇疆闃熷垪</B><BR>榪愯 <I>C:\SpringSeriesPart4JMS\batch</I> 鏂囦歡澶逛腑鐨?<I>mqsetup.bat</I> 鏂囦歡銆傝繖涓壒鏂囦歡瑕佹眰鍦?path 鐜鍙橀噺涓緗ソ MQ 瀹夎鐨?bin 鏂囦歡澶癸紙渚嬪 <I>C:\mqseries\bin</I>錛夈傝繍琛屼簡鎵規枃浠朵箣鍚庯紝搴斿綋鐪嬪埌娑堟伅 鈥?CODE>All valid MQSC commands were processed</CODE>鈥濄傝鎵撳紑 MQ Explorer 騫舵鏌ュ凡緇忓垱寤虹殑闃熷垪綆$悊鍣ㄥ拰闃熷垪錛岃閫夋嫨 <B>Start -> Programs -> IBM MQSeries -> MQSeriesExplorer</B>銆傚浘 1 鏄劇ず鍑虹ず渚嬪簲鐢ㄧ▼搴?<CODE>QueueManager</CODE><CODE>MQJMS.QManager</CODE> 宸茬粡鍒涘緩騫舵鍦ㄨ繍琛屻?/P><BR><A name="spring framework"><B>鍥?1. WebSphere MQ 鐨?QueueManager 閰嶇疆</B></A><BR><IMG height=527 alt="WebSphere MQ 鐨?QueueManager 閰嶇疆" src="http://www-128.ibm.com/developerworks/cn/java/wa-spring4/mq_quesetup.jpg" width=542><BR> <P>璇峰湪搴旂敤紼嬪簭灞忓箷宸︿晶闈㈡澘涓婄偣鍑?<CODE>MQJMS.QManager</CODE> 涓嬬殑 <B>Queues</B> 鏂囦歡澶廣傚簲褰撶湅鍒板凡緇忓垱寤轟簡涓涓槦鍒?<CODE>RequestResponseQueue</CODE>錛屽鍥?2 鎵紺恒?/P><BR><A name="spring framework"><B>鍥?2. WebSphere MQ 鐨勮姹?鍝嶅簲闃熷垪閰嶇疆</B></A><BR><IMG height=401 alt="WebSphere MQ 鐨勮姹?鍝嶅簲闃熷垪閰嶇疆" src="http://www-128.ibm.com/developerworks/cn/java/wa-spring4/mq_series.gif" width=572><BR> <P>榪欏氨瀹屾垚浜嗛槦鍒楃殑璁劇疆銆?/P> <P><B>璁劇疆 JMS 鍜?JNDI 綆$悊</B><BR><BR>鍦ㄧず渚嬪簲鐢ㄧ▼搴忎腑錛孞NDI 鐨勮闂埄鐢ㄤ簡鍙互浠?JNDI 涓婚〉寰楀埌鐨勫熀浜庢枃浠剁殑 <CODE>FSContext</CODE> 鐗堟湰錛堣鍙傞槄 <A href=""><FONT color=#5c81a7>鍙傝冭祫鏂?/FONT></A>錛夈?I>FSContext.jar</I> 鏂囦歡涔熷寘鍚湪 WebSphere MQ 鐨?JMS 鏀寔褰撲腑銆傝娣誨姞鏂囦歡澶?<I>\MQSeriesInstallable\MQSeries\Java\lib</I> 鍜?<I>\MQSeriesInstallable\MQSeries\Java\bin</I> 鍒扮郴緇熺殑 PATH 鐜鍙橀噺涓傝屼笖錛岃鎶?<I>\MQSeriesInstallable\MQSeries\Java\lib</I> 鏂囦歡澶逛腑鐨勬墍鏈?jar 鏂囦歡娣誨姞鍒扮郴緇熺殑 CLASSPATH 鐜鍙橀噺涓傝繕鍙互榪愯 <I>C:\SpringSeriesPart4JMS\batch</I> 鏂囦歡澶逛腑鐨?<I>classpath.cmd</I> 鏂囦歡錛屽畠浼氳緗繀瑕佺殑 path 鍜?CLASSPATH 鍙橀噺銆傝鍋氬埌榪欑偣錛屽彧闇瑕佷慨鏀?<I>classpath.cmd</I> 鏂囦歡涓殑 <CODE>MQ_JAVA_INSTALL_PATH</CODE>錛屾妸瀹冩寚鍒?WebSphere MQ JMS 鐨勫畨瑁呯洰褰曘?/P> <P>鎺ヤ笅鏉ワ紝淇敼 <I>\MQSeriesInstallableDirectory\Java\bin</I> 涓殑 <I>JMSAdmin.config</I> 閰嶇疆鏂囦歡錛孧QSeries JMS 綆$悊紼嬪簭鐢ㄥ畠鎸囨槑搴旂敤紼嬪簭瑕佷嬌鐢ㄧ殑涓婁笅鏂囧伐鍘傚拰 JNDI 瀹炵幇鐨勫湴鍧銆傝鍙栨秷浠ヤ笅琛岀殑娉ㄩ噴錛?/P> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console">INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>騫舵敞閲婃帀鍏朵綑涓や釜 <CODE>INITIAL_CONTEXT_FACTORY</CODE> 鍙橀噺銆傝繕瑕佸彇娑堜互涓嬭鐨勬敞閲婏細</P> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console">PROVIDER_URL=file:/C:/JNDI-Directory </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>騫舵敞閲婃帀鍏朵綑涓や釜 <CODE>PROVIDER_URL</CODE> 鍙橀噺銆?/P> <P>鍙互鍦?<I>C:\SpringSeriesPart4JMS\batch</I> 鏂囦歡澶逛腑鍙戠幇鍙傝冪殑紺轟緥閰嶇疆鏂囦歡銆?/P> <P>涓轟簡淇濆瓨 JNDI 瀵硅薄錛岃鍦ㄩ┍鍔ㄥ櫒 C: 涓婂垱寤哄悕涓?<I>JNDI-Directory</I> 鐨勭洰褰曘傚垏鎹㈠埌 <I>\MQSeriesInstallableDirectory\Java\bin</I> 鐩綍騫惰繍琛?<I>JMSAdmin</I> 鎵規枃浠訛紝搴斿綋鐪嬪埌 <I>InitCtx</I> 鍙橀噺銆?/P> <P>閫愪釜杈撳叆浠ヤ笅鍐呭錛?/P> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console">def qcf(MQ_JMS_MANAGER) qmgr(MQJMS.QManager)<BR> 鎸夊洖杞?BR> def q(JMS_RequestResponseQueue) qmgr(MQJMS.QManager) queue(RequestResponseQueue)<BR> 鎸夊洖杞?BR></FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>鐜板湪宸茬粡鎶?WebSphere MQ 闃熷垪緇戝畾鍒?JNDI 瀵硅薄錛屼綔涓哄簲鐢ㄧ▼搴忓鎴峰彲浠ラ氳繃 JNDI 鏌ヨ瀵硅薄銆傜幇鍦ㄥ墿涓嬬殑灝辨槸鐪嬩唬鐮佺殑瀹為檯浣滅敤浜嗭紒</P><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=IDASKC1><span id="a488wek" class=atitle><FONT face=Arial size=4>榪愯紺轟緥</FONT></SPAN></A></P> <P>瑕佽繍琛岀ず渚嬶紝璇蜂粠 <A target=_new><FONT color=#5c81a7><a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> sourceforge download</FONT></A> 涓嬭澆 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鍜屽畠鐨勬墍鏈変緷璧栨枃浠跺茍瑙e帇錛屼緥濡傝В鍘嬪埌 c:\銆備細鍒涘緩鏂囦歡澶?<I>C:\spring-framework-1.2-rc2</I>錛堟垨鏈鏂扮増鏈級銆?/P> <P>瑕佽繍琛?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 搴旂敤紼嬪簭錛岃鎶婃湰鏂囩殑婧愪唬鐮佽В鍘嬪埌浠繪剰鏂囦歡澶癸紝渚嬪 <I>c:\</I>銆備細鍒涘緩鏂囦歡澶?<I>SpringSeriesPart4JMS</I>銆傚氨鍍忓墠闈㈡彁鍒拌繃鐨勶紝榪橀渶瑕佸畨瑁?Apache Ant 鍜屽畠鐨?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 渚濊禆 jar 鏂囦歡銆傝鎶?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 搴?鈥斺?鍗?<I><a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a>.jar</I>錛堝湪 <I>C:\spring-framework-1.2-rc2\dist</I> 涓級鍜?<I>commons-logging.jar</I>錛堝湪 <I>C:\spring-framework-1.2-rc2\lib\jakarta-commons</I> 涓級鎷瘋礉鍒?<I>SpringSeriesPart4JMS\lib</I> 鏂囦歡澶廣傝繕瑕佹妸鎵鏈夌殑 jar 搴撲粠 <I>\MQSeriesInstallableDirectory\Java\lib</I> 鐩綍鎷瘋礉鍒?<I>SpringSeriesPart4JMS\lib</I> 鏂囦歡澶廣傚叾涓寘鍚?MQseries 鍜?JMS 鐨勭浉鍏沖簱銆傜幇鍦ㄥ氨鎷ユ湁浜嗘瀯寤虹殑渚濊禆闆嗐?/P> <P>鎺ヤ笅鏉ワ紝鎵撳紑鍛戒護鎻愮ず絎︼紝鍒囨崲鍒?<I>SpringProject4</I> 鐩綍錛屽茍鍦ㄥ懡浠ゆ彁紺虹涓嬭緭鍏ヤ互涓嬪懡浠わ細</P> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console">> ant -f build-jmssender.xml. </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>榪欎細鏋勫緩騫惰繍琛?<CODE>SendMQSpringJMS</CODE> 綾伙紝瀹冧細璋冪敤 <CODE>JMSSender</CODE> 綾伙紝鍙戦佹秷鎭埌 WebSphere MQ <CODE>RequestResponse</CODE> 闃熷垪銆?CODE>SendMQSpringJMS</CODE> 榪樹細閫氳繃瀹冪殑 <CODE>ClassPathXmlApplicationContext</CODE> 瑁呭叆 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 閰嶇疆鏂囦歡銆備竴鏃?bean 鍏ㄩ儴瑁呰澆錛屽氨鍙互閫氳繃 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨?ApplicationContext 鐨?<CODE>getBean()</CODE> 鏂規硶璁塊棶 JMSSender錛堣鍙傞槄娓呭崟 7錛夈?/P><BR><A name=IDAYMC1><B>娓呭崟 7. 瑁呭叆紺轟緥搴旂敤紼嬪簭鐨?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 閰嶇疆</B></A><BR> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console">ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(new String[] { "<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a>-mqseries-jms.xml" }); JMSSender jmsSender = (JMSSender) appContext.getBean("jmsSender"); </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>娑堟伅浼犻掑埌闃熷垪涓婁箣鍚庯紝璇瘋繍琛?JMS 鎺ユ敹鏂瑰鎴鋒満浠ユ绱㈡秷鎭傝鎵撳紑鍛戒護鎻愮ず絎︼紝鍒囨崲鍒扮洰褰?<I>SpringProject4</I>錛屽茍杈撳叆錛?/P> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console">> ant -f build-jmsreceiver.xml </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>榪欎細鏋勫緩騫惰繍琛?<CODE>ReceiveMQSpringJMS</CODE> 綾伙紝璇ョ被浼氳皟鐢?<CODE>JMSReceiver</CODE> 綾伙紝浠ヤ粠 WebSphere MQ 鐨?<CODE>RequestResponse</CODE> 闃熷垪鎺ユ敹鏂囨湰娑堟伅銆傚湪鎺у埗鍙頒笂浼氭墦鍗板嚭浠ヤ笅娑堟伅錛?/P> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console">Message Received --> This is a sample message. </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P><A name=IDAWNC1><span id="sk44ywo" class=smalltitle><STRONG><FONT face=Arial>緇撴潫璇?/FONT></STRONG></SPAN></A></P> <P>鍦?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 緋誨垪鐨勬渶鍚庤繖綃囨枃绔犱腑錛屾偍瀛︿範浜?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> JMS 妗嗘灦鐨勫熀紜銆傛垜棣栧厛浠嬬粛浜嗙ず渚嬪簲鐢ㄧ▼搴忕殑鏍稿績緇勪歡 鈥斺?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> JMS 妗嗘灦鍜?IBM 鐨?WebSphere MQ 5.3錛岀劧鍚庝粙緇嶄簡濡備綍鐢?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> JMS 妯℃澘鍚?WebSphere MQ 闃熷垪鍙戦佹秷鎭拰浠庝腑鎺ユ敹娑堟伅銆傝櫧鐒惰繖涓ず渚嬮潪甯哥畝鍗曪紝浣嗘槸鍙互鎶婅繖閲屼粙緇嶇殑姝ラ搴旂敤鍒版洿澶嶆潅鐨勫簲鐢ㄧ▼搴忋?/P> <P>鎴戝笇鏈涗粙緇?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鏍稿績妯″潡鐨勮繖涓緋誨垪瀵規偍鏈夋墍甯姪銆傝鍙傞槄 <A ><FONT color=#996699>鍙傝冭祫鏂?/FONT></A> 瀛︿範鏇村鏈夊叧 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鍜?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> JMS 鐨勫唴瀹廣?/P><BR><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><span id="sgw44u4" class=atitle><A name=download><FONT face=Arial size=4>涓嬭澆</FONT></A></SPAN></P> <TABLE class=data-table-1 cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TH>鎻忚堪</TH> <TH>鍚嶅瓧</TH> <TH style="TEXT-ALIGN: right">澶у皬</TH> <TH> 涓嬭澆鏂規硶</TH></TR> <TR> <TD class=tb-row>Example code, <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> files, and build scripts</TD> <TD noWrap>wa-spring4-SpringSeriesPart4JMS.zip</TD> <TD style="TEXT-ALIGN: right" noWrap>17 KB</TD> <TD noWrap> <A class=fbox href="ftp://www6.software.ibm.com/software/developer/library/wa-spring4-SpringSeriesPart4JMS.zip"><B><FONT color=#5c81a7>FTP</FONT></B></A></TD></TR></TBODY></TABLE> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR vAlign=top> <TD colSpan=5><FONT color=#5c81a7><IMG height=12 alt="" src="http://www.ibm.com/i/c.gif" width=12 border=0></FONT></TD></TR> <TR> <TD><FONT color=#5c81a7><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/fw.gif" width=16></FONT></TD> <TD><A class=fbox ><FONT color=#5c81a7>鍏充簬涓嬭澆鏂規硶鐨勪俊鎭?/FONT></A></TD> <TD><FONT color=#5c81a7><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=50></FONT></TD> <TD><FONT color=#5c81a7><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/sout.gif" width=16></FONT></TD> <TD><A class=fbox ><FONT color=#5c81a7>鑾峰彇 Adobe廬 Reader廬</FONT></A></TD></TR></TBODY></TABLE><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><FONT color=#5c81a7><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></FONT></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><FONT color=#5c81a7><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></FONT></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=resources><span id="864kwwm" class=atitle><FONT face=Arial size=4>鍙傝冭祫鏂?</FONT></SPAN></A></P><B>瀛︿範</B><BR> <UL> <LI>鎮ㄥ彲浠ュ弬闃呮湰鏂囧湪 developerWorks 鍏ㄧ悆绔欑偣涓婄殑 <A target=_blank><FONT color=#5c81a7>鑻辨枃鍘熸枃</FONT></A>銆?BR><BR> <LI>鈥?A ><FONT color=#5c81a7>杞婚噺綰у紑鍙戠殑鎴愬姛縐樿瘈錛岀 3 閮ㄥ垎: <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 闇插嚭姘撮潰</FONT></A>鈥濓紙Bruce Tate錛宒eveloperWorks錛?005 騫?6 鏈堬級錛欱ruce Tate 浠嬬粛浜?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 浣滀負杞婚噺綰у鍣ㄧ殑鎰忎箟銆?BR><BR> <LI>鈥?A ><FONT color=#5c81a7>Writing Java Message Service programs using WebSphere MQ V5.3</FONT></A>鈥濓紙Willy Farrell錛宒eveloperWorks錛?003 騫?10 鏈堬級錛氬畨瑁呭拰閰嶇疆 WebSphere MQ 5.3 浠ヨ繘琛?JMS 寮鍙戝拰嫻嬭瘯鐨勮緇嗘寚瀵箋?BR><BR> <LI>鈥?A ><FONT color=#5c81a7>鐢?AXIS 緙栧啓 JMS 搴旂敤紼嬪簭</FONT></A>鈥濓紙Naveen Balani錛宒eveloperWorks錛?003 騫?2 鏈堬級錛氬紑鍙戝悓姝?JMS SOAP 搴旂敤紼嬪簭銆?BR><BR> <LI><A ><FONT color=#5c81a7>Web 鏋舵瀯涓撳尯</FONT></A>錛氭暟鐧劇瘒娑夊強鍩轟簬 Web 鐨勮В鍐蟲柟妗堢殑鏂囩珷銆?/LI></UL><BR><B>鑾峰緱浜у搧鍜屾妧鏈?/B><BR> <UL> <LI><A ><FONT color=#5c81a7><a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 涓婚〉</FONT></A>錛氫笅杞?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦銆?BR><BR> <LI><A ><FONT color=#5c81a7>JMS 涓婚〉</FONT></A>錛氫笅杞?Java 娑堟伅鏈嶅姟銆?BR><BR> <LI><A ><FONT color=#5c81a7>JNDI 涓婚〉</FONT></A>錛氫笅杞?JNDI 鍜?FSContext銆?BR><BR> <LI><A ><FONT color=#5c81a7>WebSphere MQ</FONT></A>錛氬緱鍒板彲淇$殑銆佸彲闈犵殑 JMS 鎻愪緵鑰呫?BR><BR></LI></UL><BR><B>璁ㄨ</B><BR> <UL> <LI>鍔犲叆鏈枃鐨?A href="javascript:void forumWindow()"><FONT color=#5c81a7>璁哄潧</FONT></A> 銆?鎮ㄤ篃鍙互閫氳繃鐐瑰嚮鏂囩珷欏墮儴鎴栬呭簳閮ㄧ殑璁哄潧閾炬帴鍙傚姞璁ㄨ銆?<BR><BR> <LI><A ><FONT color=#5c81a7>developerWorks blogs</FONT></A>錛氬姞鍏?developerWorks 紺懼尯銆?BR></LI></UL><img src ="http://www.tkk7.com/shmily432685/aggbug/19071.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/shmily432685/" target="_blank">闂墊瘬</a> 2005-11-10 00:14 <a href="http://www.tkk7.com/shmily432685/archive/2005/11/10/19071.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Spring MVC 妗嗘灦浠ュ強鍩烘湰閰嶇疆http://www.tkk7.com/shmily432685/archive/2005/11/09/19070.html闂墊瘬闂墊瘬Wed, 09 Nov 2005 15:59:00 GMThttp://www.tkk7.com/shmily432685/archive/2005/11/09/19070.htmlhttp://www.tkk7.com/shmily432685/comments/19070.htmlhttp://www.tkk7.com/shmily432685/archive/2005/11/09/19070.html#Feedback0http://www.tkk7.com/shmily432685/comments/commentRss/19070.htmlhttp://www.tkk7.com/shmily432685/services/trackbacks/19070.html  spring in action 妗嗘灦鎻愪緵浜嗘瀯寤?Web 搴旂敤紼嬪簭鐨勫叏鍔熻兘 MVC 妯″潡銆備嬌鐢?spring in action 鍙彃鍏ョ殑 MVC 鏋舵瀯錛屽彲浠ラ夋嫨鏄嬌鐢ㄥ唴緗殑 spring in action Web 妗嗘灦榪樻槸 Struts 榪欐牱鐨?Web 妗嗘灦銆傞氳繃絳栫暐鎺ュ彛錛孲pring 妗嗘灦鏄珮搴﹀彲閰嶇疆鐨勶紝鑰屼笖鍖呭惈澶氱瑙嗗浘鎶鏈紝渚嬪 JavaServer Pages錛圝SP錛夋妧鏈乂elocity銆乀iles銆乮Text 鍜?POI銆係pring MVC 妗嗘灦騫朵笉鐭ラ亾浣跨敤鐨勮鍥撅紝鎵浠ヤ笉浼氬己榪偍鍙嬌鐢?JSP 鎶鏈係pring MVC 鍒嗙浜嗘帶鍒跺櫒銆佹ā鍨嬪璞°佸垎媧懼櫒浠ュ強澶勭悊紼嬪簭瀵硅薄鐨勮鑹詫紝榪欑鍒嗙璁╁畠浠洿瀹規槗榪涜瀹氬埗銆?/P>

  spring in action 鐨?Web MVC 妗嗘灦鏄洿緇?DispatcherServlet 璁捐鐨勶紝瀹冩妸璇鋒眰鍒嗘淳緇欏鐞嗙▼搴忥紝鍚屾椂甯︽湁鍙厤緗殑澶勭悊紼嬪簭鏄犲皠銆佽鍥捐В鏋愩佹湰鍦拌璦銆佷富棰樿В鏋愪互鍙婁笂杞芥枃浠舵敮鎸併傞粯璁ょ殑澶勭悊紼嬪簭鏄潪甯哥畝鍗曠殑 Controller 鎺ュ彛錛屽彧鏈変竴涓柟娉?ModelAndView handleRequest(request, response)銆係pring 鎻愪緵浜嗕竴涓帶鍒跺櫒灞傛緇撴瀯錛屽彲浠ユ淳鐢熷瓙綾匯傚鏋滃簲鐢ㄧ▼搴忛渶瑕佸鐞嗙敤鎴瘋緭鍏ヨ〃鍗曪紝閭d箞鍙互緇ф壙 AbstractFormController銆傚鏋滈渶瑕佹妸澶氶〉杈撳叆澶勭悊鍒頒竴涓〃鍗曪紝閭d箞鍙互緇ф壙 AbstractWizardFormController銆?/P>

  紺轟緥搴旂敤紼嬪簭鏈夊姪浜庣洿瑙傚湴瀛︿範榪欎簺鐗規с傞摱琛屽簲鐢ㄧ▼搴忓厑璁哥敤鎴鋒绱粬浠殑甯愭埛淇℃伅銆傚湪鏋勫緩閾惰搴旂敤紼嬪簭鐨勮繃紼嬩腑錛屽彲浠ュ鍒板浣曢厤緗?spring in action MVC 妗嗘灦鍜屽疄鐜版鏋剁殑瑙嗗浘灞傦紝瑙嗗浘灞傚寘鎷?JSTL 鏍囪錛堢敤浜庢樉紺鴻緭鍑虹殑鏁版嵁錛夊拰JavaServer Pages 鎶鏈?BR>

閰嶇疆 spring in action MVC

瑕佸紑濮嬫瀯寤虹ず渚嬪簲鐢ㄧ▼搴忥紝璇烽厤緗?spring in action MVC 鐨?DispatcherServlet銆傝鍦?web.xml 鏂囦歡涓敞鍐屾墍鏈夐厤緗傛竻鍗?1 鏄劇ず浜嗗浣曢厤緗?sampleBankingServlet銆?/P>


娓呭崟 1. 閰嶇疆 spring in action MVC DispatcherServlet

<servlet>
   <servlet-name>sampleBankingServlet</servlet-name>  
   <servlet-class>
      org.springframework.we.servlet.DispatcherServlet
   <servlet-class>
   <load-on-startup>1<load-on-startup>
<servlet>        

DispatcherServlet 浠庝竴涓?XML 鏂囦歡瑁呭叆 spring in action 搴旂敤紼嬪簭涓婁笅鏂囷紝XML 鏂囦歡鐨勫悕縐版槸 servlet 鐨勫悕縐板悗闈㈠姞涓?-servlet 銆傚湪榪欎釜紺轟緥涓紝DispatcherServlet 浼氫粠 sampleBankingServlet-servlet.xml 鏂囦歡瑁呭叆搴旂敤紼嬪簭涓婁笅鏂囥?

閰嶇疆搴旂敤紼嬪簭鐨?URL

涓嬩竴姝ユ槸閰嶇疆鎯寵 sampleBankingServlet 澶勭悊鐨?URL銆傚悓鏍鳳紝榪樻槸瑕佸湪 web.xml 涓敞鍐屾墍鏈夎繖浜涗俊鎭?/P>


娓呭崟 2. 閰嶇疆鎯寵澶勭悊鐨?URL

<servlet-mapping>
<servlet-name> sampleBankingServlet<servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>

瑁呭叆閰嶇疆鏂囦歡

涓嬮潰錛岃鍏ラ厤緗枃浠躲備負浜嗗仛鍒拌繖鐐癸紝璇蜂負 Servlet 2.3 瑙勮寖娉ㄥ唽 ContextLoaderListener 鎴栦負 Servlet 2.2 鍙婁互涓嬬殑瀹瑰櫒娉ㄥ唽 ContextLoaderServlet銆備負浜嗕繚闅滃悗鍚戝吋瀹規э紝璇風敤 ContextLoaderServlet銆傚湪鍚姩 Web 搴旂敤紼嬪簭鏃訛紝ContextLoaderServlet 浼氳鍏?spring in action 閰嶇疆鏂囦歡銆傛竻鍗?3 娉ㄥ唽浜?ContextLoaderServlet銆?/P>


娓呭崟 3. 娉ㄥ唽 ContextLoaderServlet

<servlet>
  <servlet-name>context>servlet-name>
  <servlet-class>
     org.springframework.web.context.ContextLoaderServlet
  </servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>


contextConfigLocation 鍙傛暟瀹氫箟浜嗚瑁呭叆鐨?spring in action 閰嶇疆鏂囦歡錛屽涓嬮潰鐨?servlet 涓婁笅鏂囨墍紺恒?/P>


<context-param>
<param-value>contextConfigLocation</param-value>
<param-value>/WEB-INF/sampleBanking-services.xml</param-value>
</context-param>

sampleBanking-services.xml 鏂囦歡浠h〃紺轟緥閾惰搴旂敤紼嬪簭鏈嶅姟鐨勯厤緗拰 bean 閰嶇疆銆傚鏋滄兂瑁呭叆澶氫釜閰嶇疆鏂囦歡錛屽彲浠ュ湪 <param-value> 鏍囪涓敤閫楀彿浣滃垎闅旂銆?BR>-------------------------------------------------------------------------------------------------------------------------

spring in action MVC 紺轟緥

紺轟緥閾惰搴旂敤紼嬪簭鍏佽鐢ㄦ埛鏍規嵁鎯熶竴鐨?ID 鍜屽彛浠ゆ煡鐪嬪笎鎴蜂俊鎭傝櫧鐒?spring in action MVC 鎻愪緵浜嗗叾浠栭夐」錛屼絾鏄垜灝嗛噰鐢?JSP 鎶鏈綔涓鴻鍥鵑〉闈€傝繖涓畝鍗曠殑搴旂敤紼嬪簭鍖呭惈涓涓鍥鵑〉鐢ㄤ簬鐢ㄦ埛杈撳叆錛圛D 鍜屽彛浠わ級錛屽彟涓欏墊樉紺虹敤鎴風殑甯愭埛淇℃伅銆?/P>

鎴戜粠 LoginBankController 寮濮嬶紝瀹冩墿灞曚簡 spring in action MVC 鐨?SimpleFormController銆?CODE>SimpleFormContoller 鎻愪緵浜嗘樉紺轟粠 HTTP GET 璇鋒眰鎺ユ敹鍒扮殑琛ㄥ崟鐨勫姛鑳斤紝浠ュ強澶勭悊浠?HTTP POST 鎺ユ敹鍒扮殑鐩稿悓琛ㄥ崟鏁版嵁鐨勫姛鑳姐?CODE>LoginBankController 鐢?AuthenticationService 鍜?AccountServices 鏈嶅姟榪涜楠岃瘉錛屽茍鎵ц甯愭埛媧誨姩銆傗?閰嶇疆瑙嗗浘灞炴?/FONT> 鈥濅竴鑺備腑鐨?娓呭崟 5 鎻忚堪浜嗗浣曟妸 AuthenticationService 鍜?AccountServices 榪炴帴鍒?LoginBankController銆?娓呭崟 4 鏄劇ず浜?LoginBankController 鐨勪唬鐮併?/P>

閰嶇疆瑙嗗浘灞炴?/FONT>

涓嬮潰錛屾垜蹇呴』娉ㄥ唽鍦ㄦ帴鏀跺埌 HTTP GET 璇鋒眰鏃舵樉紺虹殑欏甸潰銆傛垜鍦?spring in action 閰嶇疆涓敤 formView 灞炴ф敞鍐岃繖涓〉闈紝濡傛竻鍗?5 鎵紺恒?CODE>sucessView 灞炴т唬琛ㄨ〃鍗曟暟鎹彁浜よ屼笖 doSubmitAction() 鏂規硶涓殑閫昏緫鎴愬姛鎵ц涔嬪悗鏄劇ず鐨勯〉闈€?CODE>formView 鍜?sucessView 灞炴ч兘浠h〃琚畾涔夌殑瑙嗗浘鐨勯昏緫鍚嶇О錛岄昏緫鍚嶇О鏄犲皠鍒板疄闄呯殑瑙嗗浘欏甸潰銆?/P>


娓呭崟 5. 娉ㄥ唽 LoginBankController
  
   <bean id="loginBankController"
         class="springexample.controller.LoginBankController">
      <property name="sessionForm"><value>true</value></property>
   <property name="commandName"><value>loginCommand</value></property>
   <property name="commandClass">
      <value>springexample.commands.LoginCommand</value>
   </property>

      <property name="authenticationService">
         <ref bean="authenticationService" />
      </property>
      <property name="accountServices">
         <ref bean="accountServices" />
      </property>
      <property name="formView">
         <value>login</value>
      </property>
      <property name="successView">
         <value>accountdetail</value>
      </property>

   </bean>

commandClass 鍜?commandName 鏍囪鍐沖畾灝嗗湪瑙嗗浘欏甸潰涓椿鍔ㄧ殑 bean銆備緥濡傦紝鍙互閫氳繃 login.jsp 欏甸潰璁塊棶 loginCommand bean錛岃繖涓〉闈㈡槸搴旂敤紼嬪簭鐨勭櫥褰曢〉闈€備竴鏃︾敤鎴鋒彁浜や簡鐧誨綍欏甸潰錛屽簲鐢ㄧ▼搴忓氨鍙互浠?LoginBankController 鐨?onSubmit() 鏂規硶涓殑鍛戒護瀵硅薄媯绱㈠嚭琛ㄥ崟鏁版嵁銆?/P>

瑙嗗浘瑙f瀽鍣?/FONT>

spring in action MVC 鐨?瑙嗗浘瑙f瀽鍣?/I> 鎶婃瘡涓昏緫鍚嶇О瑙f瀽鎴愬疄闄呯殑璧勬簮錛屽嵆鍖呭惈甯愭埛淇℃伅鐨?JSP 鏂囦歡銆傛垜鐢ㄧ殑鏄?spring in action 鐨?InternalResourceViewResolver錛屽 娓呭崟 6 鎵紺恒?/P>

鍥犱負鎴戝湪 JSP 欏甸潰涓嬌鐢ㄤ簡 JSTL 鏍囪錛屾墍浠ョ敤鎴風殑鐧誨綍鍚嶇О瑙f瀽鎴愯祫婧?/jsp/login.jsp錛岃?viewClass 鎴愪負 JstlView銆?/P>

楠岃瘉鍜屽笎鎴鋒湇鍔?/FONT>

灝卞儚鍓嶉潰鎻愬埌鐨勶紝LoginBankController 鍐呴儴榪炴帴浜?spring in action 鐨?AccountServices 鍜?AuthenticationService銆?CODE>AuthenticationService 綾誨鐞嗛摱琛屽簲鐢ㄧ▼搴忕殑楠岃瘉銆?CODE>AccountServices 綾誨鐞嗗吀鍨嬬殑閾惰鏈嶅姟錛屼緥濡傛煡鎵句氦鏄撳拰鐢墊眹銆傛竻鍗?7 鏄劇ず浜嗛摱琛屽簲鐢ㄧ▼搴忕殑楠岃瘉鍜屽笎鎴鋒湇鍔$殑閰嶇疆銆?/P>


娓呭崟 7. 閰嶇疆楠岃瘉鍜屽笎鎴鋒湇鍔?/B>

<beans>

   <bean id="accountServices" 
      class="springexample.services.AccountServices">

   </bean>

   <bean id="authenticationService" 
      class="springexample.services.AuthenticationService">

   </bean>

</beans>

浠ヤ笂鏈嶅姟鍦?sampleBanking-services.xml 涓敞鍐岋紝鐒跺悗瑁呭叆 web.xml 鏂囦歡涓紝灝卞儚 鍓嶉潰璁ㄨ鐨勯偅鏍?/FONT>銆傛帶鍒跺櫒鍜屾湇鍔¢厤緗ソ鍚庯紝榪欎釜綆鍗曠殑搴旂敤紼嬪簭灝卞畬鎴愪簡銆傜幇鍦ㄦ垜浠潵鐪嬬湅閮ㄧ講鍜屾祴璇曞畠鏃朵細鍙戠敓浠涔?
-------------------------------------------------------------------------------------------------------------------------

閮ㄧ講搴旂敤紼嬪簭

鎴戞妸紺轟緥搴旂敤紼嬪簭閮ㄧ講鍦?Tomcat servlet 瀹瑰櫒涓俆omcat 鏄?Java Servlet 鍜?Java ServerPagest 鎶鏈殑瀹樻柟鍙傝冨疄鐜頒腑浣跨敤鐨?servlet 瀹瑰櫒銆傚鏋滀互鍓嶆病榪欎箞鍋氳繃錛岃 涓嬭澆 jakarta-tomcat-5.0.28.exe 騫惰繍琛屽畠鎶?Tomcat 瀹夎鍒拌嚜宸卞枩嬈㈢殑浠諱綍浣嶇疆錛屼緥濡?c:\tomcat5.0銆?/P>

鎺ヤ笅鏉ワ紝涓嬭澆紺轟緥浠g爜 騫墮噴鏀懼埌椹卞姩鍣紙渚嬪 c:\ 錛変笂銆傚垱寤轟簡 spring in action 欏圭洰鐨勬枃浠跺す涔嬪悗錛屾墦寮瀹冨茍鎶?spring in action-banking 瀛愭枃浠跺す鎷瘋礉鍒?c:\tomvat5.0\webapps銆俿pring-banking 鏂囦歡澶規槸涓涓?Web 。妗堝Q岄噷闈㈠寘鍚?spring in action MVC 紺轟緥搴旂敤紼嬪簭銆俵ib 鏂囦歡澶瑰寘鍚簲鐢ㄧ▼搴忛渶瑕佺殑 spring in action 妗嗘灦銆佷笌Spring 鐩稿叧鐨?MVC 搴撲互鍙?JSTL 鏍囪搴撳拰 jar 鏂囦歡銆?/P>

瑕佸惎鍔?Tomcat 鏈嶅姟鍣紝璇蜂嬌鐢ㄤ互涓嬪懡浠わ細

cd bin C:\Tomcat 5.0\bin> catalina.bat start

Tomcat 搴斿綋鍚姩騫墮儴緗?spring in action MVC 紺轟緥搴旂敤紼嬪簭銆?BR>=================================================================================

嫻嬭瘯搴旂敤紼嬪簭

瑕佹祴璇曞簲鐢ㄧ▼搴忥紝璇鋒墦寮 Web 嫻忚鍣紝鎸囧悜 http://localhost:tomcatport/springbanking 騫剁敤 Tomcat 鏈嶅姟鍣ㄥ疄闄呰繍琛岀殑绔彛鏇挎崲 tomcatport銆傚簲褰撶湅鍒板浘 1 鎵紺虹殑鐧誨綍灞忓箷銆傝緭鍏ョ敤鎴?ID 鈥渁dmin鈥濆拰鍙d護鈥減assword鈥濓紝騫舵寜涓嬬櫥褰曟寜閽傚叾浠栫敤鎴?ID 鎴栧彛浠や細閫犳垚鏉ヨ嚜楠岃瘉鏈嶅姟鐨勯敊璇?/P>


鍥?1. spring in action MVC 紺轟緥鐧誨綍灞忓箷
Spring MVC 紺轟緥鐧誨綍灞忓箷鐨勬埅灞? src=

鐧誨綍鎴愬姛涔嬪悗錛屼細鐪嬪埌鍥?2 鎵紺虹殑甯愭埛緇嗚妭欏甸潰銆?/P>


鍥?2. spring in action MVC 紺轟緥甯愭埛緇嗚妭欏甸潰
Spring MVC 紺轟緥甯愭埛緇嗚妭欏甸潰鐨勬埅灞? src=
================================================================================

緇撴潫璇?/FONT>

鍦ㄤ笁閮ㄥ垎鐨?spring in action 緋誨垪 鐨勭涓夌瘒鏂囩珷涓紝鎴戜粙緇嶄簡 spring in action MVC 妗嗘灦鐨勭壒鎬с傛垜婕旂ず浜嗗浣曢厤緗拰寮鍙?spring in action MVC 搴旂敤紼嬪簭銆佸浣曢厤緗?spring in action MVC 鎺у埗鍣ㄥ拰鍚戝叾涓彃鍏ヤ緷璧栭」銆佸浣曠敤 JavaServer Pages 鎶鏈紑鍙戝簲鐢ㄧ▼搴忚鍥撅紝浠ュ強濡備綍鎶婅嚜宸辯殑欏甸潰涓?spring in action MVC 鐨勮鍥懼眰闆嗘垚銆傛葷粨榪欑瘒鏂囩珷鏃訛紝鎴戞紨紺轟簡濡備綍鍦?Tomcat servlet 瀹瑰櫒涓儴緗插簲鐢ㄧ▼搴忎互鍙婂浣曞湪嫻忚鍣ㄤ腑嫻嬭瘯瀹冦?/P>

璇風戶緇叧娉?spring in action 緋誨垪 鐨勪笅涓綃囨枃绔犮傚湪涓嬩竴綃囨枃绔犱腑錛屾垜灝嗕粙緇嶅浣曟妸鍩轟簬 JMS 鐨勫簲鐢ㄧ▼搴忎笌 spring in action 妗嗘灦闆嗘垚銆傚悓鏃訛紝璇峰弬闃?鍙傝冭祫鏂?/FONT> 瀛︿範鏇村鏈夊叧 spring in action 妗嗘灦鍜?spring in action MVC 鐨勫唴瀹廣?BR>=================================================================================

涓嬭澆

鎻忚堪 鍚嶅瓧 澶у皬  涓嬭澆鏂規硶
Example source code, spring in action files, jar files wa-spring3-SpringProjectPart3.zip 1966 KB  FTP

=================================================================================
鏂囨。閫夐」
灝嗘欏典綔涓虹數瀛愰偖浠跺彂閫?src="http://www.ibm.com/i/v14/icons/em.gif"

灝嗘欏典綔涓虹數瀛愰偖浠跺彂閫?/FONT>

鏈樉紺洪渶瑕?JavaScript 鐨勬枃妗i夐」

璁ㄨ

鏍蜂緥浠g爜


瀵規欏電殑璇勪環

甯姪鎴戜滑鏀硅繘榪欎簺鍐呭


綰у埆: 涓駭

Naveen Balani , 鎶鏈灦鏋勫笀, Webify Solutions

2005 騫?10 鏈?13 鏃?/P>

鍦?Naveen Balani 鐨?spring in action 緋誨垪鐨勭 3 閮ㄥ垎涓紝瀛︿範濡備綍鐢?spring in action 妗嗘灦寮鍙戝熀浜?MVC 鐨?搴旂敤紼嬪簭銆?/BLOCKQUOTE>

鍦?spring in action 緋誨垪 鐨勭 3 閮ㄥ垎涓紝鎴戜粙緇?spring in action MVC 妗嗘灦銆傚氨鍍忓湪浠ュ墠鐨勬枃绔犱腑涓鏍鳳紝鎴戠敤閾惰紺轟緥浠嬬粛濡備綍寤烘ā鍜屾瀯寤虹畝鍗曠殑搴旂敤紼嬪簭銆傜ず渚嬪簲鐢ㄧ▼搴忓寘鍚簡宸茬粡瀛﹁繃鐨勪竴浜涙妧鏈紙渚嬪渚濊禆娉ㄥ叆錛夛紝浣嗘槸涓昏婕旂ず spring in action MVC 鐨勭壒鎬с?/P>

鍦ㄥ紑濮嬩箣鍓嶏紝璇?涓嬭澆榪欑瘒鏂囩珷鐨勬簮浠g爜銆傝鍙傞槄 鍙傝冭祫鏂?/FONT> 璁塊棶 spring in action 妗嗘灦鍜?Tomcat 5.0錛岃繍琛岀ず渚嬮渶瑕佸畠浠?/P>

spring in action MVC 妗嗘灦

spring in action 妗嗘灦鎻愪緵浜嗘瀯寤?Web 搴旂敤紼嬪簭鐨勫叏鍔熻兘 MVC 妯″潡銆備嬌鐢?spring in action 鍙彃鍏ョ殑 MVC 鏋舵瀯錛屽彲浠ラ夋嫨鏄嬌鐢ㄥ唴緗殑 spring in action Web 妗嗘灦榪樻槸 Struts 榪欐牱鐨?Web 妗嗘灦銆傞氳繃絳栫暐鎺ュ彛錛孲pring 妗嗘灦鏄珮搴﹀彲閰嶇疆鐨勶紝鑰屼笖鍖呭惈澶氱瑙嗗浘鎶鏈紝渚嬪 JavaServer Pages錛圝SP錛夋妧鏈乂elocity銆乀iles銆乮Text 鍜?POI銆係pring MVC 妗嗘灦騫朵笉鐭ラ亾浣跨敤鐨勮鍥撅紝鎵浠ヤ笉浼氬己榪偍鍙嬌鐢?JSP 鎶鏈係pring MVC 鍒嗙浜嗘帶鍒跺櫒銆佹ā鍨嬪璞°佸垎媧懼櫒浠ュ強澶勭悊紼嬪簭瀵硅薄鐨勮鑹詫紝榪欑鍒嗙璁╁畠浠洿瀹規槗榪涜瀹氬埗銆?/P>

spring in action 鐨?Web MVC 妗嗘灦鏄洿緇?DispatcherServlet 璁捐鐨勶紝瀹冩妸璇鋒眰鍒嗘淳緇欏鐞嗙▼搴忥紝鍚屾椂甯︽湁鍙厤緗殑澶勭悊紼嬪簭鏄犲皠銆佽鍥捐В鏋愩佹湰鍦拌璦銆佷富棰樿В鏋愪互鍙婁笂杞芥枃浠舵敮鎸併傞粯璁ょ殑澶勭悊紼嬪簭鏄潪甯哥畝鍗曠殑 Controller 鎺ュ彛錛屽彧鏈変竴涓柟娉?ModelAndView handleRequest(request, response)銆係pring 鎻愪緵浜嗕竴涓帶鍒跺櫒灞傛緇撴瀯錛屽彲浠ユ淳鐢熷瓙綾匯傚鏋滃簲鐢ㄧ▼搴忛渶瑕佸鐞嗙敤鎴瘋緭鍏ヨ〃鍗曪紝閭d箞鍙互緇ф壙 AbstractFormController銆傚鏋滈渶瑕佹妸澶氶〉杈撳叆澶勭悊鍒頒竴涓〃鍗曪紝閭d箞鍙互緇ф壙 AbstractWizardFormController銆?/P>

紺轟緥搴旂敤紼嬪簭鏈夊姪浜庣洿瑙傚湴瀛︿範榪欎簺鐗規с傞摱琛屽簲鐢ㄧ▼搴忓厑璁哥敤鎴鋒绱粬浠殑甯愭埛淇℃伅銆傚湪鏋勫緩閾惰搴旂敤紼嬪簭鐨勮繃紼嬩腑錛屽彲浠ュ鍒板浣曢厤緗?spring in action MVC 妗嗘灦鍜屽疄鐜版鏋剁殑瑙嗗浘灞傦紝瑙嗗浘灞傚寘鎷?JSTL 鏍囪錛堢敤浜庢樉紺鴻緭鍑虹殑鏁版嵁錛夊拰JavaServer Pages 鎶鏈?/P>

鍥為〉棣?/FONT>


閰嶇疆 spring in action MVC

瑕佸紑濮嬫瀯寤虹ず渚嬪簲鐢ㄧ▼搴忥紝璇烽厤緗?spring in action MVC 鐨?DispatcherServlet銆傝鍦?web.xml 鏂囦歡涓敞鍐屾墍鏈夐厤緗傛竻鍗?1 鏄劇ず浜嗗浣曢厤緗?sampleBankingServlet銆?/P>
娓呭崟 1. 閰嶇疆 spring in action MVC DispatcherServlet

<servlet>
   <servlet-name>sampleBankingServlet</servlet-name>  
   <servlet-class>
      org.springframework.we.servlet.DispatcherServlet
   <servlet-class>
   <load-on-startup>1<load-on-startup>
<servlet>        

DispatcherServlet 浠庝竴涓?XML 鏂囦歡瑁呭叆 spring in action 搴旂敤紼嬪簭涓婁笅鏂囷紝XML 鏂囦歡鐨勫悕縐版槸 servlet 鐨勫悕縐板悗闈㈠姞涓?-servlet 銆傚湪榪欎釜紺轟緥涓紝DispatcherServlet 浼氫粠 sampleBankingServlet-servlet.xml 鏂囦歡瑁呭叆搴旂敤紼嬪簭涓婁笅鏂囥?

閰嶇疆搴旂敤紼嬪簭鐨?URL

涓嬩竴姝ユ槸閰嶇疆鎯寵 sampleBankingServlet 澶勭悊鐨?URL銆傚悓鏍鳳紝榪樻槸瑕佸湪 web.xml 涓敞鍐屾墍鏈夎繖浜涗俊鎭?/P>
娓呭崟 2. 閰嶇疆鎯寵澶勭悊鐨?URL

<servlet-mapping>
<servlet-name> sampleBankingServlet<servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>

瑁呭叆閰嶇疆鏂囦歡

涓嬮潰錛岃鍏ラ厤緗枃浠躲備負浜嗗仛鍒拌繖鐐癸紝璇蜂負 Servlet 2.3 瑙勮寖娉ㄥ唽 ContextLoaderListener 鎴栦負 Servlet 2.2 鍙婁互涓嬬殑瀹瑰櫒娉ㄥ唽 ContextLoaderServlet銆備負浜嗕繚闅滃悗鍚戝吋瀹規э紝璇風敤 ContextLoaderServlet銆傚湪鍚姩 Web 搴旂敤紼嬪簭鏃訛紝ContextLoaderServlet 浼氳鍏?spring in action 閰嶇疆鏂囦歡銆傛竻鍗?3 娉ㄥ唽浜?ContextLoaderServlet銆?/P>
娓呭崟 3. 娉ㄥ唽 ContextLoaderServlet

<servlet>
  <servlet-name>context>servlet-name>
  <servlet-class>
     org.springframework.web.context.ContextLoaderServlet
  </servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>


contextConfigLocation 鍙傛暟瀹氫箟浜嗚瑁呭叆鐨?spring in action 閰嶇疆鏂囦歡錛屽涓嬮潰鐨?servlet 涓婁笅鏂囨墍紺恒?/P>

<context-param>
<param-value>contextConfigLocation</param-value>
<param-value>/WEB-INF/sampleBanking-services.xml</param-value>
</context-param>

sampleBanking-services.xml 鏂囦歡浠h〃紺轟緥閾惰搴旂敤紼嬪簭鏈嶅姟鐨勯厤緗拰 bean 閰嶇疆銆傚鏋滄兂瑁呭叆澶氫釜閰嶇疆鏂囦歡錛屽彲浠ュ湪 <param-value> 鏍囪涓敤閫楀彿浣滃垎闅旂銆?/P>

鍥為〉棣?/FONT>


spring in action MVC 紺轟緥

紺轟緥閾惰搴旂敤紼嬪簭鍏佽鐢ㄦ埛鏍規嵁鎯熶竴鐨?ID 鍜屽彛浠ゆ煡鐪嬪笎鎴蜂俊鎭傝櫧鐒?spring in action MVC 鎻愪緵浜嗗叾浠栭夐」錛屼絾鏄垜灝嗛噰鐢?JSP 鎶鏈綔涓鴻鍥鵑〉闈€傝繖涓畝鍗曠殑搴旂敤紼嬪簭鍖呭惈涓涓鍥鵑〉鐢ㄤ簬鐢ㄦ埛杈撳叆錛圛D 鍜屽彛浠わ級錛屽彟涓欏墊樉紺虹敤鎴風殑甯愭埛淇℃伅銆?/P>

鎴戜粠 LoginBankController 寮濮嬶紝瀹冩墿灞曚簡 spring in action MVC 鐨?SimpleFormController銆?CODE>SimpleFormContoller 鎻愪緵浜嗘樉紺轟粠 HTTP GET 璇鋒眰鎺ユ敹鍒扮殑琛ㄥ崟鐨勫姛鑳斤紝浠ュ強澶勭悊浠?HTTP POST 鎺ユ敹鍒扮殑鐩稿悓琛ㄥ崟鏁版嵁鐨勫姛鑳姐?CODE>LoginBankController 鐢?AuthenticationService 鍜?AccountServices 鏈嶅姟榪涜楠岃瘉錛屽茍鎵ц甯愭埛媧誨姩銆傗?閰嶇疆瑙嗗浘灞炴?/FONT> 鈥濅竴鑺備腑鐨?娓呭崟 5 鎻忚堪浜嗗浣曟妸 AuthenticationService 鍜?AccountServices 榪炴帴鍒?LoginBankController銆?娓呭崟 4 鏄劇ず浜?LoginBankController 鐨勪唬鐮併?/P>

閰嶇疆瑙嗗浘灞炴?/FONT>

涓嬮潰錛屾垜蹇呴』娉ㄥ唽鍦ㄦ帴鏀跺埌 HTTP GET 璇鋒眰鏃舵樉紺虹殑欏甸潰銆傛垜鍦?spring in action 閰嶇疆涓敤 formView 灞炴ф敞鍐岃繖涓〉闈紝濡傛竻鍗?5 鎵紺恒?CODE>sucessView 灞炴т唬琛ㄨ〃鍗曟暟鎹彁浜よ屼笖 doSubmitAction() 鏂規硶涓殑閫昏緫鎴愬姛鎵ц涔嬪悗鏄劇ず鐨勯〉闈€?CODE>formView 鍜?sucessView 灞炴ч兘浠h〃琚畾涔夌殑瑙嗗浘鐨勯昏緫鍚嶇О錛岄昏緫鍚嶇О鏄犲皠鍒板疄闄呯殑瑙嗗浘欏甸潰銆?/P>
娓呭崟 5. 娉ㄥ唽 LoginBankController
  
   <bean id="loginBankController"
         class="springexample.controller.LoginBankController">
      <property name="sessionForm"><value>true</value></property>
   <property name="commandName"><value>loginCommand</value></property>
   <property name="commandClass">
      <value>springexample.commands.LoginCommand</value>
   </property>

      <property name="authenticationService">
         <ref bean="authenticationService" />
      </property>
      <property name="accountServices">
         <ref bean="accountServices" />
      </property>
      <property name="formView">
         <value>login</value>
      </property>
      <property name="successView">
         <value>accountdetail</value>
      </property>

   </bean>

commandClass 鍜?commandName 鏍囪鍐沖畾灝嗗湪瑙嗗浘欏甸潰涓椿鍔ㄧ殑 bean銆備緥濡傦紝鍙互閫氳繃 login.jsp 欏甸潰璁塊棶 loginCommand bean錛岃繖涓〉闈㈡槸搴旂敤紼嬪簭鐨勭櫥褰曢〉闈€備竴鏃︾敤鎴鋒彁浜や簡鐧誨綍欏甸潰錛屽簲鐢ㄧ▼搴忓氨鍙互浠?LoginBankController 鐨?onSubmit() 鏂規硶涓殑鍛戒護瀵硅薄媯绱㈠嚭琛ㄥ崟鏁版嵁銆?/P>

瑙嗗浘瑙f瀽鍣?/FONT>

spring in action MVC 鐨?瑙嗗浘瑙f瀽鍣?/I> 鎶婃瘡涓昏緫鍚嶇О瑙f瀽鎴愬疄闄呯殑璧勬簮錛屽嵆鍖呭惈甯愭埛淇℃伅鐨?JSP 鏂囦歡銆傛垜鐢ㄧ殑鏄?spring in action 鐨?InternalResourceViewResolver錛屽 娓呭崟 6 鎵紺恒?/P>

鍥犱負鎴戝湪 JSP 欏甸潰涓嬌鐢ㄤ簡 JSTL 鏍囪錛屾墍浠ョ敤鎴風殑鐧誨綍鍚嶇О瑙f瀽鎴愯祫婧?/jsp/login.jsp錛岃?viewClass 鎴愪負 JstlView銆?/P>

楠岃瘉鍜屽笎鎴鋒湇鍔?/FONT>

灝卞儚鍓嶉潰鎻愬埌鐨勶紝LoginBankController 鍐呴儴榪炴帴浜?spring in action 鐨?AccountServices 鍜?AuthenticationService銆?CODE>AuthenticationService 綾誨鐞嗛摱琛屽簲鐢ㄧ▼搴忕殑楠岃瘉銆?CODE>AccountServices 綾誨鐞嗗吀鍨嬬殑閾惰鏈嶅姟錛屼緥濡傛煡鎵句氦鏄撳拰鐢墊眹銆傛竻鍗?7 鏄劇ず浜嗛摱琛屽簲鐢ㄧ▼搴忕殑楠岃瘉鍜屽笎鎴鋒湇鍔$殑閰嶇疆銆?/P>
娓呭崟 7. 閰嶇疆楠岃瘉鍜屽笎鎴鋒湇鍔?/B>

<beans>

   <bean id="accountServices" 
      class="springexample.services.AccountServices">

   </bean>

   <bean id="authenticationService" 
      class="springexample.services.AuthenticationService">

   </bean>

</beans>

浠ヤ笂鏈嶅姟鍦?sampleBanking-services.xml 涓敞鍐岋紝鐒跺悗瑁呭叆 web.xml 鏂囦歡涓紝灝卞儚 鍓嶉潰璁ㄨ鐨勯偅鏍?/FONT>銆傛帶鍒跺櫒鍜屾湇鍔¢厤緗ソ鍚庯紝榪欎釜綆鍗曠殑搴旂敤紼嬪簭灝卞畬鎴愪簡銆傜幇鍦ㄦ垜浠潵鐪嬬湅閮ㄧ講鍜屾祴璇曞畠鏃朵細鍙戠敓浠涔?



鍥為〉棣?/FONT>


閮ㄧ講搴旂敤紼嬪簭

鎴戞妸紺轟緥搴旂敤紼嬪簭閮ㄧ講鍦?Tomcat servlet 瀹瑰櫒涓俆omcat 鏄?Java Servlet 鍜?Java ServerPagest 鎶鏈殑瀹樻柟鍙傝冨疄鐜頒腑浣跨敤鐨?servlet 瀹瑰櫒銆傚鏋滀互鍓嶆病榪欎箞鍋氳繃錛岃 涓嬭澆 jakarta-tomcat-5.0.28.exe 騫惰繍琛屽畠鎶?Tomcat 瀹夎鍒拌嚜宸卞枩嬈㈢殑浠諱綍浣嶇疆錛屼緥濡?c:\tomcat5.0銆?/P>

鎺ヤ笅鏉ワ紝涓嬭澆紺轟緥浠g爜 騫墮噴鏀懼埌椹卞姩鍣紙渚嬪 c:\ 錛変笂銆傚垱寤轟簡 spring in action 欏圭洰鐨勬枃浠跺す涔嬪悗錛屾墦寮瀹冨茍鎶?spring in action-banking 瀛愭枃浠跺す鎷瘋礉鍒?c:\tomvat5.0\webapps銆俿pring-banking 鏂囦歡澶規槸涓涓?Web 。妗堝Q岄噷闈㈠寘鍚?spring in action MVC 紺轟緥搴旂敤紼嬪簭銆俵ib 鏂囦歡澶瑰寘鍚簲鐢ㄧ▼搴忛渶瑕佺殑 spring in action 妗嗘灦銆佷笌Spring 鐩稿叧鐨?MVC 搴撲互鍙?JSTL 鏍囪搴撳拰 jar 鏂囦歡銆?/P>

瑕佸惎鍔?Tomcat 鏈嶅姟鍣紝璇蜂嬌鐢ㄤ互涓嬪懡浠わ細

cd bin C:\Tomcat 5.0\bin> catalina.bat start

Tomcat 搴斿綋鍚姩騫墮儴緗?spring in action MVC 紺轟緥搴旂敤紼嬪簭銆?/P>

鍥為〉棣?/FONT>


嫻嬭瘯搴旂敤紼嬪簭

瑕佹祴璇曞簲鐢ㄧ▼搴忥紝璇鋒墦寮 Web 嫻忚鍣紝鎸囧悜 http://localhost:tomcatport/springbanking 騫剁敤 Tomcat 鏈嶅姟鍣ㄥ疄闄呰繍琛岀殑绔彛鏇挎崲 tomcatport銆傚簲褰撶湅鍒板浘 1 鎵紺虹殑鐧誨綍灞忓箷銆傝緭鍏ョ敤鎴?ID 鈥渁dmin鈥濆拰鍙d護鈥減assword鈥濓紝騫舵寜涓嬬櫥褰曟寜閽傚叾浠栫敤鎴?ID 鎴栧彛浠や細閫犳垚鏉ヨ嚜楠岃瘉鏈嶅姟鐨勯敊璇?/P>
鍥?1. spring in action MVC 紺轟緥鐧誨綍灞忓箷
Spring MVC 紺轟緥鐧誨綍灞忓箷鐨勬埅灞? src=

鐧誨綍鎴愬姛涔嬪悗錛屼細鐪嬪埌鍥?2 鎵紺虹殑甯愭埛緇嗚妭欏甸潰銆?/P>
鍥?2. spring in action MVC 紺轟緥甯愭埛緇嗚妭欏甸潰
Spring MVC 紺轟緥甯愭埛緇嗚妭欏甸潰鐨勬埅灞? src=


鍥為〉棣?/FONT>


緇撴潫璇?/FONT>

鍦ㄤ笁閮ㄥ垎鐨?spring in action 緋誨垪 鐨勭涓夌瘒鏂囩珷涓紝鎴戜粙緇嶄簡 spring in action MVC 妗嗘灦鐨勭壒鎬с傛垜婕旂ず浜嗗浣曢厤緗拰寮鍙?spring in action MVC 搴旂敤紼嬪簭銆佸浣曢厤緗?spring in action MVC 鎺у埗鍣ㄥ拰鍚戝叾涓彃鍏ヤ緷璧栭」銆佸浣曠敤 JavaServer Pages 鎶鏈紑鍙戝簲鐢ㄧ▼搴忚鍥撅紝浠ュ強濡備綍鎶婅嚜宸辯殑欏甸潰涓?spring in action MVC 鐨勮鍥懼眰闆嗘垚銆傛葷粨榪欑瘒鏂囩珷鏃訛紝鎴戞紨紺轟簡濡備綍鍦?Tomcat servlet 瀹瑰櫒涓儴緗插簲鐢ㄧ▼搴忎互鍙婂浣曞湪嫻忚鍣ㄤ腑嫻嬭瘯瀹冦?/P>

璇風戶緇叧娉?spring in action 緋誨垪 鐨勪笅涓綃囨枃绔犮傚湪涓嬩竴綃囨枃绔犱腑錛屾垜灝嗕粙緇嶅浣曟妸鍩轟簬 JMS 鐨勫簲鐢ㄧ▼搴忎笌 spring in action 妗嗘灦闆嗘垚銆傚悓鏃訛紝璇峰弬闃?鍙傝冭祫鏂?/FONT> 瀛︿範鏇村鏈夊叧 spring in action 妗嗘灦鍜?spring in action MVC 鐨勫唴瀹廣?/P>


鍥為〉棣?/FONT>


涓嬭澆

鎻忚堪 鍚嶅瓧 澶у皬  涓嬭澆鏂規硶
Example source code, spring in action files, jar files wa-spring3-SpringProjectPart3.zip 1966 KB  FTP
鍏充簬涓嬭澆鏂規硶鐨勪俊鎭?/FONT> 鑾峰彇 Adobe廬 Reader廬


鍥為〉棣?/FONT>


鍙傝冭祫鏂?

瀛︿範
  • 鎮ㄥ彲浠ュ弬闃呮湰鏂囧湪 developerWorks 鍏ㄧ悆绔欑偣涓婄殑 鑻辨枃鍘熸枃銆?BR>
  • 鈥?A >spring in action 緋誨垪錛岀 1 閮ㄥ垎: spring in action 妗嗘灦綆浠?/FONT>鈥濓紙developerWorks錛?005 騫?6 鏈堬級鍜屸?A >spring in action 緋誨垪錛岀 2 閮ㄥ垎: 褰?Hibernate 閬囦笂 spring in action鈥?錛坉eveloperWorks錛?005 騫?8 鏈堬級錛氫粙緇嶄簡濡備綍鐢?spring in action 鎶鏈瀯寤鴻交閲忕駭鐨勩佸仴澹殑 J2EE 搴旂敤紼嬪簭浠ュ強濡備綍鎶?Hibernate 浜嬪姟涓?spring in action 鐨勯潰鍚戞柟闈㈢紪紼嬶紙AOP錛夐泦鎴愬艦鎴愬彲闈犵殑鎸佷箙鎬ф鏋躲?BR>
  • 鈥?A >AOP@Work: AOP 宸ュ叿姣旇緝錛岀 1 閮ㄥ垎鈥濓紙Mik Kersten錛宒eveloperWorks錛?005 騫?2 鏈堬級錛氭瘮杈冧簡 spring in action AOP 鍜?AOP 妗嗘灦銆?BR>
  • 鈥?A >杞婚噺綰у紑鍙戠殑鎴愬姛縐樿瘈錛岀 3 閮ㄥ垎: spring in action 闇插嚭姘撮潰鈥濓紙Bruce Tate錛宒eveloperWorks錛?005 騫?6 鏈堬級錛氭紨紺轟簡 spring in action 浣滀負杞婚噺綰у鍣ㄧ殑鎰忎箟銆?BR>
  • 鈥?A >Ruby on Rails 鍜?J2EE錛氫袱鑰呰兘鍚﹀叡瀛橈紵鈥濓紙Aaron Rustad錛?developerWorks錛?005 騫?7 鏈堬級錛氭瘮杈冧簡涓嶅お涓轟漢鎵鐭ョ殑 J2EE 妗嗘灦鏇夸唬鍝侊紝鍍?EJB 鍜?spring in action銆?BR>
  • Java 鎶鏈笓鍖?/FONT>錛氭湁鏁扮櫨綃囨枃绔狅紝瑕嗙洊鍩轟簬 Java Web 鐨勮В鍐蟲柟妗堛?/LI>

鑾峰緱浜у搧鍜屾妧鏈?/B>

璁ㄨ
  • 鍔犲叆鏈枃鐨?A href="javascript:void forumWindow()">璁哄潧 銆?鎮ㄤ篃鍙互閫氳繃鐐瑰嚮鏂囩珷欏墮儴鎴栬呭簳閮ㄧ殑璁哄潧閾炬帴鍙傚姞璁ㄨ銆?

  • developerWorks blogs錛氬姞鍏?developerWorks 紺懼尯銆?
===============================================================================

鍏充簬浣滆?/FONT>

Naveen Balani 鎶婁粬鐨勫ぇ閮ㄥ垎鏃墮棿鑺卞湪璁捐鍜屽紑鍙戝熀浜?J2EE 鐨勬鏋跺拰浜у搧涓娿備粬涓?IBM developerWorks 鎾板啓浜嗗悇綾繪枃绔狅紝娑夊強鐨勪富棰樻湁 ESB銆丼OA銆丣MS銆乄eb 鏈嶅姟鏋舵瀯銆丆ICS銆丄XIS銆丏B2銆乆ML Extender銆乄ebSphere Studio銆丮QSeries銆丣ava 鏃犵嚎璁懼鍜?DB2 Everyplace for Palm銆丣2ME銆丮IDP銆丣ava-Nokia銆乂isual Studio .Net 浠ュ強鏃犵嚎鏁版嵁鍚屾銆傚彲浠ョ粰浠栧彂閭歡錛屼粬鐨勫湴鍧鏄細naveenbalani@rediffmail.com 銆?/P>

================================================================================
鍘熸枃鍑哄錛?A >http://www-128.ibm.com/developerworks/cn/java/wa-spring3/

闂墊瘬 2005-11-09 23:59 鍙戣〃璇勮
]]>
浣跨敤 Spring 鏇村ソ鍦板鐞?Struts 鍔ㄤ綔 涓夌鏁村悎 Struts 搴旂敤紼嬪簭涓?Spring 鐨勬柟寮?/title><link>http://www.tkk7.com/shmily432685/archive/2005/11/09/19069.html</link><dc:creator>闂墊瘬</dc:creator><author>闂墊瘬</author><pubDate>Wed, 09 Nov 2005 15:53:00 GMT</pubDate><guid>http://www.tkk7.com/shmily432685/archive/2005/11/09/19069.html</guid><wfw:comment>http://www.tkk7.com/shmily432685/comments/19069.html</wfw:comment><comments>http://www.tkk7.com/shmily432685/archive/2005/11/09/19069.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/shmily432685/comments/commentRss/19069.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/shmily432685/services/trackbacks/19069.html</trackback:ping><description><![CDATA[<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR vAlign=top> <TD width="100%"></TD> <TD class=no-print width=192></TD></TR></TBODY></TABLE> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR vAlign=top> <TD width=10><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=10></TD> <TD width="100%"> <TABLE class=no-print cellSpacing=0 cellPadding=0 width=160 align=right border=0> <TBODY> <TR> <TD width=10><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=10></TD> <TD> <TABLE cellSpacing=0 cellPadding=0 width=150 border=0> <TBODY> <TR> <TD class=v14-header-1-small></TD></TR></TBODY></TABLE> <TABLE class=v14-gray-table-border cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD class=no-padding width=150> <TABLE cellSpacing=0 cellPadding=0 width=143 border=0><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=8> <FORM name=email action=https://www-130.ibm.com/developerworks/secure/email-it.jsp> <SCRIPT language=JavaScript type=text/javascript> <!-- document.write('<tr valign="top"><td width="8"><img src="http://www.ibm.com/i/c.gif" width="8" height="1" alt=""/></td><td width="16"><img src="http://www.ibm.com/i/v14/icons/em.gif" height="16" width="16" vspace="3" alt="灝嗘欏典綔涓虹數瀛愰偖浠跺彂閫? /></td><td width="122"><p><a class="smallplainlink" href="javascript:document.email.submit();"><b>灝嗘欏典綔涓虹數瀛愰偖浠跺彂閫?/b></a></p></td></tr>'); //--> </SCRIPT>   <TBODY> <TR vAlign=top> <TD width=8><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=8></TD> <TD width=16></TD> <TD width=122></TD></TR><NOSCRIPT><tr valign="top"><td width="8"><img src="http://www.ibm.com/i/c.gif" width="8" height="1" alt="" /></td><td width="16"><img src="http://www.ibm.com/i/c.gif" height="16" width="16" alt="" /></td><td width="122" class="small"><p><span id="y2kww8u" class="ast">鏈樉紺洪渶瑕?JavaScript 鐨勬枃。閫夐」</span></p></td></tr></NOSCRIPT></FORM> <TR vAlign=top> <TD width=8><FONT face=Verdana color=#5c81a7 size=2><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=8></FONT></TD> <TD width=16><FONT face=Verdana color=#5c81a7 size=2></FONT></TD> <TD width=122> <P> </P></TD></TR> <TR vAlign=top> <TD width=8><FONT face=Verdana color=#5c81a7 size=2><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=8></FONT></TD> <TD width=16><FONT face=Verdana color=#5c81a7 size=2></FONT></TD> <TD width=122> <P><A class=smallplainlink ><B><FONT face=Verdana color=#996699 size=2></FONT></B></A> </P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR> <TABLE cellSpacing=0 cellPadding=0 width=150 border=0> <TBODY> <TR> <TD class=v14-header-1-small></TD></TR></TBODY></TABLE> <TABLE class=v14-gray-table-border cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD class=no-padding width=150> <TABLE cellSpacing=0 cellPadding=0 width=143 border=0> <TBODY> <TR vAlign=top> <TD width=8><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=8></TD> <TD></TD> <TD width=125></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR></TD></TR></TBODY></TABLE> <P>綰у埆: 涓駭</P> <P><A ><FONT color=#996699>George Franciscus </FONT></A>, 璐熻矗浜? Nexcel<BR></P> <P>2005 騫?11 鏈?03 鏃?/P> <BLOCKQUOTE><I>Struts Recipes</I> 鐨勫悎钁楄?George Franciscus 灝嗕粙緇嶅彟涓涓噸澶х殑 Struts 鏁村悎紿嶉棬 鈥斺?榪欐鏄皢 Struts 搴旂敤紼嬪簭瀵煎叆 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦銆傝璺熼殢 George錛屼粬灝嗗悜鎮ㄥ睍紺哄浣曟敼鍙?Struts 鍔ㄤ綔錛屼嬌寰楃鐞?Struts 鍔ㄤ綔灝卞儚綆$悊 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> beans 閭f牱銆傜粨鏋滄槸涓涓寮虹殑 web 妗嗘灦錛岃繖涓鏋跺彲浠ユ柟渚垮湴鍒╃敤 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> AOP 鐨勪紭鍔褲?/BLOCKQUOTE> <P>鎮ㄨ偗瀹氬凡緇忓惉璇磋繃鎺у埗鍙嶈漿 (IOC) 璁捐妯″紡錛屽洜涓哄緢闀夸竴孌墊椂闂翠互鏉ヤ竴鐩村湪嫻佷紶鍏充簬瀹冪殑淇℃伅銆傚鏋滄偍鍦ㄤ換浣曞姛鑳戒腑浣跨敤榪?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦錛岄偅涔堟偍灝辯煡閬撳叾鍘熺悊鐨勪綔鐢ㄣ傚湪鏈枃涓紝鎴戝埄鐢ㄨ繖涓鍘熺悊鎶婁竴涓?Struts 搴旂敤紼嬪簭娉ㄥ叆 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦錛屾偍灝嗕翰韜綋浼氬埌 IOC 妯″紡鐨勫己澶с?/P> <P>灝嗕竴涓?Struts 搴旂敤紼嬪簭鏁村悎榪?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鍏鋒湁澶氭柟闈㈢殑浼樼偣銆傞鍏堬紝Spring 鏄負瑙e喅涓浜涘叧浜?JEE 鐨勭湡瀹炰笘鐣岄棶棰樿岃璁$殑錛屾瘮濡傚鏉傛с佷綆鎬ц兘鍜屽彲嫻嬭瘯鎬э紝絳夌瓑銆傜浜岋紝Spring 妗嗘灦鍖呭惈涓涓?AOP 瀹炵幇錛屽厑璁告偍灝嗛潰鍚戞柟闈㈡妧鏈簲鐢ㄤ簬闈㈠悜瀵硅薄鐨勪唬鐮併傜涓夛紝涓浜涗漢鍙兘浼氳 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鍙湁<I>澶勭悊</I> Struts 姣?Struts 澶勭悊鑷繁濂姐備絾鏄繖鏄鐐歸棶棰橈紝鎴戞紨紺轟笁縐嶅皢 Struts 搴旂敤紼嬪簭鏁村悎鍒?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鐨勬柟娉曞悗錛屽叿浣撶敱鎮ㄨ嚜宸卞喅瀹氫嬌鐢ㄥ摢涓縐嶃?/P> <P>鎴戞墍婕旂ず鐨勬柟娉曢兘鏄墽琛岃搗鏉ョ浉瀵圭畝鍗曠殑錛屼絾鏄畠浠嵈鍏鋒湁鏄庢樉涓嶅悓鐨勪紭鐐廣傛垜涓烘瘡涓縐嶆柟娉曞垱寤轟簡涓涓嫭绔嬭屽彲鐢ㄧ殑渚嬪瓙錛岃繖鏍鋒偍灝卞彲浠ュ畬鍏ㄧ悊瑙f瘡縐嶆柟娉曘傝鍙傞槄 <A ><FONT color=#996699>涓嬭澆</FONT></A> 閮ㄥ垎鑾峰緱瀹屾暣渚嬪瓙婧愪唬鐮併傝鍙傞槄 <A ><FONT color=#996699>鍙傝冭祫鏂?/FONT></A>錛屼笅杞?Struts MVC 鍜?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦銆?/P> <P><A name=IDAFEWW><span id="o2qskku" class=atitle><STRONG><FONT size=4>涓轟粈涔?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 榪欎箞浜嗕笉璧鳳紵</FONT></STRONG></SPAN></A></P> <P><a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨勫垱绔嬭?Rod Johnson 浠ヤ竴縐嶆壒鍒ょ殑鐪煎厜鐪嬪緟 Java鈩?浼佷笟杞歡寮鍙戯紝騫朵笖鎻愯寰堝浼佷笟闅鵑閮借兘澶熼氳繃鎴樼暐鍦頒嬌鐢?IOC 妯″紡錛堜篃縐頒綔渚濊禆娉ㄥ叆錛夋潵瑙e喅銆傚綋 Rod 鍜屼竴涓叿鏈夊鐚簿紲炵殑寮鏀炬簮鐮佸紑鍙戣呭洟闃熷皢榪欎釜鐞嗚搴旂敤浜庡疄璺墊椂錛岀粨鏋滃氨浜х敓浜?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦銆傜畝璦涔嬶紝Spring 鏄竴涓交鍨嬬殑瀹瑰櫒錛屽埄鐢ㄥ畠鍙互浣跨敤涓涓閮?XML 閰嶇疆鏂囦歡鏂逛究鍦板皢瀵硅薄榪炴帴鍦ㄤ竴璧楓傛瘡涓璞¢兘鍙互閫氳繃鏄劇ず涓涓?JavaBean 灞炴ф敹鍒頒竴涓埌渚濊禆瀵硅薄鐨勫紩鐢紝鐣欑粰鎮ㄧ殑綆鍗曚換鍔″氨鍙槸鍦ㄤ竴涓?XML 閰嶇疆鏂囦歡涓妸瀹冧滑榪炴帴濂姐?/P> <TABLE cellSpacing=0 cellPadding=0 width="40%" align=right border=0> <TBODY> <TR> <TD width=10><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=10></TD> <TD> <TABLE cellSpacing=0 cellPadding=5 width="100%" border=1> <TBODY> <TR> <TD bgColor=#eeeeee><A name=IDAMEWW><B>IOC 鍜?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a></B></A><BR> <P>IOC 鏄竴縐嶄嬌搴旂敤紼嬪簭閫昏緫澶栧湪鍖栫殑璁捐妯″紡錛屾墍浠ュ畠鏄娉ㄥ叆鑰屼笉鏄鍐欏叆瀹㈡埛鏈轟唬鐮佷腑銆傚皢 IOC 涓庢帴鍙g紪紼嬪簲鐢ㄧ粨鍚堬紝灝卞儚 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦閭f牱錛屼駭鐢熶簡涓縐嶆灦鏋勶紝榪欑鏋舵瀯鑳藉鍑忓皯瀹㈡埛鏈哄鐗瑰畾瀹炵幇閫昏緫鐨勪緷璧栥傝鍙傞槄 <A ><FONT color=#996699>鍙傝冭祫鏂?/FONT></A> 浜嗚В鏇村鍏充簬 IOC 鍜?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨勪俊鎭?/P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE> <P>渚濊禆娉ㄥ叆鏄竴涓己澶х殑鐗規э紝浣嗘槸 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鑳藉鎻愪緵鏇村鐗規с係pring 鏀寔鍙彃鎷旂殑浜嬪姟綆$悊鍣紝鍙互緇欐偍鐨勪簨鍔″鐞嗘彁渚涙洿騫挎硾鐨勯夋嫨鑼冨洿銆傚畠闆嗘垚浜嗛鍏堢殑鎸佷箙鎬ф鏋訛紝騫朵笖鎻愪緵涓涓竴鑷寸殑寮傚父灞傛緇撴瀯銆係pring 榪樻彁渚涗簡涓縐嶄嬌鐢ㄩ潰鍚戞柟闈唬鐮佷唬鏇挎甯哥殑闈㈠悜瀵硅薄浠g爜鐨勭畝鍗曟満鍒躲?/P> <P><a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> AOP 鍏佽鎮ㄤ嬌鐢?I>鎷︽埅鍣?/I> 鍦ㄤ竴涓垨澶氫釜鎵ц鐐逛笂鎷︽埅搴旂敤紼嬪簭閫昏緫銆傚姞寮哄簲鐢ㄧ▼搴忓湪鎷︽埅鍣ㄤ腑鐨勬棩蹇楄褰曢昏緫浼氫駭鐢熶竴涓洿鍙鐨勩佸疄鐢ㄧ殑浠g爜鍩虹錛屾墍浠ユ嫤鎴櫒騫挎硾鐢ㄤ簬鏃ュ織璁板綍銆傛偍寰堝揩灝變細鐪嬪埌錛屼負浜嗗鐞嗘í鍒囧叧娉ㄧ偣錛孲pring AOP 鍙戝竷浜嗗畠鑷繁鐨勬嫤鎴櫒錛屾偍涔熷彲浠ョ紪鍐欐偍鑷繁鐨勬嫤鎴櫒銆?/P><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT face=Verdana color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=IDA2EWW><span id="smeo2a8" class=atitle><STRONG><FONT size=4>鏁村悎 Struts 鍜?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a></FONT></STRONG></SPAN></A></P> <P>涓?Struts 鐩鎬技錛孲pring 鍙互浣滀負涓涓?MVC 瀹炵幇銆傝繖涓ょ妗嗘灦閮藉叿鏈夎嚜宸辯殑浼樼偣鍜岀己鐐癸紝灝界澶ч儴鍒嗕漢鍚屾剰 Struts 鍦?MVC 鏂歸潰浠嶇劧鏄渶濂界殑銆傚緢澶氬紑鍙戝洟闃熷凡緇忓浼氬湪鏃墮棿绱ц揩鐨勬椂鍊欏埄鐢?Struts 浣滀負鏋勯犻珮鍝佽川杞歡鐨勫熀紜銆係truts 鍏鋒湁濡傛澶х殑鎺ㄥ姩鍔涳紝浠ヨ嚦浜庡紑鍙戝洟闃熷畞鎰挎暣鍚?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鐨勭壒鎬э紝鑰屼笉鎰挎剰杞崲鎴?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> MVC銆傛病蹇呰榪涜杞崲瀵規偍鏉ヨ鏄竴涓ソ娑堟伅銆係pring 鏋舵瀯鍏佽鎮ㄥ皢 Struts 浣滀負 Web 妗嗘灦榪炴帴鍒板熀浜?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨勪笟鍔″拰鎸佷箙灞傘傛渶鍚庣殑緇撴灉灝辨槸鐜板湪涓鍒囨潯浠墮兘鍏峰浜嗐?/P> <P>鍦ㄦ帴涓嬫潵鐨勫皬紿嶉棬涓紝鎮ㄥ皢浼氫簡瑙e埌涓夌灝?Struts MVC 鏁村悎鍒?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鐨勬柟娉曘傛垜灝嗘彮紺烘瘡縐嶆柟娉曠殑緙洪櫡騫朵笖瀵規瘮瀹冧滑鐨勪紭鐐廣?涓鏃︽偍浜嗚В鍒版墍鏈変笁縐嶆柟娉曠殑浣滅敤錛屾垜灝嗕細鍚戞偍灞曠ず涓涓護浜哄叴濂嬬殑搴旂敤紼嬪簭錛岃繖涓▼搴忎嬌鐢ㄧ殑鏄繖涓夌鏂規硶涓垜鏈鍠滄鐨勪竴縐嶃?/P><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT face=Verdana color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=IDADFWW><span id="2usscec" class=atitle><STRONG><FONT size=4>涓変釜灝忕獚闂?/FONT></STRONG></SPAN></A></P> <P>鎺ヤ笅鏉ョ殑姣忕鏁村悎鎶鏈紙鎴栬呯獚闂級閮芥湁鑷繁鐨勪紭鐐瑰拰鐗圭偣銆傛垜鍋忕埍鍏朵腑鐨勪竴縐嶏紝浣嗘槸鎴戠煡閬撹繖涓夌閮借兘澶熷姞娣辨偍瀵?Struts 鍜?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨勭悊瑙c傚湪澶勭悊鍚勭涓嶅悓鎯呭喌鐨勬椂鍊欙紝榪欏皢緇欐偍鎻愪緵涓涓箍闃旂殑閫夋嫨鑼冨洿銆傛柟娉曞涓嬶細</P> <UL> <LI>浣跨敤 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨?<CODE><FONT face=Courier size=2>ActionSupport</FONT></CODE> 綾繪暣鍚?Structs <LI>浣跨敤 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨?<CODE><FONT face=Courier size=2>DelegatingRequestProcessor</FONT></CODE> 瑕嗙洊 Struts 鐨?<CODE><FONT face=Courier size=2>RequestProcessor </FONT></CODE> <LI>灝?Struts <CODE><FONT face=Courier size=2>Action</FONT></CODE> 綆$悊濮旀墭緇?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦</LI></UL> <P><A name=IDAAGWW><span id="cisaq2u" class=smalltitle><STRONG>瑁呰澆搴旂敤紼嬪簭鐜</STRONG></SPAN></A></P> <P>鏃犺鎮ㄤ嬌鐢ㄥ摢縐嶆妧鏈紝閮介渶瑕佷嬌鐢?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨?<CODE><FONT face=Courier size=2>ContextLoaderPlugin</FONT></CODE> 涓?Struts 鐨?<CODE><FONT face=Courier size=2>ActionServlet</FONT></CODE> 瑁呰澆 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 搴旂敤紼嬪簭鐜銆傚氨鍍忔坊鍔犱換浣曞叾浠栨彃浠朵竴鏍鳳紝綆鍗曞湴鍚戞偍鐨?struts-config.xml 鏂囦歡娣誨姞璇ユ彃浠訛紝濡備笅鎵紺猴細</P> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console"><plug-in className= "org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property= "contextConfigLocation" value="/WEB-INF/beans.xml"/> </plug-in> </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>鍓嶉潰宸茬粡鎻愬埌榪囷紝鍦?<A ><FONT color=#996699>涓嬭澆</FONT></A> 閮ㄥ垎錛屾偍鑳藉鎵懼埌榪欎笁涓畬鍏ㄥ彲浣跨敤鐨勪緥瀛愮殑瀹屾暣婧愪唬鐮併傛瘡涓緥瀛愰兘涓轟竴涓功綾嶆悳绱㈠簲鐢ㄧ▼搴忔彁渚涗竴縐嶄笉鍚岀殑 Struts 鍜?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨勬暣鍚堟柟娉曘傛偍鍙互鍦ㄨ繖閲岀湅鍒頒緥瀛愮殑瑕佺偣錛屼絾鏄偍涔熷彲浠ヤ笅杞藉簲鐢ㄧ▼搴忎互鏌ョ湅鎵鏈夌殑緇嗚妭銆?/P><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT face=Verdana color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=IDAZGWW><span id="64ueewy" class=atitle><STRONG><FONT size=4>紿嶉棬 1. 浣跨敤 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨?ActionSupport</FONT></STRONG></SPAN></A></P> <P>鎵嬪姩鍒涘緩涓涓?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐜鏄竴縐嶆暣鍚?Struts 鍜?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨勬渶鐩磋鐨勬柟寮忋備負浜嗕嬌瀹冨彉寰楁洿綆鍗曪紝Spring 鎻愪緵浜嗕竴浜涘府鍔┿備負浜嗘柟渚垮湴鑾峰緱 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐜錛?CODE><FONT face=Courier size=2>org.springframework.web.struts.ActionSupport</FONT></CODE> 綾繪彁渚涗簡涓涓?<CODE><FONT face=Courier size=2>getWebApplicationContext()</FONT></CODE> 鏂規硶銆傛偍鎵鍋氱殑鍙槸浠?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨?<CODE><FONT face=Courier size=2>ActionSupport</FONT></CODE> 鑰屼笉鏄?Struts <CODE><FONT face=Courier size=2>Action</FONT></CODE> 綾繪墿灞曟偍鐨勫姩浣滐紝濡傛竻鍗?1 鎵紺猴細</P><BR><A name=IDAUHWW><B>娓呭崟 1. 浣跨敤 ActionSupport 鏁村悎 Struts</B></A><BR> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console">package ca.nexcel.books.actions; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.DynaActionForm; import org.springframework.context.ApplicationContext; import org.springframework.web.struts.ActionSupport; import ca.nexcel.books.beans.Book; import ca.nexcel.books.business.BookService; public class SearchSubmit extends ActionSupport { <span id="u6gqaqq" class=boldcode><STRONG>|(1)</STRONG></SPAN> public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { DynaActionForm searchForm = (DynaActionForm) form; String isbn = (String) searchForm.get("isbn"); //the old fashion way //BookService bookService = new BookServiceImpl(); ApplicationContext ctx = getWebApplicationContext(); <span id="yykcsck" class=boldcode><STRONG>|(2)</STRONG></SPAN> BookService bookService = (BookService) ctx.getBean("bookService"); <span id="ooey2oy" class=boldcode><STRONG>|(3)</STRONG></SPAN> Book book = bookService.read(isbn.trim()); if (null == book) { ActionErrors errors = new ActionErrors(); errors.add(ActionErrors.GLOBAL_ERROR,new ActionError ("message.notfound")); saveErrors(request, errors); return mapping.findForward("failure") ; } request.setAttribute("book", book); return mapping.findForward("success"); } } </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>璁╂垜浠揩閫熸濊冧竴涓嬭繖閲屽埌搴曞彂鐢熶簡浠涔堛傚湪 (1) 澶勶紝鎴戦氳繃浠?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨?<CODE><FONT face=Courier size=2>ActionSupport</FONT></CODE> 綾昏屼笉鏄?Struts 鐨?<CODE><FONT face=Courier size=2>Action</FONT></CODE> 綾昏繘琛屾墿灞曪紝鍒涘緩浜嗕竴涓柊鐨?<CODE><FONT face=Courier size=2>Action</FONT></CODE>銆傚湪 (2) 澶勶紝鎴戜嬌鐢?<CODE><FONT face=Courier size=2>getWebApplicationContext()</FONT></CODE> 鏂規硶鑾峰緱涓涓?<CODE><FONT face=Courier size=2>ApplicationContext</FONT></CODE>銆備負浜嗚幏寰椾笟鍔℃湇鍔★紝鎴戜嬌鐢ㄥ湪 (2) 澶勮幏寰楃殑鐜鍦?(3) 澶勬煡鎵句竴涓?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> bean銆?/P> <P>榪欑鎶鏈緢綆鍗曞茍涓旀槗浜庣悊瑙c備笉騫哥殑鏄紝瀹冨皢 Struts 鍔ㄤ綔涓?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鑰﹀悎鍦ㄤ竴璧楓傚鏋滄偍鎯蟲浛鎹㈡帀 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a>錛岄偅涔堟偍蹇呴』閲嶅啓浠g爜銆傚茍涓旓紝鐢變簬 Struts 鍔ㄤ綔涓嶅湪 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨勬帶鍒朵箣涓嬶紝鎵浠ュ畠涓嶈兘鑾峰緱 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> AOP 鐨勪紭鍔褲傚綋浣跨敤澶氶噸鐙珛鐨?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐜鏃訛紝榪欑鎶鏈彲鑳芥湁鐢紝浣嗘槸鍦ㄥぇ澶氭暟鎯呭喌涓嬶紝榪欑鏂規硶涓嶅鍙﹀涓ょ鏂規硶鍚堥傘?/P><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT face=Verdana color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=IDA0A4W><span id="ucucw8m" class=atitle><STRONG><FONT size=4>紿嶉棬 2. 瑕嗙洊 RequestProcessor</FONT></STRONG></SPAN></A></P> <P>灝?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 浠?Struts 鍔ㄤ綔涓垎紱繪槸涓涓洿宸у鐨勮璁¢夋嫨銆傚垎紱葷殑涓縐嶆柟娉曟槸浣跨敤 <CODE><FONT face=Courier size=2>org.springframework.web.struts.DelegatingRequestProcessor</FONT></CODE> 綾繪潵瑕嗙洊 Struts 鐨?<CODE><FONT face=Courier size=2>RequestProcessor</FONT></CODE> 澶勭悊紼嬪簭錛屽娓呭崟 2 鎵紺猴細</P><BR><A name=IDANB4W><B>娓呭崟 2. 閫氳繃 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨?DelegatingRequestProcessor 榪涜鏁村悎</B></A><BR> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console"><?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts-config> <form-beans> <form-bean name="searchForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="isbn" type="java.lang.String"/> </form-bean> </form-beans> <global-forwards type="org.apache.struts.action.ActionForward"> <forward name="welcome" path="/welcome.do"/> <forward name="searchEntry" path="/searchEntry.do"/> <forward name="searchSubmit" path="/searchSubmit.do"/> </global-forwards> <action-mappings> <action path="/welcome" forward="/WEB-INF/pages/welcome.htm"/> <action path="/searchEntry" forward="/WEB-INF/pages/search.jsp"/> <action path="/searchSubmit" type="ca.nexcel.books.actions.SearchSubmit" input="/searchEntry.do" validate="true" name="searchForm"> <forward name="success" path="/WEB-INF/pages/detail.jsp"/> <forward name="failure" path="/WEB-INF/pages/search.jsp"/> </action> </action-mappings> <message-resources parameter="ApplicationResources"/> <controller processorClass="org.springframework.web.struts. DelegatingRequestProcessor"/> <span id="ceem2a8" class=boldcode><STRONG>|(1)</STRONG></SPAN> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/> </plug-in> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="csntextConfigLocation" value="/WEB-INF/beans.xml"/> </plug-in> </struts-config> </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>鎴戝埄鐢ㄤ簡 <CODE><FONT face=Courier size=2><controller></FONT></CODE> 鏍囪鏉ョ敤 <CODE><FONT face=Courier size=2>DelegatingRequestProcessor</FONT></CODE> 瑕嗙洊榛樿鐨?Struts <CODE><FONT face=Courier size=2>RequestProcessor</FONT></CODE>銆備笅涓姝ユ槸鍦ㄦ垜鐨?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 閰嶇疆鏂囦歡涓敞鍐岃鍔ㄤ綔錛屽娓呭崟 3 鎵紺猴細</P><BR><A name=IDAGC4W><B>娓呭崟 3. 鍦?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 閰嶇疆鏂囦歡涓敞鍐屼竴涓姩浣?/B></A><BR> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console"><?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="bookService" class="ca.nexcel.books.business.BookServiceImpl"/> <bean name="/searchSubmit" class="ca.nexcel.books.actions.SearchSubmit"> <span id="wqqyaya" class=boldcode><STRONG>|(1)</STRONG></SPAN> <property name="bookService"> <ref bean="bookService"/> </property> </bean> </beans> </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>娉ㄦ剰錛氬湪 (1) 澶勶紝鎴戜嬌鐢ㄥ悕縐板睘鎬ф敞鍐屼簡涓涓?bean錛屼互鍖歸厤 struts-config 鍔ㄤ綔鏄犲皠鍚嶇О銆?CODE><FONT face=Courier size=2>SearchSubmit</FONT></CODE> 鍔ㄤ綔鎻ず浜嗕竴涓?JavaBean 灞炴э紝鍏佽 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鍦ㄨ繍琛屾椂濉厖灞炴э紝濡傛竻鍗?4 鎵紺猴細</P><BR><A name=IDAXC4W><B>娓呭崟 4. 鍏鋒湁 JavaBean 灞炴х殑 Struts 鍔ㄤ綔</B></A><BR> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console">package ca.nexcel.books.actions; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.DynaActionForm; import ca.nexcel.books.beans.Book; import ca.nexcel.books.business.BookService; public class SearchSubmit extends Action { private BookService bookService; public BookService getBookService() { return bookService; } public void setBookService(BookService bookService) { <span id="c2eoige" class=boldcode><STRONG>| (1)</STRONG></SPAN> this.bookService = bookService; } public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { DynaActionForm searchForm = (DynaActionForm) form; String isbn = (String) searchForm.get("isbn"); Book book = getBookService().read(isbn.trim()); <span id="wakaa4k" class=boldcode><STRONG>|(2)</STRONG></SPAN> if (null == book) { ActionErrors errors = new ActionErrors(); errors.add(ActionErrors.GLOBAL_ERROR,new ActionError("message.notfound")); saveErrors(request, errors); return mapping.findForward("failure") ; } request.setAttribute("book", book); return mapping.findForward("success"); } } </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>鍦ㄦ竻鍗?4 涓紝鎮ㄥ彲浠ヤ簡瑙e埌濡備綍鍒涘緩 Struts 鍔ㄤ綔銆傚湪 (1) 澶勶紝鎴戝垱寤轟簡涓涓?JavaBean 灞炴с?CODE><FONT face=Courier size=2>DelegatingRequestProcessor</FONT></CODE>鑷姩鍦伴厤緗繖縐嶅睘鎬с傝繖縐嶈璁′嬌 Struts 鍔ㄤ綔騫朵笉鐭ラ亾瀹冩琚?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 綆$悊錛屽茍涓斾嬌鎮ㄨ兘澶熷埄鐢?Sping 鐨勫姩浣滅鐞嗘鏋剁殑鎵鏈変紭鐐廣傜敱浜庢偍鐨?Struts 鍔ㄤ綔娉ㄦ剰涓嶅埌 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨勫瓨鍦紝鎵浠ユ偍涓嶉渶瑕侀噸鍐欐偍鐨?Struts 浠g爜灝卞彲浠ヤ嬌鐢ㄥ叾浠栨帶鍒跺弽杞鍣ㄦ潵鏇挎崲鎺?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a>銆?/P> <P><CODE><FONT face=Courier size=2>DelegatingRequestProcessor</FONT></CODE> 鏂規硶鐨勭‘姣旂涓縐嶆柟娉曞ソ錛屼絾鏄粛鐒跺瓨鍦ㄤ竴浜涢棶棰樸傚鏋滄偍浣跨敤涓涓笉鍚岀殑 <CODE><FONT face=Courier size=2>RequestProcessor</FONT></CODE>錛屽垯闇瑕佹墜鍔ㄦ暣鍚?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨?<CODE><FONT face=Courier size=2>DelegatingRequestProcessor</FONT></CODE>銆傛坊鍔犵殑浠g爜浼氶犳垚緇存姢鐨勯夯鐑﹀茍涓斿皢鏉ヤ細闄嶄綆鎮ㄧ殑搴旂敤紼嬪簭鐨勭伒媧繪с傛澶栵紝榪樻湁榪囦竴浜涗嬌鐢ㄤ竴緋誨垪鍛戒護鏉ヤ唬鏇?Struts <CODE><FONT face=Courier size=2>RequestProcessor</FONT></CODE> 鐨勪紶闂匯?榪欑鏀瑰彉灝嗕細瀵硅繖縐嶈В鍐蟲柟娉曠殑浣跨敤瀵垮懡閫犳垚璐熼潰鐨勫獎鍝嶃?/P><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT face=Verdana color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=IDAYD4W><span id="km6seme" class=atitle><STRONG><FONT size=4>紿嶉棬 3. 灝嗗姩浣滅鐞嗗鎵樼粰 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a></FONT></STRONG></SPAN></A></P> <P>涓涓洿濂界殑瑙e喅鏂規硶鏄皢 Strut 鍔ㄤ綔綆$悊濮旀墭緇?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a>銆傛偍鍙互閫氳繃鍦?<CODE><FONT face=Courier size=2>struts-config</FONT></CODE> 鍔ㄤ綔鏄犲皠涓敞鍐屼竴涓唬鐞嗘潵瀹炵幇銆備唬鐞嗚礋璐e湪 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐜涓煡鎵?Struts 鍔ㄤ綔銆傜敱浜庡姩浣滃湪 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨勬帶鍒朵箣涓嬶紝鎵浠ュ畠鍙互濉厖鍔ㄤ綔鐨?JavaBean 灞炴э紝騫朵負搴旂敤璇稿 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨?AOP 鎷︽埅鍣ㄤ箣綾葷殑鐗規у甫鏉ヤ簡鍙兘銆?</P> <P>娓呭崟 5 涓殑 <CODE><FONT face=Courier size=2>Action</FONT></CODE> 綾諱笌娓呭崟 4 涓殑鐩稿悓銆備絾鏄?struts-config 鏈変竴浜涗笉鍚岋細</P><BR><A name=IDANE4W><B>娓呭崟 5. <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鏁村悎鐨勫鎵樻柟娉?/B></A><BR> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console"><?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts-config> <form-beans> <form-bean name="searchForm" type="org.apache.struts.validator.DynaValidatorForm"> <form-property name="isbn" type="java.lang.String"/> </form-bean> </form-beans> <global-forwards type="org.apache.struts.action.ActionForward"> <forward name="welcome" path="/welcome.do"/> <forward name="searchEntry" path="/searchEntry.do"/> <forward name="searchSubmit" path="/searchSubmit.do"/> </global-forwards> <action-mappings> <action path="/welcome" forward="/WEB-INF/pages/welcome.htm"/> <action path="/searchEntry" forward="/WEB-INF/pages/search.jsp"/> <action path="/searchSubmit" type="org.springframework.web.struts.DelegatingActionProxy" <span id="oismesi" class=boldcode><STRONG>|(1)</STRONG></SPAN> input="/searchEntry.do" validate="true" name="searchForm"> <forward name="success" path="/WEB-INF/pages/detail.jsp"/> <forward name="failure" path="/WEB-INF/pages/search.jsp"/> </action> </action-mappings> <message-resources parameter="ApplicationResources"/> <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/> </plug-in> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/beans.xml"/> </plug-in> </struts-config> </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>娓呭崟 5 鏄竴涓吀鍨嬬殑 struts-config.xml 鏂囦歡錛屽彧鏈変竴涓皬灝忕殑宸埆銆傚畠娉ㄥ唽 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 浠g悊綾葷殑鍚嶇О錛岃屼笉鏄0鏄庡姩浣滅殑綾誨悕錛屽錛?錛夊鎵紺恒侱elegatingActionProxy 綾諱嬌鐢ㄥ姩浣滄槧灝勫悕縐版煡鎵?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐜涓殑鍔ㄤ綔銆傝繖灝辨槸鎴戜滑浣跨敤 <CODE><FONT face=Courier size=2>ContextLoaderPlugIn</FONT></CODE> 澹版槑鐨勭幆澧冦?/P> <P>灝嗕竴涓?Struts 鍔ㄤ綔娉ㄥ唽涓轟竴涓?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> bean 鏄潪甯哥洿瑙傜殑錛屽娓呭崟 6 鎵紺恒傛垜鍒╃敤鍔ㄤ綔鏄犲皠浣跨敤 <CODE><FONT face=Courier size=2><bean></FONT></CODE> 鏍囪鐨勫悕縐板睘鎬э紙鍦ㄨ繖涓緥瀛愪腑鏄?"<CODE><FONT face=Courier size=2>/searchSubmit</FONT></CODE>"錛夌畝鍗曞湴鍒涘緩浜嗕竴涓?bean銆傝繖涓姩浣滅殑 JavaBean 灞炴у儚浠諱綍 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> bean 涓鏍瘋濉厖錛?</P><BR><A name=IDAIF4W><B>娓呭崟 6. 鍦?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐜涓敞鍐屼竴涓?Struts 鍔ㄤ綔</B></A><BR> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console"><?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="bookService" class="ca.nexcel.books.business.BookServiceImpl"/> <bean name="/searchSubmit" class="ca.nexcel.books.actions.SearchSubmit"> <property name="bookService"> <ref bean="bookService"/> </property> </bean> </beans> </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><FONT face="Lucida Console"><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></FONT></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><FONT face="Lucida Console"><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></FONT></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT face=Verdana color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=IDAOF4W><span id="ceeeemc" class=atitle><STRONG><FONT size=4>鍔ㄤ綔濮旀墭鐨勪紭鐐?/FONT></STRONG></SPAN></A></P> <P>鍔ㄤ綔濮旀墭瑙e喅鏂規硶鏄繖涓夌鏂規硶涓渶濂界殑銆係truts 鍔ㄤ綔涓嶄簡瑙?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a>錛屼笉瀵逛唬鐮佷綔浠諱綍鏀瑰彉灝卞彲鐢ㄤ簬闈?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 搴旂敤紼嬪簭涓?CODE><FONT face=Courier size=2>RequestProcessor</FONT></CODE> 鐨勬敼鍙樹笉浼氬獎鍝嶅畠錛屽茍涓斿畠鍙互鍒╃敤 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> AOP 鐗規х殑浼樼偣銆?</P> <P>鍔ㄤ綔濮旀墭鐨勪紭鐐逛笉姝㈠姝ゃ備竴鏃﹁ <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鎺у埗鎮ㄧ殑 Struts 鍔ㄤ綔錛屾偍灝卞彲浠ヤ嬌鐢?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 緇欏姩浣滆ˉ鍏呮洿寮虹殑媧誨姏銆備緥濡傦紝娌℃湁 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨勮瘽錛屾墍鏈夌殑 Struts 鍔ㄤ綔閮藉繀欏繪槸綰跨▼瀹夊叏鐨勩傚鏋滄偍璁劇疆 <CODE><FONT face=Courier size=2><bean></FONT></CODE> 鏍囪鐨?singleton 灞炴т負鈥渇alse鈥濓紝閭d箞涓嶇鐢ㄤ綍縐嶆柟娉曪紝鎮ㄧ殑搴旂敤紼嬪簭閮藉皢鍦ㄦ瘡涓涓姹備笂鏈変竴涓柊鐢熸垚鐨勫姩浣滃璞°傛偍鍙兘涓嶉渶瑕佽繖縐嶇壒鎬э紝浣嗘槸鎶婂畠鏀懼湪鎮ㄧ殑宸ュ叿綆變腑涔熷緢濂姐傛偍涔熷彲浠ュ埄鐢?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨勭敓鍛藉懆鏈熸柟娉曘備緥濡傦紝褰撳疄渚嬪寲 Struts 鍔ㄤ綔鏃訛紝<CODE><FONT face=Courier size=2><bean></FONT></CODE> 鏍囪鐨?init-method 灞炴ц鐢ㄤ簬榪愯涓涓柟娉曘傜被浼煎湴錛屽湪浠庡鍣ㄤ腑鍒犻櫎 bean 涔嬪墠錛宒estroy-method 灞炴ф墽琛屼竴涓柟娉曘傝繖浜涙柟娉曟槸綆$悊鏄傝吹瀵硅薄鐨勫ソ鍔炴硶錛屽畠浠互涓縐嶄笌 Servlet 鐢熷懡鍛ㄦ湡鐩稿悓鐨勬柟寮忚繘琛岀鐞嗐?/P><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT face=Verdana color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=IDAEG4W><span id="ckskk2u" class=atitle><STRONG><FONT size=4>鎷︽埅 Struts</FONT></STRONG></SPAN></A></P> <P>鍓嶉潰鎻愬埌榪囷紝閫氳繃灝?Struts 鍔ㄤ綔濮旀墭緇?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鑰屾暣鍚?Struts 鍜?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨勪竴涓富瑕佺殑浼樼偣鏄細鎮ㄥ彲浠ュ皢 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨?AOP 鎷︽埅鍣ㄥ簲鐢ㄤ簬鎮ㄧ殑 Struts 鍔ㄤ綔銆傞氳繃灝?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鎷︽埅鍣ㄥ簲鐢ㄤ簬 Struts 鍔ㄤ綔錛屾偍鍙互鐢ㄦ渶灝忕殑浠d環澶勭悊妯垏鍏蟲敞鐐廣?/P> <P>铏界劧 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鎻愪緵寰堝鍐呯疆鎷︽埅鍣紝浣嗘槸鎴戝皢鍚戞偍灞曠ず濡備綍鍒涘緩鑷繁鐨勬嫤鎴櫒騫舵妸瀹冨簲鐢ㄤ簬涓涓?Struts 鍔ㄤ綔銆備負浜嗕嬌鐢ㄦ嫤鎴櫒錛屾偍闇瑕佸仛涓変歡浜嬶細</P> <OL> <LI>鍒涘緩鎷︽埅鍣ㄣ? <LI>娉ㄥ唽鎷︽埅鍣ㄣ? <LI>澹版槑鍦ㄤ綍澶勬嫤鎴唬鐮併?/LI></OL> <P>榪欑湅璧鋒潵闈炲父綆鍗曠殑鍑犲彞璇濆嵈闈炲父寮哄ぇ銆備緥濡傦紝鍦ㄦ竻鍗?7 涓紝鎴戜負 Struts 鍔ㄤ綔鍒涘緩浜嗕竴涓棩蹇楄褰曟嫤鎴櫒銆?榪欎釜鎷︽埅鍣ㄥ湪姣忎釜鏂規硶璋冪敤涔嬪墠鎵撳嵃涓鍙ヨ瘽錛?/P><BR><A name=IDAUG4W><B>娓呭崟 7. 涓涓畝鍗曠殑鏃ュ織璁板綍鎷︽埅鍣?/B></A><BR> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console">package ca.nexcel.books.interceptors; import org.springframework.aop.MethodBeforeAdvice; import java.lang.reflect.Method; public class LoggingInterceptor implements MethodBeforeAdvice { public void before(Method method, Object[] objects, Object o) throws Throwable { System.out.println("logging before!"); } } </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>榪欎釜鎷︽埅鍣ㄩ潪甯哥畝鍗曘?CODE><FONT face=Courier size=2>before()</FONT></CODE> 鏂規硶鍦ㄦ嫤鎴偣涓瘡涓柟娉曚箣鍓嶈繍琛屻傚湪鏈緥涓紝瀹冩墦鍗板嚭涓鍙ヨ瘽錛屽叾瀹炲畠鍙互鍋氭偍鎯沖仛鐨勪換浣曚簨銆備笅涓姝ュ氨鏄湪 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 閰嶇疆鏂囦歡涓敞鍐岃繖涓嫤鎴櫒錛屽娓呭崟 8 鎵紺猴細</P><BR><A name=IDADH4W><B>娓呭崟 8. 鍦?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 閰嶇疆鏂囦歡涓敞鍐屾嫤鎴櫒</B></A><BR> <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#eeeeee border=1> <TBODY> <TR> <TD><PRE><CODE class=section> <FONT face="Lucida Console"><?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="bookService" class="ca.nexcel.books.business.BookServiceImpl"/> <bean name="/searchSubmit" class="ca.nexcel.books.actions.SearchSubmit"> <property name="bookService"> <ref bean="bookService"/> </property> </bean> <!-- Interceptors --> <bean name="logger" class="ca.nexcel.books.interceptors.LoggingInterceptor"/> <span id="uemmuc2" class=boldcode><STRONG>|(1)</STRONG></SPAN> <!-- AutoProxies --> <bean name="loggingAutoProxy" class="org.springframework.aop.framework.autoproxy. BeanNameAutoProxyCreator"> <span id="ywwgooy" class=boldcode><STRONG>|(2)</STRONG></SPAN> <property name="beanNames"> <value>/searchSubmit</valuesgt; <span id="028qiig" class=boldcode><STRONG>|(3)</STRONG></SPAN> </property> <property name="interceptorNames"> <list> <value>logger</value> <span id="igo24km" class=boldcode><STRONG>|(4)</STRONG></SPAN> </list> </property> </bean> </beans> </FONT></CODE></PRE></TD></TR></TBODY></TABLE><BR> <P>鎮ㄥ彲鑳藉凡緇忔敞鎰忓埌浜嗭紝娓呭崟 8 鎵╁睍浜?<A ><FONT color=#996699>娓呭崟 6</FONT></A> 涓墍紺虹殑搴旂敤紼嬪簭浠ュ寘鍚竴涓嫤鎴櫒銆傚叿浣撶粏鑺傚涓嬶細</P> <UL> <LI>鍦?(1) 澶勶紝鎴戞敞鍐屼簡榪欎釜鎷︽埅鍣ㄣ? <LI>鍦?(2) 澶勶紝鎴戝垱寤轟簡涓涓?bean 鍚嶇О鑷姩浠g悊錛屽畠鎻忚堪濡備綍搴旂敤鎷︽埅鍣ㄣ傝繕鏈夊叾浠栫殑鏂規硶瀹氫箟鎷︽埅鐐癸紝浣嗘槸榪欑鏂規硶甯歌鑰岀畝渚褲? <LI>鍦?(3) 澶勶紝鎴戝皢 Struts 鍔ㄤ綔娉ㄥ唽涓哄皢琚嫤鎴殑 bean銆傚鏋滄偍鎯寵鎷︽埅鍏朵粬鐨?Struts 鍔ㄤ綔錛屽垯鍙渶瑕佸湪 "beanNames" 涓嬮潰鍒涘緩闄勫姞鐨?<CODE><FONT face=Courier size=2><value></FONT></CODE> 鏍囪銆? <LI>鍦?(4) 澶勶紝褰撴嫤鎴彂鐢熸椂錛屾垜鎵ц浜嗗湪 (1) 澶勫垱寤虹殑鎷︽埅鍣?bean 鐨勫悕縐般傝繖閲屽垪鍑虹殑鎵鏈夋嫤鎴櫒閮藉簲鐢ㄤ簬鈥渂eanNames鈥濄?/LI></UL> <P>灝辨槸榪欐牱銆傚氨鍍忚繖涓緥瀛愭墍灞曠ず鐨勶紝灝嗘偍鐨?Struts 鍔ㄤ綔緗簬 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鐨勬帶鍒朵箣涓嬶紝涓哄鐞嗘偍鐨?Struts 搴旂敤紼嬪簭鎻愪緵浜嗕竴緋誨垪鍏ㄦ柊鐨勯夋嫨銆傚湪鏈緥涓紝浣跨敤鍔ㄤ綔濮旀墭鍙互杞繪澗鍦板埄鐢?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鎷︽埅鍣ㄦ彁楂?Struts 搴旂敤紼嬪簭涓殑鏃ュ織璁板綍鑳藉姏銆?/P><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT face=Verdana color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=IDAFI4W><span id="8kk8qss" class=atitle><STRONG><FONT size=4>緇撴潫璇?/FONT></STRONG></SPAN></A></P> <P>鍦ㄦ湰鏂囦腑錛屾偍宸茬粡瀛︿範浜嗗皢 Struts 鍔ㄤ綔鏁村悎鍒?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦涓殑涓夌紿嶉棬銆備嬌鐢?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨?<CODE><FONT face=Courier size=2>ActionSupport</FONT></CODE> 鏉ユ暣鍚?Struts錛堢涓縐嶇獚闂ㄤ腑灝辨槸榪欐牱鍋氱殑錛夌畝鍗曡屽揩鎹鳳紝浣嗘槸浼氬皢 Struts 鍔ㄤ綔涓?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鑰﹀悎鍦ㄤ竴璧楓傚鏋滄偍闇瑕佸皢搴旂敤紼嬪簭縐繪鍒頒竴涓笉鍚岀殑妗嗘灦錛屽垯闇瑕侀噸鍐欎唬鐮併傜浜岀瑙e喅鏂規硶閫氳繃濮旀墭 <CODE><FONT face=Courier size=2>RequestProcessor</FONT></CODE> 宸у鍦拌В寮浠g爜鐨勮﹀悎錛屼絾鏄畠鐨勫彲鎵╁睍鎬т笉寮猴紝騫朵笖褰?Struts 鐨?<CODE><FONT face=Courier size=2>RequestProcessor</FONT></CODE> 鍙樻垚涓緋誨垪鍛戒護鏃訛紝榪欑鏂規硶灝辨寔緇笉浜嗗緢闀挎椂闂淬傜涓夌鏂規硶鏄繖涓夌鏂規硶涓渶濂界殑錛氬皢 Struts 鍔ㄤ綔濮旀墭緇?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鍙互浣夸唬鐮佽В鑰︼紝浠庤屼嬌鎮ㄥ彲浠ュ湪鎮ㄧ殑 Struts 搴旂敤紼嬪簭涓埄鐢?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 鐨勭壒鎬э紙姣斿鏃ュ織璁板綍鎷︽埅鍣級銆?/P> <P>涓夌 Struts-Spring 鏁村悎紿嶉棬涓殑姣忎竴縐嶉兘琚疄鐜版垚涓涓畬鏁村彲鐢ㄧ殑搴旂敤紼嬪簭銆傝鍙傞槄 <A ><FONT color=#996699>涓嬭澆</FONT></A> 閮ㄥ垎浠旂粏鐮旂┒瀹冧滑銆?/P><BR><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT face=Verdana color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><span id="mo6uoww" class=atitle><A name=download><STRONG><FONT size=4>涓嬭澆</FONT></STRONG></A></SPAN></P> <TABLE class=data-table-1 cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TH>鎻忚堪</TH> <TH>鍚嶅瓧</TH> <TH style="TEXT-ALIGN: right">澶у皬</TH> <TH> 涓嬭澆鏂規硶</TH></TR> <TR> <TD class=tb-row>ActionSupport sample code</TD> <TD noWrap>j-sr2-actionsupport.zip</TD> <TD style="TEXT-ALIGN: right" noWrap>5 MB</TD> <TD noWrap> <A class=fbox href="ftp://www6.software.ibm.com/software/developer/library/j-sr2-actionsupport.zip"><B><FONT face=Verdana color=#5c81a7>FTP</FONT></B></A></TD></TR> <TR> <TD class=tb-row>RequestProcessor sample code</TD> <TD noWrap>j-sr2-requestprocessor.zip</TD> <TD style="TEXT-ALIGN: right" noWrap>5 MB</TD> <TD noWrap> <A class=fbox href="ftp://www6.software.ibm.com/software/developer/library/j-sr2-requestprocessor.zip"><B><FONT face=Verdana color=#5c81a7>FTP</FONT></B></A></TD></TR> <TR> <TD class=tb-row>Delegate sample code</TD> <TD noWrap>j-sr2-delegate.zip</TD> <TD style="TEXT-ALIGN: right" noWrap>5 MB</TD> <TD noWrap> <A class=fbox href="ftp://www6.software.ibm.com/software/developer/library/j-sr2-delegate.zip"><B><FONT face=Verdana color=#5c81a7>FTP</FONT></B></A></TD></TR></TBODY></TABLE> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR vAlign=top> <TD colSpan=5><FONT face=Verdana color=#5c81a7><IMG height=12 alt="" src="http://www.ibm.com/i/c.gif" width=12 border=0></FONT></TD></TR> <TR> <TD><FONT face=Verdana color=#5c81a7><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/fw.gif" width=16></FONT></TD> <TD><A class=fbox ><FONT face=Verdana color=#5c81a7>鍏充簬涓嬭澆鏂規硶鐨勪俊鎭?/FONT></A></TD> <TD><FONT face=Verdana color=#5c81a7><IMG height=1 alt="" src="http://www.ibm.com/i/c.gif" width=50></FONT></TD> <TD><FONT face=Verdana color=#5c81a7><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/sout.gif" width=16></FONT></TD> <TD><A class=fbox ><FONT face=Verdana color=#5c81a7>鑾峰彇 Adobe廬 Reader廬</FONT></A></TD></TR></TBODY></TABLE><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><FONT face=Verdana color=#5c81a7><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></FONT></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><FONT face=Verdana color=#5c81a7><IMG height=16 alt="" src="http://www.ibm.com/i/v14/icons/u_bold.gif" width=16 border=0><BR></FONT></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT face=Verdana color=#996699>鍥為〉棣?/FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR><BR> <P><A name=resources><span id="8ckmey6" class=atitle><STRONG><FONT size=4>鍙傝冭祫鏂?</FONT></STRONG></SPAN></A></P><STRONG>瀛︿範</STRONG><BR> <UL> <LI>鎮ㄥ彲浠ュ弬闃呮湰鏂囧湪 developerWorks 鍏ㄧ悆绔欑偣涓婄殑 <A target=_blank><FONT color=#5c81a7>鑻辨枃鍘熸枃</FONT></A>銆?BR><BR> <LI><A ><FONT color=#5c81a7><a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 緋誨垪</FONT></A>錛圢aveen Balani錛宒eveloperWorks錛?005 騫?6 鍒?9 鏈堬級錛氬 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦鐨勭粍浠跺拰鐗規э紙鍖呮嫭 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> AOP錛夌殑鍒嗕負鍥涢儴鍒嗙殑浠嬬粛銆?BR><BR> <LI><A ><FONT color=#5c81a7>Best practices in Struts development</FONT></A>錛圥alaniyappan Thiagarajan 鍜?Pagadala Suresh錛宒eveloperWorks錛?004 騫?6 鏈堬級錛氭榪頒簡 Struts <CODE><FONT face=Courier size=2>Action</FONT></CODE> 緇勪歡銆?BR><BR> <LI><A ><FONT color=#5c81a7>Inversion of Control Containers and the Dependency Injection pattern</FONT></A>錛圡artin Fowler錛?004 騫?1 鏈堬級錛氫粙緇?IOC 瀹瑰櫒銆?BR><BR> <LI><A ><FONT color=#5c81a7>Introduction to the <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> Framework</FONT></A>錛圧od Johnson錛孴he ServerSide錛?005 騫?5 鏈堬級錛歋pring 鐨勫垱绔嬭呰В閲婁簡涓轟粈涔?<a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦寰堥噸瑕併?BR><BR> <LI><A ><FONT color=#5c81a7>Struts Recipes</FONT></A>錛圙eorge Franciscus 鍜?Danilo Gurovich錛汳anning錛?004 騫達級錛氬叧浜?Struts 紿嶉棬鍜屾渶浣沖疄璺電殑涓涓祦琛岀殑綰茶銆?BR><BR> <LI><A ><FONT color=#5c81a7>Struts In Action</FONT></A>錛圱ed Husted銆丆edric Dumoulin銆丟eorge Franciscus銆丏avid Winterfeldt錛汳anning錛?002 騫達級錛氶拡瀵逛笓涓?Struts 寮鍙戜漢鍛樼殑緇煎悎璧勬簮銆?BR><BR> <LI><A ><FONT color=#5c81a7><a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> In Action</FONT></A>錛圕raig Walls 鍜?Ryan Breidenbach錛汳anning錛?005 騫達級錛氫竴鏈敤浜庡紑鍙戜漢鍛樼殑 <a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 璧勬簮涔︾睄銆?BR><BR> <LI><A ><FONT color=#5c81a7>Java 鎶鏈笓鍖?/FONT></A>錛氭壘鍒板叧浜?Java 緙栫▼鍚勪釜鏂歸潰鐨勬枃绔犮?BR><BR></LI></UL><BR><B>鑾峰緱浜у搧鍜屾妧鏈?/B><BR> <UL> <LI><A ><FONT color=#5c81a7>Struts 妗嗘灦</FONT></A>錛欰pache Software Foundation 鐨勪竴涓」鐩?BR><BR> <LI><A ><FONT color=#5c81a7><a title="蹇冨緱涓庝綋浼? href="http://www.tkk7.com/shmily432685" >spring in action</a> 妗嗘灦</FONT></A>錛氫竴涓垎灞傜殑 Java 浼佷笟搴旂敤紼嬪簭妗嗘灦銆?BR><BR></LI></UL><BR><B>璁ㄨ</B><BR> <UL> <LI>鍔犲叆鏈枃鐨?A href="javascript:void forumWindow()"><FONT color=#5c81a7>璁哄潧</FONT></A> 銆?鎮ㄤ篃鍙互閫氳繃鐐瑰嚮鏂囩珷欏墮儴鎴栬呭簳閮ㄧ殑璁哄潧閾炬帴鍙傚姞璁ㄨ銆?<BR><BR> <LI><A ><FONT color=#5c81a7>developerWorks blogs</FONT></A>錛氬姞鍏?developerWorks 紺懼尯銆?/LI></UL><BR> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD><IMG height=1 alt="" src="http://www.ibm.com/i/v14/rules/blue_rule.gif" width="100%"></TD></TR></TBODY></TABLE> <TABLE class=no-print cellSpacing=0 cellPadding=0 align=right> <TBODY> <TR align=right> <TD> <TABLE cellSpacing=0 cellPadding=0 border=0> <TBODY> <TR> <TD vAlign=center><BR></TD> <TD vAlign=top align=right><A class=fbox ><B><FONT face=Verdana color=#996699></FONT></B></A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR> <P><A name=author><span id="ogooiqc" class=atitle><STRONG><FONT size=4>鍏充簬浣滆?/FONT></STRONG></SPAN></A></P> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD colSpan=2><STRONG><FONT size=4><IMG height=5 alt="" src="http://www.ibm.com/i/c.gif" width="100%"></FONT></STRONG></TD></TR> <TR vAlign=top align=left> <TD> <P><STRONG><FONT size=4></FONT></STRONG></P></TD> <TD> <P>George Franciscus 鏄?Java 鍏徃鐨勪竴鍚嶉【闂拰 Struts 鏂歸潰鐨勬潈濞併備粬鏄?Manning 鍑虹増鐨?<A ><FONT color=#5c81a7>Struts Recipes</FONT></A> 鍜?<A ><FONT color=#5c81a7>Struts in Action</FONT></A> 鐨勫悎钁楄呫?George 閫氳繃 <A ><FONT color=#5c81a7>nexcel.ca</FONT></A> 鎻愪緵鏈夊叧鎶鏈拰綆$悊鏂歸潰鐨勫挩璇㈡湇鍔°?/P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><img src ="http://www.tkk7.com/shmily432685/aggbug/19069.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/shmily432685/" target="_blank">闂墊瘬</a> 2005-11-09 23:53 <a href="http://www.tkk7.com/shmily432685/archive/2005/11/09/19069.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Myeclipse騫沖彴struts+hibernate+spring欏圭洰寮鍙戠ず渚?/title><link>http://www.tkk7.com/shmily432685/archive/2005/11/05/18233.html</link><dc:creator>闂墊瘬</dc:creator><author>闂墊瘬</author><pubDate>Fri, 04 Nov 2005 18:32:00 GMT</pubDate><guid>http://www.tkk7.com/shmily432685/archive/2005/11/05/18233.html</guid><description><![CDATA[     鎽樿:   <a href='http://www.tkk7.com/shmily432685/archive/2005/11/05/18233.html'>闃呰鍏ㄦ枃</a><img src ="http://www.tkk7.com/shmily432685/aggbug/18233.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/shmily432685/" target="_blank">闂墊瘬</a> 2005-11-05 02:32 <a href="http://www.tkk7.com/shmily432685/archive/2005/11/05/18233.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浣跨敤Spring閭歡鎶借薄灞傚彂閫佺畝鍗曢偖浠?閫氳繃鑷繁緙栧啓錛屾洿鏂板悗鍙戝竷)http://www.tkk7.com/shmily432685/archive/2005/11/04/18177.html闂墊瘬闂墊瘬Fri, 04 Nov 2005 09:49:00 GMThttp://www.tkk7.com/shmily432685/archive/2005/11/04/18177.html

  Spring鎻愪緵浜嗕竴涓彂閫佺數瀛愰偖浠剁殑楂樼駭鎶借薄灞傦紝瀹冨悜鐢ㄦ埛灞忚斀浜嗗簳灞傞偖浠剁郴緇熺殑涓浜涚粏鑺傦紝鍚屾椂璐熻矗浣庡眰嬈$殑浠h〃瀹㈡埛绔殑璧勬簮澶勭悊銆係pring閭歡鎶借薄灞傜殑涓昏鍖呬負org.springframework.mail銆傚畠鍖呮嫭浜嗗彂閫佺數瀛愰偖浠剁殑涓昏鎺ュ彛MailSender鍜?灝佽浜嗙畝鍗曢偖浠剁殑灞炴уfrom, to,cc, subject, text鐨勫煎璞″彨鍋歋impleMailMessage銆?
1銆佹垜浠畾涔変竴涓彂閫侀偖浠剁殑鎺ュ彛:OrderManager.java

1 public interface OrderManager extends BaseManager{
2 /**
3 *email,瑕佸彂閫佺殑閭歡鍦板潃;
4 *Code:嬋媧葷爜
5 */
6      public void placeOrder(String email);
7 }

2銆佹垜浠渶瑕佸璇ユ帴鍙h繘琛屽疄鐜扮殑鏂規硶:OrderManagerImpl.java

 1 import javax.mail.Message;
 2 import javax.mail.MessagingException;
 3 import javax.mail.internet.InternetAddress;
 4 import javax.mail.internet.MimeMessage;
 5 import org.springframework.mail.MailException;
 6 import org.springframework.mail.javamail.JavaMailSender;
 7 import org.springframework.mail.javamail.MimeMessagePreparator;
 8 import service.OrderManager;
 9  
11 public class OrderManagerImpl extends BaseManagerImpl implements OrderManager {
12 
13 private JavaMailSender mailsender;
14 private MyMailMessage message;
15 
16 
17     public void setMessage(CityMailMessage message)
18     {
19         this.message = message;
20     }
21     public void setMailsender(JavaMailSender mailsender) {
22         this.mailsender = mailsender;
23     }
24     public void placeOrder(final String email) {
25         
26 
27         MimeMessagePreparator preparator = new MimeMessagePreparator() {
28             public void prepare(MimeMessage mimeMessage) throws MessagingException {
29                 mimeMessage.setRecipient(Message.RecipientType.TO, 
30                         new InternetAddress(email));
31                 mimeMessage.setFrom(new InternetAddress(message.getFrom()));
32                 /**杞崲緙栫爜涓篏BK*/
33                 mimeMessage.setSubject(message.getSubject(),"GBK");
36                 mimeMessage.setText(email+"<br>"+message.getSubject()+message.getText(),"GBK");
37                 
38             }
39         };
40         try{
41             mailsender.send(preparator);
42         }
43         catch(MailException ex) {
44             //log it and go on
45             System.err.println(ex.getMessage());            
46         }
47     }
48 }

3銆乻pring閰嶇疆鍙戦乪mail鐨刟pplicationContext-email.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
 3     "http://www.springframework.org/dtd/spring-beans.dtd">
 4 
 5 <beans>
 6     <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
 7         <property name="host">
 8             <value>smtp.163.com</value>
 9         </property>
10         <property name="username">
11             <value>username</value>
12         </property>
13         <property name="password">
14             <value>password</value>
15         </property>
16         <property name="javaMailProperties">
17             <props>
18                 <prop key="mail.smtp.auth">true</prop>
19                 <prop key="mail.smtp.timeout">25000</prop>
20             </props>
21         </property>
22     </bean>
23 
24     <bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
25         <property name="from">
26             <value>Email</value>
27         </property>
28         <property name="subject">
29             <value>鏍囬</value>
30         </property>
31         <property name="text">
32             <value>鍐呭</value>
33         </property>
46     </bean>
47 
48     <bean id="orderManager" class="cn.cityyouth.service.impl.OrderManagerImpl">
49         <property name="mailsender">
50             <ref bean="mailSender" />
51         </property>
52         <property name="message">
53             <ref bean="mailMessage" />
54         </property>
55     </bean>
56 
57 </beans>

4銆佹渶鍚庨厤緗嚜宸辯殑jsp欏甸潰浠ュ強action

 1 package cn.cityyouth.web.action;
 2 
 3 import javax.servlet.http.HttpServletRequest;
 4 import javax.servlet.http.HttpServletResponse;
 5 import org.apache.struts.action.ActionForm;
 6 import org.apache.struts.action.ActionForward;
 7 import org.apache.struts.action.ActionMapping;
 8 import org.apache.struts.action.ActionMessage;
 9 import org.apache.struts.action.ActionMessages;
10 import com.test.service.OrderManager;
11 
12 public class SendMailAction extends BaseAction {
13 
14     /**
15      * Method execute
16      * 
17      * @param mapping
18      * @param form
19      * @param request
20      * @param response
21      * @return ActionForward
22      */
23     public ActionForward execute(ActionMapping mapping, ActionForm form,
24             HttpServletRequest request, HttpServletResponse response) {
25         OrderManager omi=(OrderManager)this.getBean("orderManager");
26         String useremail="123@163.com";
27          omi.placeOrder(useremail);
28        }
29 }

鍒版鎵鏈夌殑寮鍙戜互緇撴潫銆?BR>

Sring閭歡鎶借薄灞傜殑涓昏鍖呮槸錛歰rg.springframework.mail 鍖呫傚畠鍖呭惈鍙玀ailSender涓哄彂閫侀偖浠剁殑鏍稿績鎺ュ彛鍜屽寘鍚畝鍗曢偖浠跺睘鎬т緥濡俧rom,to,cc,subject,text鍙玈impleMailMessage鐨勫煎璞? 榪欎釜鍖呬篃鍖呭惈涓涓鏌ュ紓甯哥殑灞傛錛屽畠鏀寔涓涓洿楂樼駭鍒殑鎶借薄瓚呰繃浣庣駭鍒殑閭歡緋葷粺寮傚父浼撮殢鏍瑰紓甯稿瓨鍦∕ailException. 璇峰弬鑰僇avaDocs涓烘洿澶氱殑淇℃伅鏉傞偖浠跺紓甯稿眰嬈°?/P>

spring in action also provides a sub-interface of MailSender for specialized JavaMail features such as MIME messages, namely org.springframework.mail.javamail.JavaMailSender It also provides a callback interface for preparation of JavaMail MIME messages, namely org.springframework.mail.javamail.MimeMessagePreparator

Spring涔熸敮鎸佷竴涓狹ailSender鐨勪笓鐢ㄤ簬JavaMail鐗瑰緛渚嬪MIME娑堟伅瀛愭帴鍙o紝鍛藉悕涓簅rg.springframework.javamail.JavaMailerSener銆傚畠涔熸敮鎸佷竴涓負JavaMail MIME淇℃伅鐨勫噯澶囧洖璋冩帴鍙o紝鍛藉悕涓簅rg.springframework.mail.JavaMail.MimeMessagePreparator.
 



闂墊瘬 2005-11-04 17:49 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 日本人的色道免费网站| 国产精品成人69XXX免费视频| 亚洲一日韩欧美中文字幕在线| 亚洲中文字幕一区精品自拍| 精品国产日韩亚洲一区91| 成人在线免费视频| 国产一级片免费看| 亚洲精品免费网站| 免费人成在线观看网站视频| 亚洲色偷拍另类无码专区| 亚洲视频一区在线| 国产精品亚洲av色欲三区| 在线观看免费视频网站色| 成人黄色免费网址| 亚洲成a人片在线观看国产| 国产亚洲精久久久久久无码| 国产成人亚洲合集青青草原精品| 日韩精品免费一线在线观看| 日韩中文字幕免费视频| 日韩在线免费电影| 亚洲AV无码欧洲AV无码网站| 亚洲AV无码一区二区三区在线| 香蕉视频免费在线播放| 亚洲精品免费视频| 成人永久福利免费观看| 亚洲AV午夜福利精品一区二区| 亚洲日韩国产AV无码无码精品| 91视频精品全国免费观看| 在线看片免费不卡人成视频| 久久久久亚洲AV成人网人人软件| 亚洲精品动漫在线| 无码AV动漫精品一区二区免费| 最近免费中文字幕大全免费版视频 | 亚洲综合av一区二区三区不卡| WWW免费视频在线观看播放| 成人免费无码大片A毛片抽搐色欲| 亚洲一区二区三区影院| 亚洲欧洲精品成人久久曰| 免费网站看av片| 免费乱码中文字幕网站| 亚洲噜噜噜噜噜影院在线播放|