1、环境准备(jar包)

2、在web.xml中配置前端控制器

<!-- springmvc 前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器、适配器等等)
如果不配置contextConfigLocation,默认加载的是 WEB-INF/servlet名称-servlet.xml (即springmvc-servlet.xml)
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springmvc.xml</param-value>
</init-param>
</servlet> <servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--
第一种:*.action,访问以.action结尾的由DispatcherServlet进行解析
第二种: /,所有访问地址都由DispatcherServlet进行解析
但是对于静态文件的解析,我们需要配置不让DispatcherServlet进行解析
使用此种方式可以实现Restful风格的URL
第三种: /* 这种配置不对,使用这种配置,最终要转发到一个jsp页面时,仍然会由DispatcherServlet
解析jsp,不能根据jsp页面找到Handler,会报错。
-->
<url-pattern>*.action</url-pattern>
</servlet-mapping>

3、编写spirngmvc.xml配置文件

  我们在 classpath 下的 spring 文件夹中放置 springmvc.xml 文件(自定义位置)

  3.1、配置处理器适配器(xml文件)

<!-- 配置处理器适配器
所有的处理器适配器都实现 HandlerAdapter接口
-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

  我们查看适配器源码,可以看到 supports()方法,当中我们可以知道此适配器能执行 实现Controller接口 的 Handler

  

  我们继续查看 Controller 接口源码:

  

    

  3.2、开发Handler

  我们需要实现 Controller 接口,才能由 SimpleControllerHandlerAdapter 适配器执行

  

public class UserController implements Controller{

    @Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { ArrayList<User> userlist = new ArrayList<User>();
User user1 = new User("腾博","123456");
User user2 = new User("小兵","123456"); userlist.add(user1);
userlist.add(user2); // 返回ModelAndView
ModelAndView modelAndView = new ModelAndView();
// 相当于request的setAttribute,在jsp页面中通过userlist取数据
modelAndView.addObject("userlist", userlist); // 指定视图
modelAndView.setViewName("/WEB-INF/jsp/users/user.jsp"); return modelAndView;
} }

  3.3、配置Handler(xml文件中)

  将编写好的 Hander 在 spring 容器加载

  name是以 .action 结尾,

<!-- 配置Handler -->
<bean name="/queryUsers.action" class="com.bjxb.ssm.controller.UserController"/>

  3.4、视图的编写

  

  3.5、配置处理器映射器(xml文件中)

<!-- 处理器映射器
将bean的name作为url进行查找,
bean就是我们写的Handler,所以我们需要在配置Handler时指定beanname(就是url)
-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

  3.6、配置视图解析器

  这里我们视图是 jsp,所以我们需要配置解析 jsp 的视图解析器

<!-- 视图解析器
解析jsp页面,默认使用jstl标签,classpath下得有jstl的包
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>

  我们来看 InternalResourceViewResolver 这个视图解析器源码,默认使用 jstl 标签进行解析 jsp

  

  3.7、部署调试

  访问地址:http://localhost:8080/springmvc_first/queryUsers.action

  错误一:处理器映射器根据 URL(错误的URL) 找不到 Handler ,报下面的错误。说明 URL 错误。

  

  错误二:处理器映射器根据 URL 找到了 Handler,转发的 jsp 页面找到,报下面的错误,说明 jsp 页面地址错误了。

   

  

SpringMVC的入门程序的更多相关文章

  1. SpringMVC之入门程序

    SpringMVC之入门程序——使用浏览器展示商品数据 springMVC执行流程(图片来源:https://www.jianshu.com/p/8a20c547e245) 1.创建pojo(商品实体 ...

  2. SpringMVC学习--入门程序

    前面基本介绍了下SpringMVC的运行原理,现在按照前面的原理一步步实现一个简单的程序.先搭建一个简单的web工程,将spring的jar包导入项目中. 前端控制器配置 在web.xml中配置如下: ...

  3. springMVC Helloword 入门程序

    1  首先是在web.xml 中配置 <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-cl ...

  4. springmvc(一) springmvc框架原理分析和简单入门程序

    springmvc这个框架真的非常简单,感觉比struts2还更简单,好好沉淀下来学习~ --WH 一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解 ...

  5. SpringMVC学习(一)———— springmvc框架原理分析和简单入门程序

    一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解这个思想,struts2在web层,spring在中间控制,hibernate在dao层与数据库打交 ...

  6. springmvc框架原理分析和简单入门程序

    一.什么是springmvc? 我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解这个思想,struts2在web层,spring在中间控制,hibernate在dao层与数据库打交 ...

  7. SSM框架之SpringMVC(1)入门程序

    SpringMVC(1) 1.三层架构和MVC 1.1. 三层架构 咱们开发服务器端程序,一般都基于两种形式,一种C/S架构程序,一种B/S架构程序 使用Java语言基本上都是开发B/S架构的程序,B ...

  8. SpringMVC-概述和入门程序

    三层架构和MVC B/S三层架构 表现层:web层,一般使用MVC模型 业务层:service层 持久层:dao层 MVC模型 Model:数据模型,JavaBean的类,用来进行数据封装 View: ...

  9. TZ_06_SpringMVC的入门程序

    SpringMVC的入门程序 1. 创建WEB工程,引入开发的jar包 1. 具体的坐标如下 2. 配置核心的控制器(配置DispatcherServlet) 1. 在web.xml配置文件中核心控制 ...

随机推荐

  1. 国内商业智能软件的天下来了,选择BI工具我们应该看这3点!

    ​数据变革时代,经常有"外行人"问到,何谓商业智能BI? BI可以说是通过软件或者服务,将网络时代中海量的数据转化为行动上的洞察力,从而影响企业的战略和战术决策. 当海量.高增长率 ...

  2. .NET 5+ 中已过时的功能

    从 .NET 5 开始,一些新标记为已过时的 API 使用 ObsoleteAttribute 上的两个新属性. ObsoleteAttribute.DiagnosticId 属性指示编译器使用自定义 ...

  3. 【C# Parallel】ParallelOptions

    ParallelOptions 构造函数 此构造函数用默认值初始化实例. MaxDegreeOfParallelism 初始化为-1,表示没有对应采用的并行度进行上限设置. CancellationT ...

  4. windows 应用商店常用软件

    QuickLook 这个应用可以让你,用空格键查看几乎任何文件的信息. 例如快速查看图片,播放视频,阅读 PDF 等等,支持的格式多到吓人.  Python 没错,就是那个非常火的编程语言,Pytho ...

  5. vs2019 NuGet安装及简单使用

    Nuget介绍 官网定义:NuGet是.NET的软件包管理器(免费).NuGet客户端工具提供了生成和使用软件包的能力.NuGet Gallery 是所有软件包作者和消费者都使用的中央软件包存储库. ...

  6. Python:PIL(二)——相关概念

    学习自:PIL官方文档--Concepts 写在最前:PIL只处理栅格(Raster)数据 1.Bands 一幅图像由一个或多个波段的数据组成.PIL允许我们在单幅图像中存储多个波段,前提是它们有相同 ...

  7. Python:glob

    学习自: (1)Python标准库glob模块_lianghe77的博客-CSDN博客_glob库 (2)Python:glob与os.listdir_鳄鱼的博客-CSDN博客 (3)python文件 ...

  8. c语言——uthash使用

    参考:https://troydhanson.github.io/uthash/userguide.html https://blog.csdn.net/lovemust/article/detail ...

  9. C#10新特性-全局和隐式usings

    .NET 6发布后支持C#10,C# 10 向 C# 语言添加了很多功能,今天我们分享一下全局和隐式usings的使用: using 指令简化了使用命名空间的方式. C# 10 包括一个新的全局 us ...

  10. Tableau学习Step3——数据的连接与基本图形的制作

    Tableau学习Step3--数据的连接与基本图形的制作 本文首发于博客冰山一树Sankey,去博客浏览效果更好. 一. 前言 本教程通过一个案例从浅到深来学习Tableau知识 案例概述 Nort ...