浣跨敤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锛屾祴璇曘€?
浣跨敤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锛屾祴璇曘€?