浣跨敤Eclipse鏋勫徐Maven鐨凷pringMVC椤圭洰

浣跨敤Eclipse鏋勫缓Maven鐨凷pringMVC椤圭洰
浣跨敤Eclipse鏋勫缓Maven鐨凷pringMVC椤圭洰



        棣栧厛Eclipse闇€瑕佸畨瑁匨aven鐨勬彃浠讹紝鍦板潃锛歨ttp://m2eclipse.sonatype.org/sites/m2e銆?

        鐢∕yEclipse瀹夎Maven鎻掍欢锛屽缓鍑虹殑Maven椤圭洰鏈変簺闂銆備竴鏄紝鍙戝竷tomcat鐨勬椂鍊檙esources鎬绘槸涓嶄細琚彂甯冨埌tomcat涓嬶紱浜屾槸锛屾妸WEB-INF涓嬬殑classes鏀瑰埌target涓嬬殑classes锛屼絾鏄笉鐭ラ亾涓轰粈涔圡yEclipse瑕佷箞浠嶇劧鍦╓EB-INF涓嬬敓鎴恈lass銆傝涔堢湡涓嶅湪WEB-INF鐢熸垚classes浜嗕絾鏄彂甯僼omcat鐨勬椂鍊欙紝class鏂囦欢涓€涓兘涓嶄細缁欎綘鍙戝竷杩囧幓锛岃秴绾ч儊闂枫€備絾鏄娇鐢‥clipse鏋勫缓Maven椤圭洰鍚庯紝浣跨敤MyEclipse鎵撳紑灏辨病闂浜嗐€?

        鐢╩aven鐨勫ソ澶勶細鎴戞劅瑙夋渶涓昏灏辨槸鑷姩涓嬭浇jar鍖呭拰瀹冩墍渚濊禆鐨勫寘锛岃繖鏍峰彲浠ヤ繚璇佷簡澶氫汉寮€鍙戞椂jar鐗堟湰涓嶅悓鐨勯棶棰樸€傚啀灏辨槸鏂囦欢缁撴瀯娓呮櫚锛宩ava鏂囦欢锛岃祫婧愭枃浠讹紝娴嬭瘯鏂囦欢閮藉垎鐨勫緢娓呮銆?

        灏嗕粙缁嶄袱绉嶆柟娉曪細涓€锛岀洿鎺ュ缓绔婱aven椤圭洰鏂规硶锛涗簩銆佸缓绔婦ynamic Web project杞垚Maven椤圭洰鏂规硶銆?

涓€銆佺洿鎺ュ缓绔婱aven椤圭洰鏂规硶

1銆佸缓绔婱aven椤圭洰

        鎺ヤ笅鏉ヤ娇鐢‥clipse鐨刴aven鏋勫缓涓€涓獁eb椤圭洰锛屼互鏋勫缓SpringMVC椤圭洰涓轰緥锛?

1.1 閫夋嫨寤虹珛Maven Project

閫夋嫨File -> New -> Other锛屽湪New绐楀彛涓€夋嫨 Maven -> Maven Project銆傜偣鍑籲ewxt銆?








1.2 閫夋嫨椤圭洰璺緞

Use default Workspace location榛樿宸ヤ綔绌洪棿銆?








1.3 閫夋嫨椤圭洰绫诲瀷

鍦ˋrtifact Id涓€夋嫨maven-archetype-webapp








1.4 杈撳叆Group ID鍜?Artifact ID锛屼互鍙奝ackage

Group ID涓€鑸啓澶ч」鐩悕绉般€侫rtifact ID鏄瓙椤圭洰鍚嶇О銆?

渚嬪Spring鐨剋eb鍖咃紝Group ID锛歰rg.springframework锛宎rtifactId锛歴pring-web銆?

Package鏄粯璁ょ粰浣犲缓涓€涓寘锛屼笉鍐欎篃鍙互銆?








1.5 鍒氬缓绔嬪ソ鍚庣殑鏂囦欢缁撴瀯濡備笅鍥?






濡傛灉杩欓噷鏄剧ず鐨勫唴瀹瑰锛屼竴鑸槸Filters璁剧疆鐨勯棶棰樸€傛垨perspective涓篔avaEE妯″紡锛屾敼鎴怞ava妯″紡灏卞彲浠ヤ簡銆?





