亚洲二区视频,久久久亚洲欧洲日产国码αv,曰韩精品一区二区http://www.aygfsteel.com/konhon/category/3029.html忘掉過去,展望未來。找回自我,超越自我。 <br> <b>逃避不一定躲的過, 面對不一定最難過, 孤單不一定不快樂, 得到不一定能長久, 失去不一定不再擁有, 可能因?yàn)槟硞€(gè)理由而傷心難過, 但我卻能找個(gè)理由讓自己快樂.</b><br><p> <!-- Search Google --> <left> <form method="get" action="http://www.google.com/custom" target="google_window"> <table> <tr><td nowrap="nowrap" valign="top" align="left" height="32"> <a > <img src="http://www.google.com/logos/Logo_25wht.gif" border="0" alt="Google" align="middle"></img></a> <input type="text" name="q" size="31" maxlength="255" value=""></input> <input type="submit" name="sa" value="搜索"></input> <input type="hidden" name="client" value="pub-5408663347953425"></input> <input type="hidden" name="forid" value="1"></input> <input type="hidden" name="ie" value="UTF-8"></input> <input type="hidden" name="oe" value="UTF-8"></input> <input type="hidden" name="cof" value="GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1;"></input> <input type="hidden" name="hl" value="zh-CN"></input> </td></tr></table> </form> </left> <!-- Search Google --> zh-cnTue, 27 Feb 2007 11:09:32 GMTTue, 27 Feb 2007 11:09:32 GMT60配置Struts應(yīng)用(原創(chuàng)) http://www.aygfsteel.com/konhon/archive/2006/12/03/85157.htmlkonhon 優(yōu)華konhon 優(yōu)華Sun, 03 Dec 2006 02:38:00 GMThttp://www.aygfsteel.com/konhon/archive/2006/12/03/85157.htmlhttp://www.aygfsteel.com/konhon/comments/85157.htmlhttp://www.aygfsteel.com/konhon/archive/2006/12/03/85157.html#Feedback0http://www.aygfsteel.com/konhon/comments/commentRss/85157.htmlhttp://www.aygfsteel.com/konhon/services/trackbacks/85157.html Struts應(yīng)用采用兩個(gè)基于XML的配置文件來配置,分別是web.xml和struts-cofig.xml文件.web.xml文件是配置所有web應(yīng)用的而struts-config.xml文件是struts專用的配置文件,事實(shí)上也是可以根據(jù)需要給這個(gè)配置文件起其他名稱的.

Web應(yīng)用的發(fā)布描述文件:web應(yīng)用發(fā)布描述文件可以在應(yīng)用開著者,發(fā)布者和組裝者之間傳遞配置信息,Web容器在啟動的時(shí)候從該文件中讀取配置信息,根據(jù)它來裝載和配置web應(yīng)用.文檔類型定義DTD對XML文檔的格式做了定義,DTD吧XML文檔劃分為元素,屬性,實(shí)體每一種XML文檔都有獨(dú)自的DTD文件.可以從網(wǎng)上下載.<web-app>元素是web.xml的根元素,其他元素必須嵌入在<web-app>元素之內(nèi).要注意的是子元素也是有順序的比如必須是首先<servlet>,然后<servlet-mapping>最后<taglib>.

Struts應(yīng)用配置Web.xml文件:首先最重要的一步是配置ActionServlet,這個(gè)用<servlet>標(biāo)簽的servlet-name屬性起一個(gè)名字叫action,然后用servlet-class屬性指定ActionServlet的類.然后用<servlet-mapping>標(biāo)簽的servlet-name屬性指定action,在用url-pattern指定接收范圍是*.do的請求.不管應(yīng)用中包含了多少子應(yīng)用,都只需要配置一個(gè)ActionServlet,類來出來應(yīng)用中的不同的功能,其實(shí)者就是不必要的,因?yàn)镾ervlet本身就是多線程的,而且目前Struts只允許配置一個(gè)ActionServlet.聲明ActionServlet的初始化參數(shù):<servlet>的<init-param>子元素用來配置Servlet的初始化參數(shù).param-name設(shè)置config參數(shù)名.param-value設(shè)置struts-config.xml的路徑參數(shù)值.

