Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来,如下图:

Springmvc处理流程

入门程序

创建web工程

springMVC是表现层框架,需要搭建web工程开发。

如下图创建动态web工程:

输入工程名,选择配置Tomcat(如果已有,则直接使用),如下图:

配置Tomcat,如下图

选择准备好的Tomcat,这里用的是Tomcat7,如下图:

选择成功,点击Finish,如下图:


如下图选择web的版本是2.5,可以自动生成web.xml配置文件

导入jar包

从课前资料中导入springMVC的jar包,位置如下图:

加入配置文件

创建config资源文件夹,存放配置文件,如下图:

创建springmvc.xml

创建SpringMVC的核心配置文件
SpringMVC本身就是Spring的子项目,对Spring兼容性很好,不需要做很多配置。
这里只配置一个Controller扫描就可以了,让Spring对页面控制层Controller进行管理。

创建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"><!-- 配置controller扫描包 --><context:component-scan base-package="cn.itcast.springmvc.controller" /></beans>

配置文件需要的约束文件,位置如下图:

创建包cn.itcast.springmvc.controller

效果如下图:

配置前端控制器

配置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"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>springmvc-first</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><!-- 配置SpringMVC前端控制器 --><servlet><servlet-name>springmvc-first</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 指定SpringMVC配置文件 --><!-- SpringMVC的配置文件的默认路径是/WEB-INF/${servlet-name}-servlet.xml --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc-first</servlet-name><!-- 设置所有以action结尾的请求进入SpringMVC --><url-pattern>*.action</url-pattern></servlet-mapping>
</web-app>

加入jsp页面

把参考资料中的itemList.jsp复制到工程的/WEB-INF/jsp目录下,如下图:

实现显示商品列表页

创建pojo

分析页面,查看页面需要的数据,如下

<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><td><a href="${pageContext.request.contextPath }/itemEdit.action?id=${item.id}">修改</a></td></tr>

创建商品pojo(可以用逆向工程导入)

public class Item {// 商品idprivate int id;// 商品名称private String name;// 商品价格private double price;// 商品创建时间private Date createtime;// 商品描述private String detail;创建带参数的构造器
set/get。。。
}

创建ItemController

ItemController是一个普通的java类,不需要实现任何接口。
需要在类上添加@Controller注解,把Controller交由Spring管理
在方法上面添加@RequestMapping注解,里面指定请求的url。其中“.action”可以加也可以不加。

@Controller
public class ItemController {// @RequestMapping:里面放的是请求的url,和用户请求的url进行匹配// action可以写也可以不写@RequestMapping("/itemList.action")public ModelAndView queryItemList() {// 创建页面需要显示的商品数据List<Item> list = new ArrayList<>();list.add(new Item(1, "1华为 荣耀8", 2399, new Date(), "质量好!1"));list.add(new Item(2, "2华为 荣耀8", 2399, new Date(), "质量好!2"));list.add(new Item(3, "3华为 荣耀8", 2399, new Date(), "质量好!3"));list.add(new Item(4, "4华为 荣耀8", 2399, new Date(), "质量好!4"));list.add(new Item(5, "5华为 荣耀8", 2399, new Date(), "质量好!5"));list.add(new Item(6, "6华为 荣耀8", 2399, new Date(), "质量好!6"));// 创建ModelAndView,用来存放数据和视图ModelAndView modelAndView = new ModelAndView();// 设置数据到模型中modelAndView.addObject("list", list);// 设置视图jsp,需要设置视图的物理地址modelAndView.setViewName("/WEB-INF/jsp/itemList.jsp");return modelAndView;}
}

启动项目测试

启动项目,浏览器访问地址
http://127.0.0.1:8080/springmvc-first/itemList.action

效果如下图:

