筆記14 Hello Spring MVC
搭建一個SpringMVC所需要的包:
1.創建MySpringMVC項目,使用dynamic web project的方式。
2.導入jar包,放到/WebContent(WebRoot)/WEB-INF/lib目錄下
3.關聯jar包,Build Path
4.在WEB-INF目錄下創建 web.xml
配置Spring MVC的入口 DispatcherServlet,把所有的請求都提交到該Servlet
註意:<servlet-name>myspringmvc</servlet-name>
myspringmvc這個名字在下一步會用到
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 5 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 6 <servlet> 7 <servlet-name>myspringmvc</servlet-name> 8<servlet-class> 9 org.springframework.web.servlet.DispatcherServlet 10 </servlet-class> 11 <load-on-startup>1</load-on-startup> 12 </servlet> 13 <servlet-mapping> 14 <servlet-name>myspringmvc</servlet-name> 15<url-pattern>/</url-pattern> 16 </servlet-mapping> 17 </web-app>
5.在WEB-INF目錄下創建myspringmvc-servlet.xml,myspringmvc-servlet.xml 與上一步中的<servlet-name>myspringmvc</servlet-name>對應。
這是Spring MVC的 映射配置文件表示訪問路徑/index會交給id=indexController的bean處理id=indexController的bean配置為類:IndexController
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 3 <beans> 4 <bean id="simpleUrlHandlerMapping" 5 class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 6 <property name="mappings"> 7 <props> 8 <prop key="/index">indexController</prop> 9 </props> 10 </property> 11 </bean> 12 <bean id="indexController" class="controller.IndexController"></bean> 13 </beans>
6.控制類 IndexController
控制類 IndexController實現接口Controller ,提供方法handleRequest處理請求
SpringMVC通過 ModelAndView 對象把模型和視圖結合在一起
表示視圖是index.jsp
模型數據是 message,內容是 “Hello Spring MVC”
1 package controller; 2 3 import javax.servlet.http.HttpServletRequest; 4 import javax.servlet.http.HttpServletResponse; 5 6 import org.springframework.web.servlet.ModelAndView; 7 import org.springframework.web.servlet.mvc.Controller; 8 9 public class IndexController implements Controller { 10 public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { 11 ModelAndView mav = new ModelAndView("index.jsp"); 12 mav.addObject("message", "Hello Spring MVC"); 13 return mav; 14 } 15 }
7.視圖index.jsp
1 <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> 2 <% 3 String path = request.getContextPath(); 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 5 %> 6 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 8 <html> 9 <head> 10 <base href="<%=basePath%>"> 11 12 <title>My JSP ‘index2.jsp‘ starting page</title> 13 14 <meta http-equiv="pragma" content="no-cache"> 15 <meta http-equiv="cache-control" content="no-cache"> 16 <meta http-equiv="expires" content="0"> 17 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 18 <meta http-equiv="description" content="This is my page"> 19 <!-- 20 <link rel="stylesheet" type="text/css" href="styles.css"> 21 --> 22 23 </head> 24 25 <body> 26 <h1>${message}</h1> 27 </body> 28 </html>
8.運行
原理圖:
1. 用戶訪問 /index
2. 根據web.xml中的配置 所有的訪問都會經過DispatcherServlet
3. 根據 根據配置文件springmvc-servlet.xml ,訪問路徑/index
會進入IndexController類
4. 在IndexController中指定跳轉到頁面index.jsp,並傳遞message數據
5. 在index.jsp中顯示message信息
筆記14 Hello Spring MVC