配置歡迎使用清單:如果客戶訪問Web的時(shí)候值是訪問了WEB應(yīng)用的根目錄URL.沒有具體的指定文件,Web會自動調(diào)用Web的歡迎文件.<welcome-file-list>元素來配置的.通過其中的<welcome-file>歡迎頁面</welcome-file>來配置.

配置錯(cuò)誤處理:盡管Struts框架功能強(qiáng)大的錯(cuò)誤處理機(jī)制,但是不能保證處理所有的錯(cuò)誤或者異常.當(dāng)錯(cuò)誤發(fā)生時(shí),如果框架不能處理這種錯(cuò)誤,把錯(cuò)誤拋棄給Web容器,在默認(rèn)的情況下web容器會想客戶端返回錯(cuò)誤信息.如果想避免讓客戶看到原始的錯(cuò)誤信息,可以在Web應(yīng)用發(fā)布描述文件中配置<error-page>元素.通過<error-code>404來定義錯(cuò)誤的類型.然后通過<location>要處理錯(cuò)誤的JSP頁面來對錯(cuò)誤進(jìn)行處理.還可以用<exception-type>來設(shè)置異常,然后通過<location>來處理異常的JSP頁面來處理異常.

配置Struts標(biāo)簽庫:這個(gè)就和以前學(xué)到的JSP自定義標(biāo)簽類似,配置元素為<taglib>來配置.<taglib-uri>這個(gè)指定標(biāo)簽庫的uri,類似起一個(gè)名稱.<taglib-location>這個(gè)是標(biāo)簽庫的位置也就是實(shí)際所在的路徑.通過這樣的方法引入一個(gè)標(biāo)簽庫,然后在前臺JSP頁面就可以通過自己定義的URI來調(diào)用標(biāo)簽.

Struts配置文件:struts-config.xml文件.首先研討一下org.apache.struts.config包,在struts應(yīng)用啟動的時(shí)候會把Struts配置文件信息讀取到內(nèi)存中,并把它們存放在config包中相關(guān)的JavaBean類的實(shí)例中.包中的每一個(gè)類都和struts配置文件中特定的配置元素對應(yīng),ModuleConfig在Struts框架中扮演了十分重要的角色,它是整個(gè)config包的核心,在Struts運(yùn)行時(shí)來存放整個(gè)應(yīng)用的配置信息.如果有多個(gè)子應(yīng)用都會有一個(gè)ModuleConfig對象,它和Struts文件根元素的<struts-config>對應(yīng).根元素中包含<form-bean><action><forward>等元素.

<struts-config>元素:時(shí)Struts配置文件的根元素,和它對應(yīng)的配置類ModuleConfig類,<struts-config>元素有8個(gè)子元素.他們的DTD定義是data-sources?form-bean? global-exception?global-forwards?action-mapping?controller?message-resources?plug-in*在Struts配置文件中,必須按照DTD指定的先手順序來配置<struts-config>元素的各個(gè)子元素,如果顛倒了這些子元素的順序,會產(chǎn)生錯(cuò)誤.