什么是Springmvc以及如果编写第一个入门程序相关推荐

  1. 【Spring框架】编写第一个入门程序

    一. 概述: 1). Spring: Spring框架是由Rod Johnson组织和开发的一个分层的Java SE/EE full-stack(一站式)轻量级开源框架,它以IoC(Inversion ...

  2. 【Java基础】Java开发环境搭建并编写第一个入门程序HelloWorld

    大家好,我是程序员青戈,一个被Bug耽误了才艺的程序员

  3. 《Java 开发从入门到精通》—— 2.2 编写第一段Java程序

    本节书摘来异步社区<Java 开发从入门到精通>一书中的第2章,第2.2节,作者: 扶松柏 , 陈小玉,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.2 编 ...

  4. Xamarin iOS编写第一个应用程序创建工程

    Xamarin iOS编写第一个应用程序创建工程 在Xcode以及Xamarin安装好后,就可以在Xamarin Studio中编写程序了.本节将主要讲解在Xamarin Studio中如何进行工程的 ...

  5. Remoting系列(二)----建立第一个入门程序

    http://www.cnblogs.com/Ring1981/archive/2006/07/23/455043.aspx Remoting系列(二)----建立第一个入门程序 下面的Remotin ...

  6. 在Android Studio上编写第一个安卓程序

    文章目录 一.Android开发环境搭建 1.安卓简介: 2.安卓发展历程: 二.Android Studio开发环境 三.第一个安卓程序 出现的问题 1.找不到SDK 2.找不到安卓虚拟机 一.An ...

  7. 在SAP云平台ABAP编程环境上编写第一段ABAP程序

    距2017年秋季的SAP TechEd大会上一位大佬Björn Goerke,SAP's Chief Technology Officer宣布了SAP Cloud Platform即将支持ABAP至今 ...

  8. python第一条入门程序_Python语言函数代码的执行流程

    https://www.xin3721.com/eschool/pythonxin3721/ Python语言函数代码的执行流程,为了保证函数的定义先于其首次调用时执行,我们需要知道中语句的执行顺序. ...

  9. Spring Boot的第一个入门程序 HelloWorld

    一个功能:浏览器发送hello请求,服务器接受请求并处理,响应Hello World字符串: @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用 ...

最新文章

  1. 还在用Matplotlib? 又一可视化神器Altair登场 | 技术头条
  2. OSI模型中的数据链路层和物理层的区分
  3. PHP面试题:写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数(array_multisort())
  4. 6,synchronized, lock 区别
  5. myeclipse 运行速度慢的解决方案
  6. mysql denide_MYSQL 出现Error1045 access denied 的解决方法
  7. 谷歌移动应用强调设计元素:向极简风格转型
  8. 长尾关键词seo_为什么您不应该忘记长尾SEO
  9. iOS原生CIFilter创建二维码
  10. java 观察者模式_图解Java设计模式之观察者模式
  11. 交换机分布缓存_交换机网络嗅探方法 如何欺骗交换机缓存
  12. duplicate database的时候,rman连接 auxiliary database的后状态不正确
  13. 工作那些事儿(8)- 废旧立新
  14. android window设置动画,android - 具有动画的Windowmanager
  15. 雷军这么努力,为什么还是干不过 OV?
  16. 2015 多校联赛 ——HDU5344(水)
  17. SAS 146GB*8 RAID5数据恢复过程(HP 双循环)
  18. paip.跟踪DISCUZ积分日志功能总结
  19. psnr--峰值信噪比
  20. ZigBee 集中式网络与分布式网络

热门文章

  1. 大学生计算机二级大集报名最好,在校大学生如何报名计算机二级?
  2. 【干货】快速部署微软开源GPU管理利器: OpenPAI
  3. Android插u盘自动执行,android tv box ---- 插入u盘直接播放指定文件夹中的视频
  4. numpy 拼接_数据分析-numpy的拼接与交换
  5. java exec 关闭_如何正确关闭java ExecutorService
  6. 2007年上半年软件测试_洪恩教育成功登陆纽交所,上市首日大涨超33%!成2020年首家美股上市的中国教育公司...
  7. matlab length_MATLAB入门
  8. python3 class init_python3 module中__init__.py的需要注意的地方
  9. 计算机基础知识第八周,计算机系统基础(一):程序的表示、转换与链接(第八周小测验)...
  10. mysql降序后去重_Mysql 数据记录去重后按字段排序