<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    WEB2.0開發

    心態決定行為,行為決定習慣,習慣決定命運

    Spring framework 10分鐘入門

    Yanger(y-ge@263.net)?


    開發環境:?

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


    Ant?(using?version?1.5.3)


    Apache?Tomcat?(using?version?4.1.24)

    您可以用功能相同的任何容器或者java運行環境?

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

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


    第2步:創建jsp?
    我們創建一個jsp文件-index.jsp在springapp目錄下,這將是我們應用程序的入口.?

    代碼:?
    springapp/index.jsp?

    <html>?
    <head><title>Example?::?Spring?Application</title></head>?
    <body>?
    <h1>Example?-?Spring?Application</h1>?
    <p>This?is?my?test.</p>?
    </body>?
    </html>??????


    現在,我們來完成這個web應用,在WEB-INF下建立web.xml文件?
    代碼:?

    springapp/WEB-INF/web.xml?
    <?xml?version="1.0"?encoding="UTF-8"?>?
    <!DOCTYPE?web-app?PUBLIC?'-//Sun?Microsystems,?Inc.//DTD?Web?Application?2.3//EN'?'http://java.sun.com/dtd/web-app_2_3.dtd'>?

    <web-app>?


    ??<welcome-file-list>?
    ????<welcome-file>?
    ??????index.jsp?
    ????</welcome-file>?
    ??</welcome-file-list>?

    </web-app>?


    第3步:部署這個應用到Tomcat?
    現在我們來寫Ant腳本文件,用于建立,部署,控制這個應用.?
    代碼:?

    springapp/build.xml?
    <?xml?version="1.0"?encoding="gb2312"?>?

    <project?name="springapp"?basedir="."?default="usage">?
    ????<property?file="build.properties"/>?

    ????<property?name="src.dir"?value="src"/>?
    ????<property?name="web.dir"?value="war"/>?
    ????<property?name="build.dir"?value="${web.dir}/WEB-INF/classes"/>?
    ????<property?name="name"?value="springapp"/>?

    ????<path?id="master-classpath">?
    ????????<fileset?dir="${web.dir}/WEB-INF/lib">?
    ????????????<include?name="*.jar"/>?
    ????????</fileset>?
    ????????<fileset?dir="${tomcat.home}/common/lib">?
    ????????????<include?name="servlet.jar"/>?
    ????????</fileset>?
    ????</path>?

    ????<target?name="usage">?
    ????????<echo?message=""/>?
    ????????<echo?message="${name}?build?file"/>?
    ????????<echo?message="-----------------------------------"/>?
    ????????<echo?message=""/>?
    ????????<echo?message="Available?targets?are:"/>?
    ????????<echo?message=""/>?
    ????????<echo?message="build???????-->?建立應用"/>?
    ????????<echo?message="deploy?????-->?部署應用"/>?
    ????????<echo?message="deploywar?-->?部署war文件"/>?
    ????????<echo?message="install???-->?安裝應用"/>?
    ????????<echo?message="reload???-->?重載應用"/>?
    ????????<echo?message="start??????-->?啟動Tomcat?application"/>?
    ????????<echo?message="stop??????-->?停止?Tomcat?application"/>?
    ????????<echo?message="list????????-->??列表?Tomcat?applications"/>?
    ????????<echo?message=""/>?
    ????</target>?

    <!--?===========================================================?-->?
    <!--?spring?tasks?by?yanger?2003-11?-->?
    <!--?===========================================================?-->?
    ????<target?name="build"?description="Compile?main?source?tree?java?files">?
    ????????<mkdir?dir="${build.dir}"/>?
    ????????<javac?destdir="${build.dir}"?target="1.3"?debug="true"?
    ???????????????deprecation="false"?optimize="false"?failonerror="true">?
    ????????????<src?path="${src.dir}"/>?
    ????????????<classpath?refid="master-classpath"/>?
    ????????</javac>?
    ????</target>?

    ????<target?name="deploy"?depends="build"?description="Deploy?application">?
    ????????<copy?todir="${tomcat.home}/webapps/${name}"?preservelastmodified="true">?
    ????????????<fileset?dir="${web.dir}">?
    ????????????????<include?name="**/*.*"/>?
    ????????????</fileset>?
    ????????</copy>?
    ????</target>?

    ????<target?name="deploywar"?depends="build"?description="Deploy?application?as?a?WAR?file">?
    ????????<war?destfile="${name}.war"?
    ?????????????webxml="${web.dir}/WEB-INF/web.xml">?
    ????????????<fileset?dir="${web.dir}">?
    ????????????????<include?name="**/*.*"/>?
    ????????????</fileset>?
    ????????</war>?
    ????????<copy?todir="${deploy.path}"?preservelastmodified="true">?
    ????????????<fileset?dir=".">?
    ????????????????<include?name="*.war"/>?
    ????????????</fileset>?
    ????????</copy>?
    ????</target>?


    <!--?============================================================?-->?
    <!--?Tomcat?tasks?-?remove?these?if?you?don't?have?Tomcat?installed?-->?
    <!--?============================================================?-->?

    ????<taskdef?name="install"?classname="org.apache.catalina.ant.InstallTask">?
    ????????<classpath>?
    ????????????<path?location="${tomcat.home}/server/lib/catalina-ant.jar"/>?
    ????????</classpath>?
    ????</taskdef>?
    ????<taskdef?name="reload"?classname="org.apache.catalina.ant.ReloadTask">?
    ????????<classpath>?
    ????????????<path?location="${tomcat.home}/server/lib/catalina-ant.jar"/>?
    ????????</classpath>?
    ????</taskdef>?
    ????<taskdef?name="list"?classname="org.apache.catalina.ant.ListTask">?
    ????????<classpath>?
    ????????????<path?location="${tomcat.home}/server/lib/catalina-ant.jar"/>?
    ????????</classpath>?
    ????</taskdef>?
    ????<taskdef?name="start"?classname="org.apache.catalina.ant.StartTask">?
    ????????<classpath>?
    ????????????<path?location="${tomcat.home}/server/lib/catalina-ant.jar"/>?
    ????????</classpath>?
    ????</taskdef>?
    ????<taskdef?name="stop"?classname="org.apache.catalina.ant.StopTask">?
    ????????<classpath>?
    ????????????<path?location="${tomcat.home}/server/lib/catalina-ant.jar"/>?
    ????????</classpath>?
    ????</taskdef>?

    ????<target?name="install"?description="Install?application?in?Tomcat">?
    ????????<install?url="${tomcat.manager.url}"?
    ?????????????????username="${tomcat.manager.username}"?
    ?????????????????password="${tomcat.manager.password}"?
    ?????????????????path="/${name}"?
    ?????????????????war="${name}"/>?
    ????</target>?

    ????<target?name="reload"?description="Reload?application?in?Tomcat">?
    ????????<reload?url="${tomcat.manager.url}"?
    ?????????????????username="${tomcat.manager.username}"?
    ?????????????????password="${tomcat.manager.password}"?
    ?????????????????path="/${name}"/>?
    ????</target>?
    <target?name="start"?description="Start?Tomcat?application">?
    ????????<start?url="${tomcat.manager.url}"?
    ?????????????????username="${tomcat.manager.username}"?
    ?????????????????password="${tomcat.manager.password}"?
    ?????????????????path="/${name}"/>?
    ????</target>?

    ????<target?name="stop"?description="Stop?Tomcat?application">?
    ????????<stop?url="${tomcat.manager.url}"?
    ?????????????????username="${tomcat.manager.username}"?
    ?????????????????password="${tomcat.manager.password}"?
    ?????????????????path="/${name}"/>?
    ????</target>?

    ????<target?name="list"?description="List?Tomcat?applications">?
    ????????<list?url="${tomcat.manager.url}"?
    ?????????????????username="${tomcat.manager.username}"?
    ?????????????????password="${tomcat.manager.password}"/>?
    ????</target>?

    <!--?End?Tomcat?tasks?-->?

    </project>?


    這個Ant腳本包含了建立應用主要的工具命令,但是,這個腳本要配合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的應用目錄?
    tomcat.path?是tomcat的主目錄?
    tomcat.manager.url是管理訪問路徑,注意你的端口是否正確?
    tomcat.manager.username,tomcat.manager.password?我就不用說了吧?

    如果你執行install命令,將在tomcat?webapps目錄下建立springapp目錄。?
    如果你用其他的web應用服務器,那么你可以刪除tomcat指定的命令集,你可以用server提供的熱部署進行啟動和停止你的應用.?

    現在我們來看一下ant提供的每個命令,在你的springapp目錄下執行ant?

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

    usage:?

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

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

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


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


    現在,我們來部署應用,執行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步:測試應用?
    先看一下我們是否把應用部署成功?

    代碼:?
    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?


    如果你還沒有安裝,請執行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?



    現在,讓我們打開瀏覽器看一下結果http://localhost:8080/springapp/index.jsp?


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

    下面我們將完成利用spring?framework?進行開發MVC?應用程序.?


    第6步:修改web.xml?

    進入WEB-INF目錄編輯web.xml?


    代碼:?
    WEB-INF/web.xml?
    <?xml?version="1.0"?encoding="UTF-8"?>?
    <!DOCTYPE?web-app?PUBLIC?'-//Sun?Microsystems,?Inc.//DTD?Web?Application?2.3//EN'?'http://java.sun.com/dtd/web-app_2_3.dtd'>?

    <web-app>?

    ?<servlet>?
    ????<servlet-name>springapp</servlet-name>?
    ????<servlet-class>?
    ???????org.springframework.web.servlet.DispatcherServlet?
    ????</servlet-class>?
    ????<load-on-startup>1</load-on-startup>?
    ??</servlet>?

    ??<servlet-mapping>?
    ????<servlet-name>springapp</servlet-name>?
    ????<url-pattern>*.htm</url-pattern>?
    ??</servlet-mapping>?

    ??<welcome-file-list>?
    ????<welcome-file>?
    ??????index.jsp?
    ????</welcome-file>?
    ??</welcome-file-list>?

    </web-app>?



    在WEB-INF目錄下創建一個springapp-servlet.xml文件,它的命名規則是web.xml中的servlet-name?加上'-servlet'后綴,這是在springframework中的標準命名法則.?
    現在,我們聲明一個bean?:springappController?他對應的類是SpringappController.class?
    這個定義用于我們控制業務邏輯。我們還需要定義一個url?mapping作為http調用的路徑.?



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

    <?xml?version="1.0"?encoding="UTF-8"?>?
    <!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?"http://www.springframework.org/dtd/spring-beans.dtd">?

    <!--?
    ??-?Application?context?definition?for?"springapp"?DispatcherServlet.?
    ??-->?

    <beans>?
    ????<bean?id="springappController"?class="SpringappController"/>?

    ????<bean?id="urlMapping"?class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">?
    ????????<property?name="mappings">?
    ????????????<props>?
    ????????????????<prop?key="/hello.htm">springappController</prop>?
    ????????????</props>?
    ????????</property>?
    ????</bean>?
    </beans>?



    第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步:創建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("");?
    ????}?
    }?


    這只是一個基礎控制框架,稍候我們完成它.?


    第9步:建立應用?

    代碼:?
    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步:建立日志系統?
    spring利用log4j來管理日志,在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]?-?<message>line_separator?
    log4j.appender.logfile.layout.ConversionPattern=%d?%p?[%c]?-?<%m>%n?


    第11步:部署應用?
    運行ant?deploy?

    第12步:創建視圖?

    代碼:?
    springapp/war/hello.jsp?
    <html>?
    <head><title>Example?::?Spring?Application</title></head>?
    <body>?
    <h1>Hello?-?Spring?Application</h1>?
    <p>Greetings.</p>?
    </body>?
    </html>?


    下面我們修改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");?
    ????}?
    }?


    現在我們運行build,?deploy,?stop,?start?命令.?
    這樣我們就成功地建立了一個mvc應用,訪問http://loaclhost:8080/springapp/hello.htm?


    小結?
    以上,我們快速地利用spring?framework建立了MVC應用程序,?
    1、建立index.jsp,測試管理工具和開發環境?
    2、編寫springapp-servlet.xml配置文件。?
    3、編寫控制器代碼,SpringappController.java結合springapp-servlet中的定義進行工作.?
    4、編寫、展示hello.jsp,完成MVC的應用程序.?

    posted on 2006-05-20 14:47 ymx 閱讀(241) 評論(0)  編輯  收藏 所屬分類: Spring

    主站蜘蛛池模板: 亚洲AV成人无码久久WWW| 亚洲av无码无在线观看红杏| 亚洲综合一区国产精品| 永久免费视频网站在线观看| 亚洲综合无码一区二区| 在线a免费观看最新网站| 亚洲免费在线视频播放| 成年大片免费视频| 亚洲AV性色在线观看| 亚洲不卡无码av中文字幕| 一级特黄a免费大片| 亚洲AV无码日韩AV无码导航 | 亚洲三级在线视频| 99精品全国免费观看视频| 久久亚洲精品无码网站| 亚洲精品无码99在线观看| 国产一级片免费看| 亚洲第一页在线播放| 成人免费看片又大又黄| 麻豆安全免费网址入口| 亚洲AV无码日韩AV无码导航| 美女被cao免费看在线看网站| 精品无码专区亚洲| 国产亚洲欧洲精品| 免费看污成人午夜网站| 亚洲精品乱码久久久久久蜜桃图片| 国产中文字幕免费观看| 99re8这里有精品热视频免费| 亚洲黄色三级网站| 国产精品无码免费视频二三区| 成人精品视频99在线观看免费| 精品日韩亚洲AV无码一区二区三区 | 亚洲黄色网址在线观看| 看全色黄大色大片免费久久| 国产精品免费视频观看拍拍| 亚洲国产日韩女人aaaaaa毛片在线| 日本高清免费不卡在线| 免费视频成人手机在线观看网址| 亚洲依依成人亚洲社区| 亚洲成AV人片在线观看WWW| 搡女人真爽免费视频大全|