通过配置版本的MVC程序,可以了解到MVC的底层原理,实际开发我们用的是注解版的!

1.新建一个普通Maven的项目,然后添加web的支持

2.导入相关的SpringMVC的依赖

3.配置web.xml, 注册DispatherServlet

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"> <!-- 注册DispatcherServlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 关联一个springmvc的配置文件:-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param> <!-- 启动级别-->
<load-on-startup>1</load-on-startup>
</servlet> <!--
这里需要注意一下
/ 匹配所有请求:(不包括.jsp)
/* 匹配所有请求: (包括.jsp)
-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> </web-app>

4.编写SpringMVC的配置文件!在resources目录下创建,你自己定义的配置文件的名字

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"> </beans>

5.添加 处理映射器、处理器适配器和视图解析器

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 添加处理映射器-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!-- 添加处理适配器-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> <!-- 添加视图解析器:DispatcherServlet给它的ModelAndView
1.获取了ModelAndView的数据
2.解析了ModelAndView的视图名字
3.拼接视图的名字,找到了对应的视图
-->
<bean id="InternalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置前缀 -->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!-- 配置后缀-->
<property name="suffix" value=".jsp"/>
</bean> </beans>

6.编写操作业务的Controller,实现Controller接口或者增加注释,我们这里实现Controller接口;需要返回一个ModelAndView,装数据,封视图


package com.king.controller; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class HelloController implements Controller {
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
//模型和视图 ModelAndView
ModelAndView modelAndView = new ModelAndView(); //封装对象,放在ModelAndView中。
modelAndView.addObject("msg","HelloSpringMVC");
//封装要跳转的视图,放在ModelAndView中
modelAndView.setViewName("hello");
//返回一个ModelAndView
return modelAndView;
}
}

7.将编写的类,在配置文件里面注册bean

<bean id="/hello" class="com.king.controller.HelloController"/>

8.编写跳转的jsp页面,获取ModelAndView存放的数据

<%--
Created by IntelliJ IDEA.
User: KING
Date: 2020/5/24
Time: 12:46
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body> ${msg} </body>
</html>

9.配置Tomcat,启动测试

【可能会遇到访问出现404,解决方法】

  1. 查看是否缺少jar包

3.在lib文件夹下添加依赖

4.全部添加



5.重新启动Tomcat,进行测试!

最新文章

  1. [Android] 修改ImageView的图片颜色
  2. Thinkphp的单字母函数整理
  3. JMS中的消息通信模型
  4. Android 实战之UI线程和Worker线程交互
  5. 161018、springMVC中普通类获取注解service方法
  6. cocoapods ,错误大全
  7. 数据库(.udl)简单测试连接
  8. 使用SpringMVC+mybatis+事务控制+JSON 配置最简单WEB
  9. 一分钟明白 VS manifest 原理
  10. SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-004-使用AspectJ’s pointcut expression language定义Pointcut
  11. mysql 统计 每天累计用户数
  12. windows线程池四种情形(win核心读书笔记)
  13. 导入Excel后绑定GridView实例
  14. iscroll使用之页面卡顿问题
  15. Leetcode_35_Search Insert Position
  16. OAuth2实现单点登录SSO
  17. uWSGI 踩坑记
  18. PHP算法学习(3) 冒泡排序
  19. cdh 5.13 hadoop 集群IP变更详细步骤
  20. Tidb数据库导入数据出现oom问题

热门文章

  1. mysql运维入门5:MySQL+kepalived高可用架构
  2. storm-jdbc详解
  3. MySQL(8)— 权限管理和备份
  4. SSE系列内置函数中的shuffle函数
  5. 第3章_关系数据库标准语言(SQL)_006_由元组关系演算到SQL Command_001_蕴含式 (其中有对EXISTS的分析)
  6. 深入理解JS:执行上下文中的this(一)
  7. JVM调优总结(六)-新一代的垃圾回收算法
  8. java类的方法的使用
  9. Java动态代理与静态代理以及它能为我们做什么
  10. 安装和换源pip