<data-sources>元素:用來配置應(yīng)用所需要的數(shù)據(jù)源,數(shù)據(jù)源負(fù)責(zé)創(chuàng)建和特定的數(shù)據(jù)庫的連接.許多數(shù)據(jù)源采用連接池的機(jī)制實(shí)現(xiàn).以便提高數(shù)據(jù)庫訪問的性能.JAVA語言提供了javax.sql.DataSource接口,所有的數(shù)據(jù)源都必須實(shí)現(xiàn)這個(gè)接口.許多應(yīng)用服務(wù)器和Web服務(wù)器都提供了數(shù)據(jù)源組件.很多數(shù)據(jù)庫廠商也提供了數(shù)據(jù)源的實(shí)現(xiàn).<data-sources>元素包含多個(gè)<data-source>子元素永遠(yuǎn)配置特定的數(shù)據(jù)源.他們可以包含多個(gè)<set-property>子元素用于設(shè)置數(shù)據(jù)源的各種屬性.配置了數(shù)據(jù)源以后,就可以在Action類中訪問數(shù)據(jù)源,在Action中定義了getDataSource(HttpRequest)方法,用于獲取數(shù)據(jù)源對象的引用.然后可以利用DataSource對象調(diào)用getConnection獲取一個(gè)連接對象對數(shù)據(jù)庫進(jìn)行操作.在配置文件中聲明多個(gè)數(shù)據(jù)源的時(shí)候需要為每一個(gè)數(shù)據(jù)源分配唯一的Key值,通過這個(gè)來表示特定的數(shù)據(jù)源.獲取特定的數(shù)據(jù)源的時(shí)候可以用dataSource = getDataSource(reqeust,”A”);

<form-beans>元素:用來配置多個(gè)ActionForm,包含一個(gè)或者N個(gè)<form-bean>子元素.每個(gè)<form-bean>元素都包含多個(gè)屬性.className指定和<form-bean>匹配的類.name指定該ActionForm的唯一標(biāo)識符,這個(gè)屬性是必須的以后作為引用使用.type指定ActionForm類的完整類名,這個(gè)屬性也是必須的.注意包名也要加上.<form-property>是指定動態(tài)的Form的元素,以后會深入了解.

<global-exception>元素:用于配置異常處理,元素可以包含一個(gè)或者多個(gè)<exception>元素,用來設(shè)置JAVA異常和異常處理類ExceptionHandler之間的映射.className指定和元素對應(yīng)的配置類,默認(rèn)的不用動.handler指定異常處理類默認(rèn)是ExceptionHandler.key指定在本地資源文件中異常的消息Key,path指定當(dāng)前異常發(fā)生的時(shí)候轉(zhuǎn)發(fā)的路徑.scope指定ActionMessages實(shí)例存放的范圍.type指定需要處理異常類的名字,必須的.bundle指定Resource Bundle.

<global-forwards>元素:用來聲明全局轉(zhuǎn)發(fā),元素可以有一個(gè)或者N個(gè)<forward>元素組成,用于把一個(gè)邏輯名映射到特定的URL,通過這種方法Action類或者JSP頁面無需指定URL,只要指定邏輯名稱就可以實(shí)現(xiàn)請求轉(zhuǎn)發(fā)或者重定向.這樣可以減少控制組件和視圖的聚合.易于維護(hù).className對應(yīng)的配置類.contextRelative如果為true表示當(dāng)path屬性以/開頭的時(shí)候,給出的是對應(yīng)的上下文URL默認(rèn)是false.name轉(zhuǎn)發(fā)路徑的邏輯名,必須寫.path轉(zhuǎn)發(fā)或者重定向的URL,必須寫必須是以/開頭.redirect設(shè)置為true的時(shí)候表示執(zhí)行重定向操作,此項(xiàng)為false的時(shí)候,表示執(zhí)行請求轉(zhuǎn)發(fā)操作.重定向與請求轉(zhuǎn)發(fā)的區(qū)別以后就是重定向是把請求生成應(yīng)答給客戶端然后在重新發(fā)送給定向的URL,瀏覽器地址欄會有顯示.而轉(zhuǎn)發(fā)就是直接把請求轉(zhuǎn)發(fā)給本應(yīng)用的另一個(gè)文件,不生成應(yīng)答所以客戶端IE沒顯示.

