SpringMVC入门(一)
非注解的SpringMVC
1、创建一个web工程
2、导入工程需要的jar包

3、配置SpringMVC的前端控制器
前端控制器(DispatcherAdapter)需要在web.xml文件中进行配置,配置如下:
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!--
配置SpringMVC加载的配置文件位置
如果不配置默认加载WEB-INF目录下的名称为:Servlet名称-servlet.xml的文件
-->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--
url-parrern的配置有三种:
1、*.action 访问已action结尾的URL是由DispatcherServlet进行解析
2、/ 所有的访问URL都由DispatcherServlet进行处理,对于静态资源要配置不让其解析,
这种方式可以实现RESTFul风格。
3、/* 这种配置方式经测试不正确
-->
<url-pattern>*.action</url-pattern>
</servlet-mapping>
4、配置处理器映射器
处理器映射器需要在SpringMVC的配置文件中进行配置。在src目录下新建一个config目录,在该目录下建一个springmvc.xml文件。(名称和位置没有固定要求,可随意),其内容如下:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
<!--配置处理器适配器,所有的处理器适配器都实现了HandlerAdapter接口-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
</beans>
5、编写Handler
由于在前面使用了SimpleControllerHandlerAdapter处理器适配器,所以该Handler必须实现Controller接口。
public class TestController implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
//调用service中的方法去数据库查询数据,这里采用静态数据进行模拟
List<Items> itemsList = new ArrayList<>();
//静态模拟数据
Items items1 = new Items();
items1.setId(1);
items1.setName("笔记本电脑");
items1.setPrice(5000.0f);
Items items2 = new Items();
items2.setId(2);
items2.setName("鼠标");
items2.setPrice(50.0f);
itemsList.add(items1);
itemsList.add(items2);
//创建ModelAndView对象
ModelAndView modelAndView = new ModelAndView();
//填充model
modelAndView.addObject("itemsList",itemsList);
//填充view
modelAndView.setViewName("/page/itemlist.jsp");
return modelAndView;
}
}
7、视图编写(jsp页面)
在webRoot目录下面编写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>
<title>商品展示</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/queryItems.action" >
<table width="100%" border= 1>
<tr>
<td><input type="submit" value="查询"></td>
</tr>
<tr>
<td>商品id</td>
<td>商品名称</td>
<td>商品价格</td>
</tr>
<c:forEach items="${itemsList}" var="items">
<tr>
<td>${items.id}</td>
<td>${items.name}</td>
<td>${items.price}</td>
</tr>
</c:forEach>
</table>
</form>
</body>
</html>
7、配置Handler
Handler也要在SpringMVC的配置文件中进行配置,配置如下:
<!--配置自己编写的Handler,name为在浏览器中访问该Handler的路径-->
<bean name="/queryItems.action" class="com.jack.controller.TestController"/>
8、配置处理器映射器
因为此处是用过Handler的name作为访问的URL,因此要配置的处理器映射器必须为BeanNameUrlHandlerMapping映射器。在SpringMVC配置文件中配置如下内容:
<!--配置处理器映射器,将bean的name作为URL去查找Handler-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
9、配置视图解析器
此处配置jsp视图的解析器。在SpringMVC的配置文件中配置,配置内容如下:
<!--配置视图解析器,解析jsp页面,默认使用jstl标签-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" />
10、测试
部署项目,启动Tomcat,访问http://localhost:8080/项目名称/queryItems.action。测试结果如下:

11、第一种非注解的处理器适配器
该适配器要求Handler必须实现HttpRequestHandler接口。
<!--另一个非注解的处理器适配器,所有的Handler都要实现HttpRequestHandler-->
<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter" />
12、使用HttpRequestHandlerAdapter适配器时Handler的编写方式
public class TestController2 implements HttpRequestHandler{
@Override
public void handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
//调用service中的方法去数据库查询数据,这里采用静态数据进行模拟
List<Items> itemsList = new ArrayList<>();
//静态模拟数据
Items items1 = new Items();
items1.setId(1);
items1.setName("笔记本电脑");
items1.setPrice(5000.0f);
Items items2 = new Items();
items2.setId(2);
items2.setName("鼠标");
items2.setPrice(50.0f);
itemsList.add(items1);
itemsList.add(items2);
//向页面写入model数据
httpServletRequest.setAttribute("itemsList",itemsList);
httpServletRequest.getRequestDispatcher("/page/itemlist.jsp").forward(httpServletRequest,httpServletResponse);
}
}
13、Handler的配置
<!--配置自己编写的Handler-->
<bean id="testController2" class="com.jack.controller.TestController2"/>
13、另一种非注解的处理器映射器
<!--另一个非注解的处理器映射器-->
<!--处理器映射器可以多个并存-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" >
<property name="mappings">
<props>
<!--对testController进行映射,可以配置多个prop-->
<!--key:访问的url,中间为要配置的handler的ID-->
<prop key="/queryItems2.action">testController2</prop>
</props>
</property>
</bean>
14、DispatcherServlet.properties文件

前端控制器从上边的文件中加载处理映射器、适配器、视图解析器等组件,如果不在springmvc.xml中配置,使用默认加载的。
SpringMVC入门(一)的更多相关文章
- 【Spring】SpringMVC入门示例讲解
目录结构: // contents structure [-] SpringMVC是什么 Spring MVC的设计原理 SpringMVC入门示例 1,复制Jar包 2,Web.xml文件 3,My ...
- Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6999743.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十一)——S ...
- SpringMVC入门第二天
SpringMVC第二天 1. 回顾 1.Springmvc介绍? Springmvc是Spring公司 2.Springmvc入门程序 第一步:Web工程 第二步:导Jar包 第三步:web.x ...
- 3.2.1 SpringMVC入门
一. SpringMVC入门 1. MVC介绍 MVC全名 是Model View Controller, 是模型(model) - 视图(view) - 控制器(controller) 的缩写, 它 ...
- SpringMVC入门学习(二)
SpringMVC入门学习(二) ssm框架 springMVC 在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. mo ...
- SpringMVC入门学习(一)
SpringMVC入门学习(一) ssm框架 spring SpringMVC是一个Java WEB框架,现在我们知道Spring了,那么,何为MVC呢? MVC是一种设计模式,其分为3个方面 mo ...
- springMVC入门(一)
1. SpringMVC入门 1.1SpringMVC是什么 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出 ...
- SpringMVC.入门篇《二》form表单
SpringMVC.入门篇<二>form表单 项目工程结构: 在<springmvc入门篇一.HelloWorld>基础上继续添加代码,新增:FormController.ja ...
- SpringMVC.入门篇.一.HelloWorld
SpringMVC.入门篇<一>HelloWorld 项目包结构如下: HelloController.java 代码 package com.charles.controller; im ...
- SpringMVC入门(基于注解方式实现)
---------------------siwuxie095 SpringMVC 入门(基于注解方式实现) SpringMVC ...
随机推荐
- Partition--分区总结
1. 在SQL SERVER 2008 R2 SP2之前版本,对分区只支持到1000个分区,之后版本支持到15000个分区.2. 分区索引对齐并不要求索引和表使用同一分区方案,但要求两者使用的分区方案 ...
- django drf GenericAPIView和ListAPIView
drf提供了更快捷的查询方法ListModelMixin+GenericAPIView,和ListAPIView 1.ListModelMixin+GenericAPIView from django ...
- NOS服务监控实践
本文来自网易云社区 作者:王健 一. 背景 此处所说的服务监控程序,是通过模拟用户的请求,对一个系统的服务质量进行监控的程序.服务监控程序的主要目的是,从用户的角度出发,通过发送端到端的请求,确认系 ...
- leetcode 2 两数相加 JAVA
题目: 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示 ...
- 模拟RHCSA考试环境
转载自 http://blog.51cto.com/10681635/2084794 模拟RHCSA考试环境 第1章 修改 root 密码 第2章 配置网络 第3章 设定SeLinux 第4章 ...
- [ActionScript 3.0] 绘制扇形方法
/** * 绘制扇形 * @param mc 承载扇形的对象 * @param x 圆心角x * @param y 圆心角y * @param r 半径 * @param angle 绘制角度 * @ ...
- mycat 1.6.6.1安装以及配置docker 安装mysql 5.7.24 双主多从读写分离主主切换
mycat和mysql的高可用参考如下两个图 简介:应用程序仅需要连接HAproxy或者mycat,后端服务器的读写分离由mycat进行控制,后端服务器数据的同步由MySQL主从同步进行控制. 服务器 ...
- 前端之JS的线程(最易懂)
1. 前言 很多文章在介绍线程以及线程之间的关系,都存在着脱节的现象.还有的文章过于广大,涉及到了内核,本文希望以通俗易懂的话去描述晦涩的词语,可能会和实际有一丢丢的出入,但是更易理解. 我们都知道J ...
- String字符串补位
String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语言的读者应该记得C语言的sprintf()方法,两者有类似之处.format()方法有两种重载形式. l ...
- BT网站-IBMID.COM
最近把網站改版了,主要是更改了搜索引擎. 大家可以訪問 什么是磁力链接(IBMID.COM)(Magnet URI)? 简单的说:类似下面这样以“magnet:?”开头的字符串,就是一条“磁力链接” ...