国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

Jsp之Struts入門簡介

2024-09-05 00:17:23
字體:
供稿:網(wǎng)友

     Jsp之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,下面本文對Jsp之Struts做一簡要介紹。

1.安裝Struts:
  首先到http://jakarta.apache.org/Struts下載Struts,建議使用release版,現(xiàn)在最高版本為1.2.6,有多種OS版本(windows,linus...),下載后解壓開來,可以看到這個(gè)目錄:lib和webapps,webapps下有一些WAR文件。假設(shè)你的Tomcat裝在c://Tomcat下,則將那些WAR文件拷貝到C://Tomcat//webapps,重新啟動Tomcat即可。打開瀏覽器,在地址欄中輸入:http://localhost:8080/Struts-examples/,若能見到“powered by Struts”的深藍(lán)色圖標(biāo),即說明成功了。這是Struts自帶的一個(gè)例子,附有詳細(xì)的說明文檔,可以做為初學(xué)者的入門教程。另外,Struts還提供了一系統(tǒng)實(shí)用對象:XML處理、通過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息等
2.練習(xí)做一個(gè)實(shí)例: 
  一個(gè)用戶注冊系統(tǒng),用戶通過網(wǎng)頁輸入相關(guān)信息:注冊ID號,密碼,EMAIL,若注冊成功,則返回成功提示信息,反之出現(xià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> [Page] 
      <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/"/> 
 


  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來完成。 
  3.Struts優(yōu)缺點(diǎ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ù)雜度。
  優(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)得更加明顯。 
 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 卓资县| 马关县| 凌云县| 营山县| 达日县| 临桂县| 汶川县| 义乌市| 邮箱| 曲阜市| 自贡市| 巴林左旗| 镇康县| 太保市| 无极县| 射阳县| 济源市| 江门市| 竹溪县| 十堰市| 朝阳市| 东海县| 霞浦县| 延津县| 连城县| 泰顺县| 和平区| 施秉县| 黄浦区| 武冈市| 衡水市| 长海县| 秦安县| 南陵县| 上饶市| 文山县| 康马县| 临湘市| 长海县| 紫金县| 通山县|