<action-mapping>元素:包含一個(gè)或者N個(gè)<action>元素,描述了從特定的請求路徑到響應(yīng)的Action的映射.在<action>元素中可以包含多個(gè)<exception>和<forward>子元素,他們分別配置局部異常處理和局部轉(zhuǎn)發(fā).attribute設(shè)置Action關(guān)聯(lián)的ActionForm在request或者session范圍內(nèi)的key.就是在request或者session共享內(nèi)的名稱.className對應(yīng)配置元素的類.默認(rèn)的是ActionMapping.forward指定轉(zhuǎn)發(fā)URL路徑include指定包含URL路徑.input指定包含表單的URL,當(dāng)表單驗(yàn)證失敗的時(shí)候發(fā)送的URL.name,指定和該Action關(guān)聯(lián)的Form名字.該名字必須是在form-bean中定義過的,可寫可不寫.path必須/開頭的方位Action的路徑.parameter指定Action配置參數(shù).在Action的execute()方法中可以調(diào)用ActionMapping的getParameter()方法來讀取匹配的參數(shù).roles指定允許調(diào)用該Action的安全角色,多個(gè)角色之間逗號格開.scope指定Form的存在范圍.默認(rèn)是session.tyep指定Action的完整類名.unknown如果是true表示可以處理用戶發(fā)出的所有的無效的ActionURL默認(rèn)是false.validate指定是否調(diào)用ActionForm的validate方法.

<controller>元素:用于配置ActionServlet.buffreSize指定上載文件的輸入緩沖大小.該屬性為可選默認(rèn)4096.className指定元素對應(yīng)的配置類,ControllerConfig.然后是contentType指定響應(yīng)結(jié)果內(nèi)容類型和字符編碼,該屬性為可選,默認(rèn)是text/html如果在Action或者JSP網(wǎng)頁也設(shè)置了類型內(nèi)容,會覆蓋這個(gè).locale指定是否把Locale對象保存到當(dāng)前用戶的session中默認(rèn)false.tempDir指定處理文件上載的臨時(shí)工作目錄.nochache如果是true在響應(yīng)結(jié)果中加入特定的頭參數(shù).

<message-resources>元素:用來配置Resource Bundle.用于存放本地文本消息文件.className元素對應(yīng)的配置類.MessageResourcesConfig.factory指定消息的工廠類.key指定文件存放的Servlet對象中采用的屬性Key.null指定如何處理未知消息.parameter指定消息的文件名.

<plug-in>元素:用于配置Struts插件.

配置多應(yīng)用模塊:所有的子應(yīng)用都可以共享同一個(gè)ActionServlet實(shí)例,但是每個(gè)子應(yīng)用都有單獨(dú)的配置文件.把應(yīng)用劃分為多個(gè)子應(yīng)用模塊.首先為每個(gè)應(yīng)用創(chuàng)建單獨(dú)的Struts配置文件,在web.xml的ActionServlet配置代碼中添加幾個(gè)子應(yīng)用信息.采用<forward>元素來實(shí)現(xiàn)應(yīng)用之間的切換.

Digester組件:是一個(gè)Apache的另一個(gè)開源代碼項(xiàng)目.當(dāng)Struts被初始化的時(shí)候,首先會讀取并解析配置文件,框架采用Digester組件來且西配置文件.然后創(chuàng)建config包中的對象.者對象用于存放配置信息.

其實(shí)配置文件不難,只要都理其中的原理就OK了.真正實(shí)際的項(xiàng)目開發(fā)中,采用的工具例如Eclipse系列,提供了相應(yīng)的插件,在創(chuàng)建一個(gè)Struts工程的時(shí)候配置文件的標(biāo)簽都是自動生成的,而我們只需要往里面填寫屬性就OK了. (網(wǎng)友們的支持,是我繼續(xù)寫技術(shù)文章的動力!)



