国产亚洲AV手机在线观看,国产精品亚洲av色欲三区,亚洲国产午夜电影在线入口http://www.tkk7.com/yaominxi/category/11339.html心態(tài)決定行為,行為決定習(xí)慣,習(xí)慣決定命運(yùn) zh-cnThu, 01 Mar 2007 17:59:40 GMTThu, 01 Mar 2007 17:59:40 GMT60Spring framework 10分鐘入門 http://www.tkk7.com/yaominxi/archive/2006/05/20/47172.htmlymxymxSat, 20 May 2006 06:47:00 GMThttp://www.tkk7.com/yaominxi/archive/2006/05/20/47172.htmlhttp://www.tkk7.com/yaominxi/comments/47172.htmlhttp://www.tkk7.com/yaominxi/archive/2006/05/20/47172.html#Feedback0http://www.tkk7.com/yaominxi/comments/commentRss/47172.htmlhttp://www.tkk7.com/yaominxi/services/trackbacks/47172.html
Yanger(y-ge@263.net)?


開發(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步:開發(fā)路徑?
為了保留我們的開發(fā)中每一步的流程,我們將保存所有的源碼和文件。?
首先,我們創(chuàng)建一個(gè)springapp的目錄(你可以將這個(gè)目錄建在任何地方),然后,在springapp目錄下創(chuàng)建子目錄src,用來保存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?

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


現(xiàn)在,我們來完成這個(gè)web應(yīng)用,在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步:部署這個(gè)應(yīng)用到Tomcat?
現(xiàn)在我們來寫Ant腳本文件,用于建立,部署,控制這個(gè)應(yīng)用.?
代碼:?

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???????-->?建立應(yīng)用"/>?
????????<echo?message="deploy?????-->?部署應(yīng)用"/>?
????????<echo?message="deploywar?-->?部署war文件"/>?
????????<echo?message="install???-->?安裝應(yīng)用"/>?
????????<echo?message="reload???-->?重載應(yīng)用"/>?
????????<echo?message="start??????-->?啟動(dòng)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>?


這個(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是管理訪問路徑,注意你的端口是否正確?
tomcat.manager.username,tomcat.manager.password?我就不用說了吧?

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

現(xiàn)在我們來看一下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)在,我們來部署應(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步:測試應(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?


如果你還沒有安裝,請執(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)在,讓我們打開瀏覽器看一下結(jié)果http://localhost:8080/springapp/index.jsp?


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

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


第6步:修改web.xml?

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



代碼:?
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步:創(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來管理日志,在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步:部署應(yīng)用?
運(yùn)行ant?deploy?

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

代碼:?
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");?
????}?
}?


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


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


ymx 2006-05-20 14:47 發(fā)表評論
]]>
Spring 編程入門十大問題解答 http://www.tkk7.com/yaominxi/archive/2006/04/05/39343.htmlymxymxWed, 05 Apr 2006 04:29:00 GMThttp://www.tkk7.com/yaominxi/archive/2006/04/05/39343.htmlhttp://www.tkk7.com/yaominxi/comments/39343.htmlhttp://www.tkk7.com/yaominxi/archive/2006/04/05/39343.html#Feedback0http://www.tkk7.com/yaominxi/comments/commentRss/39343.htmlhttp://www.tkk7.com/yaominxi/services/trackbacks/39343.html閱讀全文

ymx 2006-04-05 12:29 發(fā)表評論
]]>
主站蜘蛛池模板: 国产在线精品观看免费观看| 免费毛片a线观看| 亚洲第一成人在线| 67194在线午夜亚洲| 免费成人高清在线视频| 国产成人A人亚洲精品无码| 亚洲视频免费在线观看| 精品无码一区二区三区亚洲桃色| 亚洲日本乱码一区二区在线二产线 | 亚洲性久久久影院| 亚洲人成在线电影| 免费A级毛片无码专区| 成人性生免费视频| 久久久久亚洲爆乳少妇无| 1区1区3区4区产品亚洲| 黄页网站在线观看免费| 亚洲精品视频在线免费| 亚洲精品成人区在线观看| 亚洲欧洲日韩国产| 18禁超污无遮挡无码免费网站国产| 久久亚洲欧洲国产综合| a级毛片免费在线观看| 久久99国产亚洲精品观看| 日本高清免费中文在线看| 免费H网站在线观看的| 在线亚洲精品自拍| 亚洲av无码偷拍在线观看| 久久免费公开视频| 久久久久亚洲av成人无码电影| www.av在线免费观看| 国产激情免费视频在线观看| 亚洲黄色网址在线观看| 在线观看人成视频免费| 亚洲成人高清在线观看| 蜜臀91精品国产免费观看| 亚洲不卡中文字幕| 69精品免费视频| 亚洲精品综合一二三区在线| 少妇高潮太爽了在线观看免费| 亚洲成aⅴ人片在线观| 国产成人无码免费视频97|