2銆侀厤缃甅aven椤圭洰

鎺ヤ笅鏉ュ氨闇€瑕佹洿鏀瑰ソ澶氶厤缃簡銆?



2.1 娣诲姞Source鏂囦欢澶?

鎺ヤ笅鏉ラ渶瑕佹坊鍔爏rc/main/java锛宻rc/test/java 锛宻rc/test/resources涓変釜鏂囦欢澶广€傚彸閿」鐩牴鐩綍鐐瑰嚮New -> Source Folder锛?

寤哄嚭杩欎笁涓枃浠跺す銆傛敞鎰忎笉鏄缓鏅€氱殑Folder锛岃€屾槸Source Folder銆?











2.2 鏇存敼class璺緞

鍙抽敭椤圭洰锛孞ava Build Path -> Source

涓嬮潰搴旇鏈?涓枃浠跺す銆俿rc/main/java锛宻rc/main/resources锛宻rc/test/java 锛宻rc/test/resources銆?



鍙屽嚮姣忎釜鏂囦欢澶圭殑Output folder锛岄€夋嫨璺緞銆?

src/main/java锛宻rc/main/resources锛岄€夋嫨target/classes;

src/test/java 锛宻rc/test/resources, 閫夋嫨target/test-classes;



閫変笂Allow output folders for source folders.





鍦ㄦ澶勮繕瑕佹洿鏀癸細

鏇存敼鏂囦欢澶规樉绀虹殑椤哄簭锛氱偣鍑籓rder and Export銆?

鏇存敼JDK鐗堟湰锛氬湪Libraries鍙屽嚮JRE System Library锛岃1.6鐗堟湰銆?






2.3 鎶婇」鐩彉鎴怐ynamic Web椤圭洰



2.3.1 鍙抽敭椤圭洰锛岄€夋嫨Project Facets锛岀偣鍑籆onvert to faceted from






2.3.2 閰嶇疆Project Facets



鏇存敼Dynamic Web Module鐨刅ersion涓?.5銆?3.0涓篔ava7鐨?銆?

濡傛灉鎻愮ず閿欒锛屽彲鑳介渶瑕佸湪Java Compiler璁剧疆Compiler compliance level 涓?.6銆傛垨鑰呴渶瑕佸湪姝ょ獥鍙g殑Java鐨刅ersion鏀规垚1.6銆?








2.3.3 閰嶇疆 Modify Faceted Project

鐐瑰嚮Further configuration available鈥︼紝寮瑰嚭Modify Faceted Project绐楀彛

姝ゅ鏄缃畐eb.xml鏂囦欢鐨勮矾寰勶紝鎴戜滑杈撳叆src/main/webapp銆?

Generate web.xml deployment descriptor鑷姩鐢熸垚web.xml鏂囦欢锛屽彲閫夊彲涓嶉€夈€?





2.4 璁剧疆閮ㄧ讲绋嬪簭闆?Web Deployment Assembly)



涓婇潰姝ラ璁剧疆瀹屾垚鍚庯紝鐐瑰嚮OK锛孭roperties绐楀彛浼氬叧闂紝鍦ㄥ彸閿」鐩墦寮€姝ょ獥鍙c€傚湪宸︿晶鍒楄〃涓細鍑虹幇涓€涓狣eployment Assembly锛岀偣鍑昏繘鍘诲悗锛屽涓嬪浘锛?








姝ゅ鍒楄〃鏄紝閮ㄧ讲椤圭洰鏃讹紝鏂囦欢鍙戝竷鐨勮矾寰勩€?

1锛屾垜浠垹闄est鐨勪袱椤癸紝鍥犱负test鏄祴璇曚娇鐢紝骞朵笉闇€瑕侀儴缃层€?

2锛岃缃皢Maven鐨刯ar鍖呭彂甯冨埌lib涓嬨€?

Add -> Java Build Path Entries -> Maven Dependencies -> Finish

璁剧疆瀹屾垚鏁堟灉鍥?














3銆佸悜maven椤圭洰涓坊鍔爅ar鍖?