konhon 優(yōu)華 2006-12-03 10:38 發(fā)表評論
]]>
Struts入門經(jīng)驗(yàn)http://www.aygfsteel.com/konhon/archive/2005/08/27/11274.htmlkonhon 優(yōu)華konhon 優(yōu)華Sat, 27 Aug 2005 01:53:00 GMThttp://www.aygfsteel.com/konhon/archive/2005/08/27/11274.htmlhttp://www.aygfsteel.com/konhon/comments/11274.htmlhttp://www.aygfsteel.com/konhon/archive/2005/08/27/11274.html#Feedback0http://www.aygfsteel.com/konhon/comments/commentRss/11274.htmlhttp://www.aygfsteel.com/konhon/services/trackbacks/11274.htmlStruts安裝:
首先請到http://jakarta.apache.org/Struts下載Struts,建議使用release版,現(xiàn)在最高版本為1.1,下載后得到的是一個(gè)ZIP文件。
將ZIP包解開,可以看到這個(gè)目錄:lib和webapps,webapps下有一些WAR文件。假設(shè)你的Tomcat裝在c:\Tomcat下,則將那些WAR文件拷貝到C:\Tomcat\webapps,重新啟動Tomcat即可。打開瀏覽器,在地址欄中輸入:http://localhost:8080/Struts-example/index.jsp,若能見到“powered by Struts”的深藍(lán)色圖標(biāo),即說明成功了。這是Struts自帶的一個(gè)例子,附有詳細(xì)的說明文檔,可以做為初學(xué)者的入門教程。另外,Struts還提供了一系統(tǒng)實(shí)用對象:XML處理、通過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息等

一個(gè)實(shí)例:
一個(gè)用戶注冊系統(tǒng),用戶通過網(wǎng)頁輸入相關(guān)信息:注冊ID號,密碼,EMAIL,若注冊成功,則返回成功提示信息,反之出現(xiàn)注冊失敗提示信息。
以下是相關(guān)文件的部分核心代碼。

項(xiàng)目建立:
正式開發(fā)前,需要在Tocmat(我的tomcat裝在c:\tomcat)中建立此項(xiàng)目。比較快的一種建立方式為:在C:\tomcat\webapps下新建目錄test,再將C:\tomcat\webapps\struts-example下的
WEB-INF目錄拷貝到test目錄下,然后將test\WEB-INF下的src和classes目錄清空,以及struts-config.xml文件中內(nèi)容清空即可。這樣,我們需要的Struts類包及相關(guān)的配置文件就都齊了。
開發(fā)時(shí),將JSP文件放在test目錄下,Java原文件放在test\WEB-INF\src下,編譯后的類文件放在test\WEB-INF\classes下。

注冊頁面:reguser.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/Struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/Struts-html.tld" prefix="html" %>
<html:html locale="true">
<head>
<title>RegUser</title>
<html:base/>
</head>
<body bgcolor="white">
<html:errors/>
<html:form action="/regUserAction" focus="logname">
<table border="0" width="100%">
<tr>
<th align="right">
Logname:
</th>
<td align="left">
<html:text property="logname" size="20" maxlength="20"/>
</td>
</tr>
<tr>
<th align="right">
Password:
</th>
<td align="left">
<html:password property="password" size="20" maxlength="20"/>
</td>
</tr> 
<tr>
<th align="right">
E-mail:
</th>
<td align="left">
<html:password property="email" size="30" maxlength="50"/>
</td>
</tr>
<tr>
<td align="right">
<html:submit property="submit" value="Submit"/>
</td>
<td align="left">
<html:reset/>
</td>
</tr>
</table>
</html:form>
</body>
</html:html>


此JSP頁面不同于普通的JSP頁,因?yàn)樗罅窟\(yùn)用了taglib,這些taglib對初學(xué)者而言,可能難于掌握,可這卻是Struts的精華之一。靈活運(yùn)用,將大大提高開發(fā)效率。

Struts-config.xml:

<Struts-config> 
<form-beans>
<form-bean name="regUserForm"
type
="org.cjea.Struts.example. RegUserForm "/> 
</form-beans>
<action-mappings>
<action path="/regUserAction"
type
=" org.cjea.Struts.example.RegUserAction "
attribute
=" regUserForm "
scope
="request"
validate
="false">
<forward name="failure" path="/ messageFailure.jsp"/>
<forward name="success" path="/ messageSuccess.jsp"/>
</action>
</action-mappings>
</Struts-config>

