笔记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 对象把模型和视图结合在一起

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信息

 

原文地址:https://www.cnblogs.com/lyj-gyq/p/8908550.html