maven鍙互绠$悊椤圭洰渚濊禆鐨刯ar鍖咃紝閫氳繃groupID銆乤rtifactId浠ュ強鐗堟湰鍙峰彲浠ュ敮涓€纭畾涓€涓猨ar鍖呫€傝繖鏍峰彲浠ラ槻姝㈣€佸紡Web椤圭洰涓璚EB-INF/lib涓媕ar鍖呬笉涓€鑷寸殑闂銆傚苟涓攎aven杩樹細鑷姩涓嬭浇娣诲姞杩涚殑jar鍖呮墍渚濊禆鐨刯ar鍖呫€?



3.1 鍦╬om.xml涓坊鍔犳墍闇€瑕佺殑jar鍖?

浣跨敤Maven POM editor鎵撳紑椤圭洰涓殑pom.xml鏂囦欢锛岄€夋嫨Dependencies锛屽湪Dependencies鏍忕洰鐐瑰嚮Add杩涜锛岄鍏堝脊鍑轰竴涓悳绱㈡寜閽紝渚嬪杈撳叆spring-web,灏变細鑷姩鎼滅储鍏充簬spring-web鐩稿叧鐨刯ar鍖咃紝鎴戜滑閫夋嫨3.0.5鐗堟湰鐨剆pring銆傚皢spring鍖呭叏閮ㄦ坊鍔犺繘鏉ャ€傞渶瑕佹坊鍔犵殑鍏朵粬jar鍖呮湁锛歫unit銆乯stl銆傛垨鑰呯偣鍑籶om.xml鐩存帴缂栬緫pom.xml鏂囦欢銆傝繖鏍峰彲浠ョ洿鎺opy杩囨潵dependencies鍐呭銆?










3.2璁剧疆jar鍖呯殑scope





褰撴坊鍔犺繘鍏ヤ竴涓猨ar鍖呭悗锛屾湁涓€浜涘睘鎬ч渶瑕佽缃紝鏈€閲嶈鐨勫氨鏄痵cope锛屽畠鏈変互涓嬪嚑绉嶅彇鍊硷細

1.         compile锛岀己鐪佸€硷紝閫傜敤浜庢墍鏈夐樁娈碉紝浼氶殢鐫€椤圭洰涓€璧峰彂甯冦€?

2.         provided锛岀被浼糲ompile锛屾湡鏈汮DK銆佸鍣ㄦ垨浣跨敤鑰呬細鎻愪緵杩欎釜渚濊禆銆傚servlet.jar銆?

3.         runtime锛屽彧鍦ㄨ繍琛屾椂浣跨敤锛屽JDBC椹卞姩锛岄€傜敤杩愯鍜屾祴璇曢樁娈点€?

4.         test锛屽彧鍦ㄦ祴璇曟椂浣跨敤锛岀敤浜庣紪璇戝拰杩愯娴嬭瘯浠g爜銆備笉浼氶殢椤圭洰鍙戝竷銆?

5.         system锛岀被浼紁rovided锛岄渶瑕佹樉寮忔彁渚涘寘鍚緷璧栫殑jar锛孧aven涓嶄細鍦?Repository涓煡鎵惧畠銆?





閫氬父SpringMVC椤圭洰鎵€闇€瑕侀厤缃畇cope鐨刯ar鍖呭涓嬪浘锛?






鏈夌殑鏃跺€欏彂鐜皊ervlet-api杩樻槸琚墦鍖呭埌lib涓嬮潰浜嗭紝姝ゆ椂鑲畾浼氭姤閿欍€傚氨闇€瑕佹妸maven鎻掍欢涓殑WTP涔熷畨瑁呬竴涓嬨€?

Eclipse鍦ㄧ嚎瀹夎璺緞锛歨ttp://m2eclipse.sonatype.org/sites/m2e-extras銆傞€夋嫨for Eclipse WTP銆?










4銆佹瀯寤篠pringMVC妗嗘灦



4.1 缂栬緫web.xml鏂囦欢



闇€瑕佹坊鍔爈og4j锛屽瓧绗﹁繃婊わ紝Spring 鐨刣ispatcher绛夈€?

webx.xml浠g爜濡備笅锛?