Struts的核心是Controller,即ActionServlet,而ActionServlet的核心就是Struts-config.xml,Struts-config.xml集中了所有頁面的導(dǎo)航定義。對于大型的WEB項(xiàng)目,通過此配置文件即可迅速把握其脈絡(luò),這不管是對于前期的開發(fā),還是后期的維護(hù)或升級都是大有裨益的。掌握Struts-config.xml是掌握Struts的關(guān)鍵所在。

FormBean:RegUserForm

package org.cjea.Struts.example;

import javax.Servlet.http.HttpServletRequest;
import org.apache.Struts.action.ActionForm;
import org.apache.Struts.action.ActionMapping;

public final class RegUserForm extends ActionForm{

private String logname;
private String password;
private String email;

public RegUserForm(){
logname 
= null;
password 
= null;
email 
= null;
}


public String getLogName() {
return this.logname;
}

public void setLogName(String logname) {
this.logname = logname;
}

public void setPassWord(String password) {
this.password = password;
}

public String getPassWord() {
return this.password;
}

public void setEmail(String email) {
this.email = email;
}

public String getEmail() {
return this.email;
}


public void reset(ActionMapping mapping, HttpServletRequest request)
{
logname 
= null;
password 
= null;
email 
= null;
}

}


每一個(gè)FormBean 都必須繼承ActionForm類,F(xiàn)ormBean是對頁面請求的封裝。即把HTTP request 封裝在一個(gè)對象中,需要說明的一點(diǎn)就是多個(gè)HTTP request可以共用一個(gè)FormBean,便于維護(hù)和重用。

ActionBean:RegUserAction

package org.cjea.Struts.example;

import javax.Servlet.http.
*;
import org.apache.Struts.action.
*;

public final class RegUserAction extends Action
{

public ActionForward perform(ActionMapping mapping,
ActionForm form, HttpServletRequest req,
HttpServletResponse res)

String title 
= req.getParameter("title");
String password 
= req.getParameter("password");
String email 
= req.getParameter("email");
/*
取得用戶請求,做相應(yīng)數(shù)據(jù)庫操作,略
*/
 
}

}


FormBean的產(chǎn)生是為了提供數(shù)據(jù)給ActionBean,在ActionBean中可以取得FormBean中封裝的數(shù)據(jù),經(jīng)相應(yīng)的邏輯處理后,調(diào)用業(yè)務(wù)方法完成相應(yīng)業(yè)務(wù)要求。

Servlet的演變:在常規(guī)的 JSP,Servlet,JavaBean三層結(jié)構(gòu)中,JSP實(shí)現(xiàn)View的功能,Servlet實(shí)現(xiàn)Controller的功能,JavaBean實(shí)現(xiàn)Model的實(shí)現(xiàn)。

在Struts中,將常規(guī)情況下的Servlet拆分與ActionServlet、FormBean、ActionBean三個(gè)部分。ActionServlet配合Struts-config.xml,專職完成頁面導(dǎo)航,而不再負(fù)責(zé)具體的數(shù)據(jù)獲取與相應(yīng)邏輯,這兩部分功能由FormBean和ActionBean來完成。

