1. 程式人生 > >筆記14 Hello Spring MVC

筆記14 Hello Spring MVC

AR response c-s nal rds ins 關聯 image this

搭建一個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 對象把模型和視圖結合在一起

ModelAndView mav = new ModelAndView("index.jsp"); mav.addObject("message", "Hello Spring MVC");

表示視圖是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