微信公众号:compassblog

欢迎关注、转发,互相学习,共同进步!

有任何问题,请后台留言联系!

1、SpringMVC 概述

(1)、什么是 MVC:Model-View-Control

Control 层属于框架性质,完成的主要工作是:封装 web 请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给客户端。

(2)、什么是 SpringMVC

Spring mvc 和 Struts2 都属于表现层的框架,是 Spring 框架的一部分,Spring 框架的 Control 层的核心是 DispatcherServlet,它的作用是将请求分发给不同的后端处理器。

Spring 的 Control 层框架使用了后端控制器来映射处理器和视图解析器来共同完成 Control 层框架的主要工作。并且 spring 的 Control 层框架还真正地把业务层处理的数据结果和相应的视图拼成一个对象,即 ModelAndView 对象。

SpringMVC 本身就是 Spring 的子项目,对 Spring 兼容性很好,因此也不需要做过多的配置。

(3)SpringMVC 框架处理流程

2、SpringMVC 入门实例

(1)、创建 web 项目,导入所需要的 jar 包,如图下图所示:

(2)、创建 SpringMVC 的核心配置文件,具体配置如下:

springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"><!-- 扫描@Controler  @Service   --><context:component-scan base-package="com.springmvc"/><!-- 处理器映射器 -->
<!--         <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> --><!-- 处理器适配器 -->
<!--         <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> --><!-- 注解驱动 --><mvc:annotation-driven/><!-- 视图解释器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean></beans>
复制代码

(3)、配置 SpringMVC 的前端控制器 DispatcherServlet,具体配置如下:

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><display-name>SpringmvcProject</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping>
</web-app>
复制代码

(4)、在 /WEB-INF/ 目录下新建 jsp 目录,新建 jsp 文件,具体代码如下:

itemList.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查询商品列表</title>
</head>
<body>
<form action="${pageContext.request.contextPath }/item/queryitem.action" method="post">
<p></p>
商品列表:
<p></p>
<table width="100%" border=1>
<tr><td>商品名称</td><td>商品价格</td><td>生产日期</td><td>商品描述</td>
</tr>
<c:forEach items="${itemList }" var="item">
<tr><td>${item.name }</td><td>${item.price }</td><td><fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/></td><td>${item.detail }</td>
</tr>
</c:forEach>
</table>
</form>
</body>
</html>
复制代码

(5)、创建 POJO 类,具体代码如下:

Items.java

package com.springmvc.pojo;import java.util.Date;public class Items {public Items(Integer id, String name, Float price, Date createtime, String detail) {super();this.id = id;this.name = name;this.price = price;this.createtime = createtime;this.detail = detail;}private Integer id;private String name;private Float price;private String pic;private Date createtime;private String detail;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name == null ? null : name.trim();}public Float getPrice() {return price;}public void setPrice(Float price) {this.price = price;}public String getPic() {return pic;}public void setPic(String pic) {this.pic = pic == null ? null : pic.trim();}public Date getCreatetime() {return createtime;}public void setCreatetime(Date createtime) {this.createtime = createtime;}public String getDetail() {return detail;}public void setDetail(String detail) {this.detail = detail == null ? null : detail.trim();}
}
复制代码

(6)、创建 Controller 类,具体代码如下:

ItemController.java

package com.springmvc.controller;import java.util.ArrayList;
import java.util.Date;
import java.util.List;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import com.springmvc.pojo.Items;/*** 商品管理* * @author lx**/
@Controller
public class ItemController {@RequestMapping(value = "/itemlist.action")public ModelAndView itemList(){// 创建页面需要显示的商品数据List<Items> list = new ArrayList<Items>();list.add(new Items(1, "1华为 荣耀8", 2399f, new Date(), "质量好!1"));list.add(new Items(2, "2华为 荣耀8", 2399f, new Date(), "质量好!2"));list.add(new Items(3, "3华为 荣耀8", 2399f, new Date(), "质量好!3"));list.add(new Items(4, "4华为 荣耀8", 2399f, new Date(), "质量好!4"));list.add(new Items(5, "5华为 荣耀8", 2399f, new Date(), "质量好!5"));list.add(new Items(6, "6华为 荣耀8", 2399f, new Date(), "质量好!6"));ModelAndView mav = new ModelAndView();//数据mav.addObject("itemList", list);mav.setViewName("itemList");return mav;}}
复制代码

(7)、启动 Tomcat,并到浏览器地址栏测试,结果如下:

3、SpringMVC 框架访问流程图

注:部分知识源于网络,侵权联删。

扫描关注微信公众号,了解更多

SpringMVC 框架系列之初识与入门实例相关推荐

