1. 程式人生 > >SpringMVC基礎(一)開發環境搭建

SpringMVC基礎(一)開發環境搭建

SpringMVC 是一種基於java實現了web mvc設計模式的請求驅動型別的輕量級web框架,將web層進行職責解耦。

一、環境配置

1.spring-framework 3.2.0 版本

2. 依賴jar包:將以下的jar包拷貝到WEB-INF/lib目錄下

3. 輔助jar包:

    commons-logging.jar(日誌輸出)

    標籤庫支援:Jstl.jar、Standard-1.1.2.jar 

二、HelloWorld 例項

1. 前端控制器的配置(web.xml)

 <servlet >
  	<servlet-name>springMVC</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 
			下方classpath後面有個*號是表示會載入所有在classpath路徑下的後面指定的檔案、不配置的話只會載入一個。
			在大型專案開發中、一般都是以模組來開發、各個小組都有自己的配置檔案、這樣既具有獨立性又容易管理。
		-->
		
  		<init-param>
  			<param-name>contextConfigLocation</param-name>
  			<param-value>classpath*:config/springMVC-servlet.xml</param-value>
  		</init-param>  	
  	<load-on-startup>1</load-on-startup>  	
  </servlet>
  <servlet-mapping>
  	<servlet-name>springMVC</servlet-name>
  	<url-pattern>/</url-pattern>  	
  </servlet-mapping>
</web-app>
  • load-on-startup:表示啟動容器時初始化該Servlet; 
  • url-pattern:表示哪些請求交給Spring Web MVC處理,“/”是用來定義預設servlet對映的。 也可以加“*、html”表示攔截所有html為副檔名的請求。 

接下來我們需要配置Spring的配置檔案,預設DispatcherServlet會載入WEB-INF/DispatcherServlet的Servlet名字-servlet.xml配置檔案。

2. springMVC-servlet.xml檔案

    springMVC-servlet這個名字是因為上面web.xml中<servlet-name>標籤配的值為springMVC

(<servlet-name>springMVC</servlet-name>),再加上“-servlet”字尾而形成的springMVC-servlet.xml檔名.

<!-- 配置如何找到檢視,name,代表路徑 class 配置檢視 -->
<bean name="/test/helloworld" class="com.tgb.web.controller.HelloWorldController" />
<!-- 配置檢視解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	
	<property name="prefix" value="/"></property>
	<property name="suffix" value=".jsp"></property>
</bean>
 </beans>  
  • InternalResourceViewResolver : 用於支援Servlet、JSP檢視解析
  • prefix和suffix : 對轉向頁面的路徑解析。prefix:字首, suffix:字尾

3. 建立Controller 

public class HelloWorldController implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest arg0,
			HttpServletResponse arg1) throws Exception {
		
			System.out.println("Hello ,Beautiful Girl!");
			//第一種方式傳遞字串
			//String hello="Hello ,Beautiful Girl!";
			//第一種方式,返回字串
			//return new ModelAndView("/welcome","result",hello);
			
			//第二種方式傳遞map資料型別
			Map<String,Object> map = new HashMap<String,Object>();
			//給map賦值
			map.put("map1", "提高班1");
			map.put("map2", "提高班2");
			map.put("map3", "提高班3");
			
			return new ModelAndView("/welcome","map",map);
	}
			

}

4. 建立 jsp頁面
<body>
		你們好!
		<br>
		<h>傳遞資料</h>
		${result}		
		<div>			
			<c:forEach items="${map }" var="m">
				${m.key }--> ${m.value }
			</c:forEach>
		</div>			
		
</body>
</html>

通過這個例項,我們來總結一下SpringMVC的一點點流程。

SpringMVC是一個基於DispatcherServlet的MVC框架,每一個請求最先訪問的都是DispatcherServlet,即在web.xml檔案中配置。DispatcherServlet負責轉發每一個Request請求給相應的Handler,即我們的controller頁面控制器。 Handler處理以後再返回相應的檢視(View)和模型(Model),返回的檢視和模型都可以不指定,即可以只返回Model或只返回View或都不返回。