Sung in Blog

                     一些技術(shù)文章 & 一些生活雜碎
          開(kāi)發(fā)環(huán)境:?

          Java?SDK?(I?am?currently?using?version?1.4.1)?


          Ant?(using?version?1.5.3)


          Apache?Tomcat?(using?version?4.1.24)

          您可以用功能相同的任何容器或者java運(yùn)行環(huán)境?

          第1步:開(kāi)發(fā)路徑?
          為了保留我們的開(kāi)發(fā)中每一步的流程,我們將保存所有的源碼和文件。?
          首先,我們創(chuàng)建一個(gè)springapp的目錄(你可以將這個(gè)目錄建在任何地方),然后,在springapp目錄下創(chuàng)建子目錄src,用來(lái)保存java資源文件。然后我們建立另一個(gè)子目錄war,這個(gè)目錄將保存生成的war文件。?
          建立WEB-INF子目錄,和它的classes,lib子目錄。?
          OK,你的目錄應(yīng)該這個(gè)樣子:?
          代碼:?

          -spirngapp?
          ??-WEB-INF?
          ??????-classes?
          ??????-lib?
          ??-src?
          ??-war?


          第2步:創(chuàng)建jsp?
          我們創(chuàng)建一個(gè)jsp文件-index.jsp在springapp目錄下,這將是我們應(yīng)用程序的入口.?

          代碼:?
          springapp/index.jsp?

          ?
          Example?::?Spring?Application?
          ?

          Example?-?Spring?Application

          ?

          This?is?my?test.

          ?
          ?
          ??????


          現(xiàn)在,我們來(lái)完成這個(gè)web應(yīng)用,在WEB-INF下建立web.xml文件?
          代碼:?

          springapp/WEB-INF/web.xml?
          ?
          ?

          ?


          ???
          ?????
          ??????index.jsp?
          ????
          ?
          ??
          ?

          ?


          第3步:部署這個(gè)應(yīng)用到Tomcat?
          現(xiàn)在我們來(lái)寫Ant腳本文件,用于建立,部署,控制這個(gè)應(yīng)用.?
          代碼:?

          springapp/build.xml?
          ?

          ?
          ?????

          ?????
          ?????
          ?????
          ?????

          ?????
          ?????????
          ?????????????
          ?????????
          ?????????
          ?????????????
          ?????????
          ?????

          ?????
          ?????????
          ?????????
          ?????????
          ?????????
          ?????????
          ?????????
          ?????????建立應(yīng)用"/>?
          ?????????部署應(yīng)用"/>?
          ?????????部署war文件"/>?
          ?????????安裝應(yīng)用"/>?
          ?????????重載應(yīng)用"/>?
          ?????????啟動(dòng)Tomcat?application"/>?
          ?????????停止?Tomcat?application"/>?
          ??????????列表?Tomcat?applications"/>?
          ?????????
          ?????

          ?
          ?
          ?
          ?????
          ?????????
          ???????????????????????deprecation="false"?optimize="false"?failonerror="true">?
          ?????????????
          ?????????????
          ?????????
          ?????

          ?????
          ?????????
          ?????????????
          ?????????????????
          ?????????????
          ?????????
          ?????

          ?????
          ?????????????????????webxml="${web.dir}/WEB-INF/web.xml">?
          ?????????????
          ?????????????????
          ?????????????
          ?????????
          ?????????
          ?????????????
          ?????????????????
          ?????????????
          ?????????
          ?????


          ?
          ?
          ?

          ?????
          ?????????
          ?????????????
          ????????
          ?
          ?????
          ?????
          ?????????
          ?????????????
          ????????
          ?
          ?????
          ?????
          ?????????
          ?????????????
          ????????
          ?
          ?????
          ?????
          ?????????
          ?????????????
          ????????
          ?
          ?????
          ?????
          ?????????
          ?????????????
          ????????
          ?
          ?????

          ?????
          ?????????????????????????username="${tomcat.manager.username}"?
          ?????????????????password="${tomcat.manager.password}"?
          ?????????????????path="/${name}"?
          ?????????????????war="${name}"/>?
          ?????

          ?????
          ?????????????????????????username="${tomcat.manager.username}"?
          ?????????????????password="${tomcat.manager.password}"?
          ?????????????????path="/${name}"/>?
          ?????
          ?
          ?????????????????????????username="${tomcat.manager.username}"?
          ?????????????????password="${tomcat.manager.password}"?
          ?????????????????path="/${name}"/>?
          ?????

          ?????
          ?????????????????????????username="${tomcat.manager.username}"?
          ?????????????????password="${tomcat.manager.password}"?
          ?????????????????path="/${name}"/>?
          ?????

          ?????
          ?????????????????????????username="${tomcat.manager.username}"?
          ?????????????????password="${tomcat.manager.password}"/>?
          ?????

          ?

          ?


          這個(gè)Ant腳本包含了建立應(yīng)用主要的工具命令,但是,這個(gè)腳本要配合build.properties使用.?
          代碼:?

          springapp/build.properties?
          #?Ant?properties?for?building?the?springapp?

          deploy.path=/home/trisberg/jakarta-tomcat-4.1.24/webapps?
          #deploy.path=c:/Tomcat?4.1/webapps?
          #deploy.path=c:/bea/user_projects/domains/mydomain/applications?

          tomcat.home=/home/trisberg/jakarta-tomcat-4.1.24?
          #tomcat.home=?c:/Tomcat?4.1?
          tomcat.manager.url=http://localhost:8080/manager?
          tomcat.manager.username=admin?
          tomcat.manager.password=tomcat?


          deploy.path?是tomcat的應(yīng)用目錄?
          tomcat.path?是tomcat的主目錄?
          tomcat.manager.url是管理訪問(wèn)路徑,注意你的端口是否正確?
          tomcat.manager.username,tomcat.manager.password?我就不用說(shuō)了吧?

          如果你執(zhí)行install命令,將在tomcat?webapps目錄下建立springapp目錄。?
          如果你用其他的web應(yīng)用服務(wù)器,那么你可以刪除tomcat指定的命令集,你可以用server提供的熱部署進(jìn)行啟動(dòng)和停止你的應(yīng)用.?

          現(xiàn)在我們來(lái)看一下ant提供的每個(gè)命令,在你的springapp目錄下執(zhí)行ant?

          代碼:?
          C:\projects\springapp>ant?
          Buildfile:?build.xml?

          usage:?

          ?????[echo]?springapp?build?file?
          ?????[echo]?-----------------------------------?

          ?????[echo]?Available?targets?are:?

          ?????[echo]?build?????????????????-->?建立應(yīng)用?
          ?????[echo]?deploy???????????????-->?部署應(yīng)用?
          ?????[echo]?deploywar?????????-->?部署war文件?
          ?????[echo]?install????????????????-->?安裝應(yīng)用?
          ?????[echo]?reload????????????????-->?重載應(yīng)用?
          ?????[echo]?start???????????????????-->?啟動(dòng)?springapp?
          ?????[echo]?stop???????????????????-->?停止?springapp?
          ?????[echo]?list?????????????????????-->?列表?Tomcat?applications?


          BUILD?SUCCESSFUL?
          Total?time:?5?seconds?


          現(xiàn)在,我們來(lái)部署應(yīng)用,執(zhí)行ant?deploy?

          代碼:?
          Ant?deploy?
          e:\projects\springapp>ant?deploy?
          Buildfile:?build.xml?
          ??
          deploy:?
          ?????[copy]?Copying?1?file?to?C:\Tomcat?4.1\webapps\springapp?
          ??
          BUILD?SUCCESSFUL?
          Total?time:?1?seconds?


          第4步:測(cè)試應(yīng)用?
          先看一下我們是否把應(yīng)用部署成功?

          代碼:?
          Ant?list?
          E:\projects\springapp>ant?list?
          Buildfile:?build.xml?

          list:?
          ?????[list]?OK?-?Listed?applications?for?virtual?host?localhost?

          ?????[list]?/admin:running:0:../server/webapps/admin?

          ?????[list]?/webdav:running:0:C:\Tomcat?4.1\webapps\webdav?

          ?????[list]?/springapp:running:1:C:\Tomcat?4.1\webapps\springapp?

          ?????[list]?/examples:running:0:examples?

          ?????[list]?/ofproject:running:0:C:\Tomcat?4.1\webapps\ofproject?

          ?????[list]?/tomcat-docs:running:0:C:\Tomcat?4.1\webapps\tomcat-docs?

          ?????[list]?/:running:0:C:\Tomcat?4.1\webapps\ROOT?

          ?????[list]?/manager:running:0:../server/webapps/manager?


          BUILD?SUCCESSFUL?
          Total?time:?5?seconds?


          如果你還沒(méi)有安裝,請(qǐng)執(zhí)行ant?install?

          代碼:?
          Ant?install?
          E:\projects\springapp>ant?install?
          Buildfile:?build.xml?
          ??
          install:?
          ??[install]?OK?-?Installed?application?at?context?path?/springapp?
          ??
          ??
          BUILD?SUCCESSFUL?
          Total?time:?2?seconds?



          現(xiàn)在,讓我們打開(kāi)瀏覽器看一下結(jié)果http://localhost:8080/springapp/index.jsp?


          第5步:下載spring?framework?package?
          如果你還沒(méi)有下在spring,請(qǐng)到www.springframework.org/download.html.?尋找最新版本.?

          下面我們將完成利用spring?framework?進(jìn)行開(kāi)發(fā)MVC?應(yīng)用程序.?


          第6步:修改web.xml?

          進(jìn)入WEB-INF目錄編輯web.xml?


          代碼:?
          WEB-INF/web.xml?
          ?
          ?

          ?

          ??
          ????springapp?
          ?????
          ???????org.springframework.web.servlet.DispatcherServlet?
          ????
          ?
          ????1?
          ??
          ?

          ???
          ????springapp?
          ????*.htm?
          ??
          ?

          ???
          ?????
          ??????index.jsp?
          ????
          ?
          ??
          ?

          ?



          在WEB-INF目錄下創(chuàng)建一個(gè)springapp-servlet.xml文件,它的命名規(guī)則是web.xml中的servlet-name?加上'-servlet'后綴,這是在springframework中的標(biāo)準(zhǔn)命名法則.?
          現(xiàn)在,我們聲明一個(gè)bean?:springappController?他對(duì)應(yīng)的類是SpringappController.class?
          這個(gè)定義用于我們控制業(yè)務(wù)邏輯。我們還需要定義一個(gè)url?mapping作為http調(diào)用的路徑.?



          代碼:?
          springapp/WEB-INF/springapp-servlet.xml?

          ?
          ?

          ?

          ?
          ?????

          ?????
          ?????????
          ?????????????
          ????????????????springappController?
          ????????????
          ?
          ?????????
          ?????
          ?



          第7步:添加支持包?

          從spring的下載文件包中找到,spring.jar?(spring-framework-1.0-m1/dist/spring.jar)?拷貝到WEB-INF/lib下面。?
          拷貝spring-framework-1.0-m1/lib/log4j/log4j-1.2.8.jar?和?spring-framework-1.0-m1/lib/jakarta-commons/commons-logging.jar到WEB-INF/lib下面。?

          第8步:創(chuàng)建springappController?

          代碼:?

          springapp/src/SpringappController.java?
          import?org.springframework.web.servlet.mvc.Controller;?
          import?org.springframework.web.servlet.ModelAndView;?

          import?javax.servlet.ServletException;?
          import?javax.servlet.http.HttpServletRequest;?
          import?javax.servlet.http.HttpServletResponse;?

          import?java.io.IOException;?

          public?class?SpringappController?implements?Controller?{?

          ????public?ModelAndView?handleRequest(HttpServletRequest?request,?HttpServletResponse?response)?
          ????????????throws?ServletException,?IOException?{?
          ????????return?new?ModelAndView("");?
          ????}?
          }?


          這只是一個(gè)基礎(chǔ)控制框架,稍候我們完成它.?


          第9步:建立應(yīng)用?

          代碼:?
          Ant?build?
          E:\projects\springapp>ant?build?
          Buildfile:?build.xml?

          build:?
          ????[javac]?Compiling?1?source?file?to?E:\projects\springapp\WEB-INF\classes?

          BUILD?SUCCESSFUL?
          Total?time:?2?seconds?


          第10步:建立日志系統(tǒng)?
          spring利用log4j來(lái)管理日志,在classes目錄下建立log4j.properties?

          代碼:?
          springapp/war/WEB-INF/classes/log4j.properties?
          log4j.rootCategory=INFO,?stdout,?logfile?

          log4j.appender.stdout=org.apache.log4j.ConsoleAppender?
          log4j.appender.stdout.layout=org.apache.log4j.PatternLayout?
          log4j.appender.stdout.layout.ConversionPattern=%d?%p?[%c]?-?<%m>%n?

          log4j.appender.logfile=org.apache.log4j.RollingFileAppender?
          log4j.appender.logfile.File=e:/projects/springapp/springapp.log?
          log4j.appender.logfile.MaxFileSize=512KB?
          #?Keep?three?backup?files?
          log4j.appender.logfile.MaxBackupIndex=3?
          log4j.appender.logfile.layout=org.apache.log4j.PatternLayout?
          #Pattern?to?output?:?date?priority?[category]?-?line_separator?
          log4j.appender.logfile.layout.ConversionPattern=%d?%p?[%c]?-?<%m>%n?


          第11步:部署應(yīng)用?
          運(yùn)行ant?deploy?

          第12步:創(chuàng)建視圖?

          代碼:?
          springapp/war/hello.jsp?
          ?
          Example?::?Spring?Application?
          ?

          Hello?-?Spring?Application

          ?

          Greetings.

          ?
          ?
          ?


          下面我們修改SpringappController.java?

          代碼:?

          springapp/src/SpringappController.java?
          import?org.springframework.web.servlet.mvc.Controller;?
          import?org.springframework.web.servlet.ModelAndView;?

          import?javax.servlet.ServletException;?
          import?javax.servlet.http.HttpServletRequest;?
          import?javax.servlet.http.HttpServletResponse;?

          import?java.io.IOException;?

          import?org.apache.commons.logging.Log;?
          import?org.apache.commons.logging.LogFactory;?

          public?class?SpringappController?implements?Controller?{?

          ???/**?Logger?for?this?class?and?subclasses?*/?
          ????protected?final?Log?logger?=?LogFactory.getLog(getClass());?

          ????public?ModelAndView?handleRequest(HttpServletRequest?request,?HttpServletResponse?response)?
          ????????????throws?ServletException,?IOException?{?

          ???????logger.info("SpringappController?-?returning?hello?view");?

          ????????return?new?ModelAndView("hello.jsp");?
          ????}?
          }?


          現(xiàn)在我們運(yùn)行build,?deploy,?stop,?start?命令.?
          這樣我們就成功地建立了一個(gè)mvc應(yīng)用,訪問(wèn)http://loaclhost:8080/springapp/hello.htm?


          小結(jié)?
          以上,我們快速地利用spring?framework建立了MVC應(yīng)用程序,?
          1、建立index.jsp,測(cè)試管理工具和開(kāi)發(fā)環(huán)境?
          2、編寫springapp-servlet.xml配置文件。?
          3、編寫控制器代碼,SpringappController.java結(jié)合springapp-servlet中的定義進(jìn)行工作.?
          4、編寫、展示hello.jsp,完成MVC的應(yīng)用程序.?
          posted on 2005-10-14 10:18 Sung 閱讀(382) 評(píng)論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 延边| 固始县| 平罗县| 卓尼县| 邵阳县| 崇仁县| 田阳县| 鲜城| 河津市| 永和县| 灵丘县| 防城港市| 黔东| 顺平县| 营口市| 上饶县| 应城市| 寿阳县| 永兴县| 虹口区| 兴国县| 西乌珠穆沁旗| 那坡县| 漳平市| 偏关县| 康定县| 温州市| 邵武市| 若尔盖县| 安溪县| 安图县| 石渠县| 云林县| 南漳县| 精河县| 武清区| 孟州市| 渝中区| 柳江县| 信阳市| 磐安县|