Struts優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
Struts跟Tomcat、Turbine等諸多Apache項(xiàng)目一樣,是開源軟件,這是它的一大優(yōu)點(diǎn)。使開發(fā)者能更深入的了解其內(nèi)部實(shí)現(xiàn)機(jī)制。
除此之外,Struts的優(yōu)點(diǎn)主要集中體現(xiàn)在兩個(gè)方面:Taglib和頁面導(dǎo)航。Taglib是Struts的標(biāo)記庫,靈活動用,能大大提高開發(fā)效率。另外,就目前國內(nèi)的JSP開發(fā)者而言,除了使用JSP自帶的常用標(biāo)記外,很少開發(fā)自己的標(biāo)記,或許Struts是一個(gè)很好的起點(diǎn)。
關(guān)于頁面導(dǎo)航,我認(rèn)為那將是今后的一個(gè)發(fā)展方向,事實(shí)上,這樣做,使系統(tǒng)的脈絡(luò)更加清晰。通過一個(gè)配置文件,即可把握整個(gè)系統(tǒng)各部分之間的聯(lián)系,這對于后期的維護(hù)有著莫大的好處。尤其是當(dāng)另一批開發(fā)者接手這個(gè)項(xiàng)目時(shí),這種優(yōu)勢體現(xiàn)得更加明顯。
缺點(diǎn):
Taglib是Struts的一大優(yōu)勢,但對于初學(xué)者而言,卻需要一個(gè)持續(xù)學(xué)習(xí)的過程,甚至還會打亂你網(wǎng)頁編寫的習(xí)慣,但是,當(dāng)你習(xí)慣了它時(shí),你會覺得它真的很棒。
Struts將MVC的Controller一分為三,在獲得結(jié)構(gòu)更加清晰的同時(shí),也增加了系統(tǒng)的復(fù)雜度。
Struts從產(chǎn)生到現(xiàn)在還不到半年,但已逐步越來越多運(yùn)用于商業(yè)軟件。雖然它現(xiàn)在還有不少缺點(diǎn),但它是一種非常優(yōu)秀的J2EE MVC實(shí)現(xiàn)方式,如果你的系統(tǒng)準(zhǔn)備采用J2EE MVC架構(gòu),那么,不妨考慮一下Struts。

Struts實(shí)施經(jīng)驗(yàn):
1、基于Struts架構(gòu)的項(xiàng)目開發(fā),首先需要有一個(gè)很好的整體規(guī)劃,整個(gè)系統(tǒng)中包括哪幾個(gè)模塊,每個(gè)模塊各需要多少FormBean和ActionBean等,而且最好有專人負(fù)責(zé)Struts-config.xml的管理。開發(fā)基于Struts的項(xiàng)目的難點(diǎn)在于配置管理,尤其是對Struts-config.xml的管理

2、如果你的項(xiàng)目非常緊,并且項(xiàng)目組中又沒有富有經(jīng)驗(yàn)的Struts開發(fā)人員,建議不要冒然采用Struts。Struts的掌握需要一個(gè)過程,對于一個(gè)熟練的JSP程序員,自學(xué)大概需要半個(gè)月左右的時(shí)間。如果結(jié)合titls,則需要更長的時(shí)間

3、如果你在網(wǎng)頁中大量運(yùn)用taglib,那么你的美工將做出部分犧牲。當(dāng)你結(jié)合Tiles,功能增強(qiáng)的同時(shí),這種犧牲尤為明顯。當(dāng)然,你對功能和美觀的取舍由你自己決定

4、Taglib是一個(gè)好東西,但靈活運(yùn)用它卻需要一個(gè)過程,如果你不想在Taglib上花太多的時(shí)間,那么只需理解與FORM有關(guān)的幾個(gè)標(biāo)記,其它的標(biāo)記就放著吧,以后再看,先去研究ActionServlet和Struts-config.xml,你會覺得很有成就感

5、Struts是否只適合于大型項(xiàng)目呢?No!Struts適合于各種大小的項(xiàng)目,當(dāng)然,對于大型項(xiàng)目,它所體現(xiàn)出來的優(yōu)勢更加明顯。



konhon 優(yōu)華 2005-08-27 09:53 發(fā)表評論
]]>
主站蜘蛛池模板: 苍溪县| 丰城市| 肃宁县| 绥德县| 恭城| 酉阳| 儋州市| 开鲁县| 新巴尔虎右旗| 盐池县| 霍州市| 县级市| 灵寿县| 亳州市| 蚌埠市| 平远县| 阜新| 呼伦贝尔市| 廊坊市| 讷河市| 蚌埠市| 平江县| 丽江市| 谢通门县| 宁陕县| 类乌齐县| 大英县| 嘉义市| 石渠县| 灵宝市| 山东省| 交口县| 安塞县| 安庆市| 新竹市| 三穗县| 杭锦后旗| 隆昌县| 青海省| 深圳市| 嘉义市|