Xml浠g爜 澶嶅埗浠g爜 鏀惰棌浠g爜
1.<?xml version="1.0" encoding="UTF-8"?> 
2.<web-app xmlns="http://java.sun.com/xml/ns/javaee"  
3.         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
4.         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
5.                             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
6.         version="2.5" > 
7.     
8.    <!-- 鍖哄垎椤圭洰鍚嶇О锛岄槻姝㈤粯璁ら噸鍚?--> 
9.    <context-param> 
10.        <param-name>webAppRootKey</param-name> 
11.        <param-value>maven.example.root</param-value> 
12.    </context-param> 
13. 
14.    <!-- Spring鐨刲og4j鐩戝惉鍣?--> 
15.    <listener> 
16.        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
17.    </listener> 
18. 
19.    <!-- 瀛楃闆?杩囨护鍣?nbsp; --> 
20.    <filter> 
21.        <filter-name>CharacterEncodingFilter</filter-name> 
22.        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
23.        <init-param> 
24.            <param-name>encoding</param-name> 
25.            <param-value>UTF-8</param-value> 
26.        </init-param> 
27.        <init-param> 
28.            <param-name>forceEncoding</param-name> 
29.            <param-value>true</param-value> 
30.        </init-param> 
31.    </filter> 
32.    <filter-mapping> 
33.        <filter-name>CharacterEncodingFilter</filter-name> 
34.        <url-pattern>/*</url-pattern> 
35.    </filter-mapping> 
36. 
37.    <!-- Spring view鍒嗗彂鍣?--> 
38.    <servlet> 
39.        <servlet-name>dispatcher</servlet-name> 
40.        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
41.        <init-param> 
42.            <param-name>contextConfigLocation</param-name> 
43.            <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> 
44.        </init-param> 
45.        <load-on-startup>1</load-on-startup> 
46.    </servlet> 
47.    <servlet-mapping> 
48.        <servlet-name>dispatcher</servlet-name> 
49.        <url-pattern>*.do</url-pattern> 
50.    </servlet-mapping> 
51. 
52.</web-app> 

 


4.2 缂栧啓Spring閰嶇疆鏂囦欢dispatcher-servlet.xml



濡傝娣诲姞MVC椹卞姩銆佹敞瑙f娴嬨€佽鍥捐В鏋愮瓑銆俤ispatcher-servlet.xml浠g爜濡備笅锛?





Xml浠g爜 澶嶅埗浠g爜 鏀惰棌浠g爜
1.<?xml version="1.0" encoding="UTF-8"?> 
2.<beans xmlns="http://www.springframework.org/schema/beans"  
3.       xmlns:aop="http://www.springframework.org/schema/aop"  
4.       xmlns:context="http://www.springframework.org/schema/context" 
5.       xmlns:mvc="http://www.springframework.org/schema/mvc"  
6.       xmlns:tx="http://www.springframework.org/schema/tx"  
7.       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
8.       xsi:schemaLocation="http://www.springframework.org/schema/aop  
9.        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd  
10.        http://www.springframework.org/schema/beans  
11.        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
12.        http://www.springframework.org/schema/context  
13.        http://www.springframework.org/schema/context/spring-context-3.0.xsd  
14.        http://www.springframework.org/schema/mvc  
15.        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd  
16.        http://www.springframework.org/schema/tx  
17.        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 
18. 
19.    <mvc:annotation-driven /> 
20.    <context:component-scan base-package="liming.maven.example" /> 
21. 
22.    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
23.        <property name="prefix" value="/WEB-INF/views/" /> 
24.        <property name="suffix" value=".jsp" /> 
25.    </bean> 
26. 
27.</beans> 

 






4.3 缂栧啓涓€涓狢ontroller灞傛祴璇曠被



缂栧啓涓€涓猄pringMVC鐨凜ontroller灞傛祴璇曠被銆傛绫诲彧鏈変竴涓柟娉曞仛鍦板潃鏄犲皠锛屽苟鍚戦〉闈紶閫掍竴涓暟鎹€備唬鐮佸涓嬶細





Java浠g爜 澶嶅埗浠g爜 鏀惰棌浠g爜
1.package liming.maven.example.view; 
2. 
3.import org.springframework.stereotype.Controller; 
4.import org.springframework.ui.Model; 
5.import org.springframework.web.bind.annotation.RequestMapping; 
6. 
7.@Controller 
8.public class GeneralController { 
9. 
10.    @RequestMapping(value="index.do") 
11.    public void index_jsp(Model model){ 
12.        model.addAttribute("liming", "榛庢槑浣犲ソ"); 
13.        System.out.println("index.jsp"); 
14.    } 
15.} 

 






4.4 缂栧啓index.jsp椤甸潰

棣栧厛鍦╯rc/main/webapp/WEB-INF涓嬪缓鏂囦欢澶箆iews銆傛澶勫拰dispatcher-servlet.xml閰嶇疆鏂囦欢涓殑prefix灞炴€ц矾寰勮涓€鏍枫€?

鍦╲iews涓嬪缓index.jsp鏂囦欢

鎴戜滑浣跨敤jstl鑾峰彇Controlleradd鐨勬暟鎹€?

Jsp椤甸潰浠g爜濡備笅锛?





Html浠g爜 澶嶅埗浠g爜 鏀惰棌浠g爜
1.<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
2.<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
3.<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
4.<html> 
5.    <head> 
6.        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
7.        <title>Insert title here</title> 
8.    </head> 
9.     
10.    <body> 
11.        <c:out value="${liming}"></c:out> 
12.    </body> 
13.</html> 

 






5锛屽彂甯冨埌tomcat

杩欎釜灏辨病鍟ヨ鐨勪簡銆?

Eclipse涓婽omcat甯哥敤璁剧疆锛歨ttp://limingnihao.iteye.com/admin/blogs/825394





6锛屾祴璇?

璁块棶鍦板潃锛歨ttp://localhost:8080/liming.maven.example/index.do

璁块棶鐨勭粨鏋滄潵涓埅鍥撅細








浜屻€佸缓绔婦ynamic Web project杞垚Maven椤圭洰鏂规硶

7銆佺浜岀鏂规硶DynamicWeb椤圭洰杞垚Mavan

7.1 鏂板缓Dynamic Web Project

渚濇閫夋嫨閫夋嫨File -> New -> Other銆傚湪New绐楀彛涓€夋嫨Web涓嬬殑Dynamic Web Project銆傜偣鍑籲ext銆?






7.2 閰嶇疆椤圭洰淇℃伅

7.2.1 杈撳叆椤圭洰淇℃伅

棣栧厛杈撳叆椤圭洰鍚嶇О銆?

Target runtime 涓€鑸€夋嫨浣跨敤浠€涔堝鍣紝tomcat涔嬬被鐨勩€傚彲浠ュ厛涓嶉€夈€?

Dynamic web module version銆傚氨鏄増鏈彿銆傞€夋嫨2.5锛?.0鏄疛ava7鐨勶級銆?

Configuration 鏄€夋嫨瀹规槗鐨勯厤缃€傚鏋淭arget runtime閫夋嫨浜唗omcat銆傝繖閲屽搴斾篃鏄€夋嫨tomcat銆?

Next銆?




7.2.2 閰嶇疆source鍜宱utput鐨刦older

姝ょ獥鍙h緭鍏ラ渶瑕佸缓绔嬬殑Source folders銆傚拰榛樿output folder銆?

杩欎釜鎴戜滑鐨凷ource folders绛夊缓绔嬪畬椤圭洰鍚庡湪娣诲姞銆?

output folder鍙互椤烘墜鏀规垚target/classes銆?






7.2.3 閰嶇疆web.xml鏂囦欢鐨勮矾寰?








7.3 杞垚maven椤圭洰

Dynamic web椤圭洰寤虹珛瀹屽悗锛岄鍏堝皢鍏惰浆鎴恗aven椤圭洰銆?

鍙抽敭姝ら」鐩紝閫夋嫨maven -> Enable Dependency Management銆傚脊鍑虹殑绐楀彛锛岀洿鎺inish灏卞彲浠ヤ簡銆?





7.4 鍏朵粬閰嶇疆

鎺ヤ笅鏉ョ殑閰嶇疆宸ヤ綔灏卞拰鍓嶉潰鐨勫熀鏈竴鏍蜂簡銆?

璇峰弬鑰冧笂闈€?

2.1娣诲姞Source鏂囦欢澶?

2.2鏇存敼class璺緞銆?

2.3.3 閰嶇疆 Modify Faceted Project

2.4 璁剧疆閮ㄧ讲绋嬪簭闆?Web Deployment Assembly)



鎺ョ潃灏辨槸鏋勫缓SpringMVC妗嗘灦锛屽彂甯冨埌tomcat锛屾祴璇曘€?