  1. SpringMVC 框架系列之组件概述与配置详解

    在上一篇文章 SpringMVC 框架系列之初识与入门实例 的实例中,我们已经知道,SpringMVC 框架是一个 web 层的框架,本篇文章就详细解释一下 SpringMVC 框架具体文件的配置以及 ...

  2. SpringMVC自学系列(1)——入门了解

    SpringMVC是在空闲时自学的框架,学得不深,也是从别人那里学习过来,就把这些都记录下来了. 1. 简单介绍 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动 ...

  3. 前端框架系列之(eslint入门)

    创建工程 我们创建一个叫eslint-demo的工程,然后执行npm初始化 https://github.com/913453448/eslint-demo npm init 安装使用 安装eslin ...

  4. Spring-MVC入门(一):入门实例

    引言 1.MVC :Model-View-Control 框架性质的C 层要完成的主要工作:封装web 请求为一个数据对象.调用业务逻辑层来处理数据对象.返回处理数据结果及相应的视图给用户. 2. 简 ...

  5. MyBatis 框架系列之基础初识

    1.什么是 MyBatis MyBatis 本是 apache 的一个开源项目 iBatis,后改名为 MyBatis,它 是一个优秀的持久层框架,对 jdbc 的操作数据库的过程进行封装,使开发者只 ...

  6. 热门框架系列 (二) -- SpringMvc的父子容器,SpringBoot是否有父子容器?

    @TOC# 热门框架系列 记录在程序走的每一步___auth:huf 从新的篇章开始;篇章阅读需要先关注; 因为笔者想参与技术文章的评选.;需要一定的粉丝量; 粉丝量达到一定数量.所有文章阅读限制将会 ...

  7. java mvc框架代码_JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码)

    原标题:JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码) JavaEE体系结构包括四层,从上到下分别是应用层.Web层.业务层.持久层.Struts和SpringMVC是Web层的 ...

  8. Silverlight实例教程 - Navigation导航框架系列汇总

    Silverlight实例教程导航框架系列,结合实例讲述Silverlight导航开发基础,该教程不仅仅适用于Silverlight,而且可以被应用于Windows Phone开发领域. 文章列表: ...

  9. java元婴期(27)----java进阶(springmvc(1)---springmvc框架入门程序(上)(不基于注解开发))

    springmvc框架 什么是springmvc springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合.(struts2与Spring整合的时候需 ...

最新文章

  1. 《自然》杂志:关于人类未来的工作,有三个最紧迫的问题
  2. 【登录异常解决】Ubuntu 输入正确的密码后重新返回到登陆界面
  3. docker --restart=always 参数 docker重启容器自动重启
  4. Spring Boot微服务中Chaos Monkey的应用
  5. Redis常见配置redis.conf
  6. jax-rs/jersey_使用JAX-RS(Jersey)的HTTP状态错误消息响应中的自定义原因短语
  7. MySQL高级特性之分区表
  8. 如何成为专家-核心的七个特质
  9. xmapp环境搭建注意事项
  10. 济南市全国计算机二级,济南市2019上半年计算机二级考试报名时间|网上报名入口【12月19日9:00开通】...
  11. Deepin系统标题栏及其按钮美化
  12. sqlmap渗透实战进阶技巧
  13. lumen php命令,laravel and lumen 软删除操作
  14. 羊le个羊 小游戏 简单源码开源 思路分析
  15. 摄影基础1 : 135相机
  16. mysql can't open file: '..frm'_修复Can't open file的mysql数据库表的方法
  17. iphone, ipad运行命令
  18. 中忻嘉业电商:如何理解抖音dou+投放
  19. js颜色常用处理方法
  20. 蚂蚁金服Java岗三面(电面.现场面.HR面)经验总结和分享

热门文章

  1. ue4 导出模型_UE4构建光照后模型变黑,二套UV解决办法
  2. vue中父子组件先后渲染_VUE如何实现子父组件、父子组件、兄弟组件传值
  3. 弹出层,div的写法
  4. mysql parametertype_MyBatis传入参数与parameterType
  5. linux mysql 1045 错误_Linux 下,mysql数据库报无法登陆错误:ERROR 1045 (28000): Access denied for use...
  6. 电子计算机说明文作文,电脑事物说明文
  7. 在FFT分析在而立之年的展望与总结
  8. SP-45ML光电二极管放大电路设计
  9. python人脸识别plc_三个Python项目实战,打造人脸识别系统!
  10. python递归详解_打破递归栈的深度限制: 解析一种Python尾递归优化的方法