springmvc入门(1)

一.、springmvc框架

1、什么是springmvc

springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。springmvc是一个基于mvc的web框架。

2、mvc在b/s系统下的应用

mvc是一个设计模式,mvc在b/s系统 下的应用:

3、springmvc框架

第一步:发起请求到前端控制器(DispatcherServlet)

第二步:前端控制器请求HandlerMapping查找 Handler

可以根据xml配置、注解进行查找

第三步:处理器映射器HandlerMapping向前端控制器返回Handler

第四步:前端控制器调用处理器适配器去执行Handler

第五步:处理器适配器去执行Handler

第六步:Handler执行完成给适配器返回ModelAndView

第七步:处理器适配器向前端控制器返回ModelAndView

ModelAndView是springmvc框架的一个底层对象,包括 Model和view

第八步:前端控制器请求视图解析器去进行视图解析

根据逻辑视图名解析成真正的视图(jsp)

第九步:视图解析器向前端控制器返回View

第十步:前端控制器进行视图渲染

视图渲染将模型数据(在ModelAndView对象中)填充到request域

第十一步:前端控制器向用户响应结果

4、组件:

前端控制器DispatcherServlet(不需要程序员开发)。作用:接收请求,响应结果,相当于转发器,中央处理器。有了DispatcherServlet减少了其它组件之间的耦合度。

处理器映射器HandlerMapping(不需要程序员开发)。作用:根据请求的url查找Handler

处理器适配器HandlerAdapter。作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler

处理器controller(需要程序员开发)注意:编写controller时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler

视图解析器View resolver(不需要程序员开发)。作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)

视图View(需要程序员开发jsp)。View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)

二、程序入门

1. 配置前端控制器,在web.xml中配置前端控制器

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <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">
 3   <display-name>springmvc</display-name>
 4
 5   <!-- springmvc前端控制器 -->
 6   <servlet>
 7       <servlet-name>springmvc</servlet-name>
 8       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 9       <!-- contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器、适配器等等)
10       如果不配置contextConfigLocation,默认加载的是/WEB-INF/servlet名称-serlvet.xml(springmvc-servlet.xml)
11        -->
12       <init-param>
13           <param-name>contextConfigLocation</param-name>
14           <param-value>classpath:springmvc.xml</param-value>
15       </init-param>
16   </servlet>
17
18   <servlet-mapping>
19       <servlet-name>springmvc</servlet-name>
20       <!--
21       第一种:*.action,访问以.action结尾 由DispatcherServlet进行解析
22       第二种:/,所以访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析
23       使用此种方式可以实现 RESTful风格的url
24       第三种:/*,这样配置不对,使用这种配置,最终要转发到一个jsp页面时,
25       仍然会由DispatcherServlet解析jsp地址,不能根据jsp页面找到handler,会报错。
26        -->
27       <url-pattern>*.action</url-pattern>
28   </servlet-mapping>
29
30
31   <welcome-file-list>
32     <welcome-file>index.html</welcome-file>
33     <welcome-file>index.htm</welcome-file>
34     <welcome-file>index.jsp</welcome-file>
35     <welcome-file>default.html</welcome-file>
36     <welcome-file>default.htm</welcome-file>
37     <welcome-file>default.jsp</welcome-file>
38   </welcome-file-list>
39 </web-app>

2、配置处理器适配器,在classpath下的springmvc.xml中配置处理器适配器。

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

3、开发controller程序,这里使用的是静态数据。下一篇和mybatis整合后将去数据库查询数据

 1 package com.zhang.controller;
 2
 3 import java.util.ArrayList;
 4 import java.util.List;
 5
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8
 9 import org.springframework.web.servlet.ModelAndView;
10 import org.springframework.web.servlet.mvc.Controller;
11
12 import com.zhang.domain.Items;
13
14 public class ItemsController implements Controller {
15     @Override
16     public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {
17         //调用service查找 数据库,查询商品列表,这里使用静态数据模拟
18         List<Items> itemsList = new ArrayList<Items>();
19         //向list中填充静态数据
20         Items items_1 = new Items();
21         items_1.setName("联想笔记本");
22         items_1.setPrice(6000f);
23         items_1.setDetail("ThinkPad T430 联想笔记本电脑!");
24         Items items_2 = new Items();
25         items_2.setName("苹果手机");
26         items_2.setPrice(5000f);
27         items_2.setDetail("iphone6苹果手机!");
28         itemsList.add(items_1);
29         itemsList.add(items_2);
30         //返回ModelAndView
31         ModelAndView modelAndView =  new ModelAndView();
32         //相当 于request的setAttribut,在jsp页面中通过itemsList取数据
33         modelAndView.addObject("itemsList", itemsList);
34         //指定视图
35         modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
36         return modelAndView;
37     }
38
39 }

4、配置处理器映射器,在classpath下的springmvc.xml中配置处理器映射器

1 <!-- 配置Handler -->
2     <bean id="itemsController" name="/queryItems_test.action" class="com.zhang.controller.ItemsController" />
3     <!-- 处理器映射器 将bean的name作为url进行查找 ,需要在配置Handler时指定beanname(就是url) 所有的映射器都实现 HandlerMapping接口。-->
4     <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

5、配置视图解析器,需要配置解析jsp的视图解析器。

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

6、JSP页面

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 4 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 6 <html>
 7 <head>
 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 9 <title>查询商品列表</title>
10 </head>
11 <body>
12 <form action="${pageContext.request.contextPath }/item/queryItem.action" method="post">
13 查询条件:
14 <table width="100%" border=1>
15 <tr>
16 <td><input type="submit" value="查询"/></td>
17 </tr>
18 </table>
19 商品列表:
20 <table width="100%" border=1>
21 <tr>
22     <td>商品名称</td>
23     <td>商品价格</td>
24     <td>生产日期</td>
25     <td>商品描述</td>
26     <td>操作</td>
27 </tr>
28 <c:forEach items="${itemsList }" var="item">
29 <tr>
30     <td>${item.name }</td>
31     <td>${item.price }</td>
32     <td><fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
33     <td>${item.detail }</td>
34     <td><a href="${pageContext.request.contextPath }/item/editItem.action?id=${item.id}">修改</a></td>
35 </tr>
36 </c:forEach>
37 </table>
38 </form>
39 </body>
40 </html>

7、测试,在浏览器中输入地址:http://127.0.0.1:8080/springmvc//queryItems_test.action,显示效果如下:

三、工程目录结构:

资源下载链接:

时间: 2024-10-12 00:19:56

springmvc入门(1)的相关文章

SpringMVC入门

介绍 SpringMVC是一款Web MVC框架. 它跟Struts框架类似,是目前主流的Web MVC框架之一. 本文通过实例来介绍SpringMVC的入门知识. 实例 本文所写的实例是一个员工的CRUD demo. 用idea编写,基于maven, Web框架使用SpringMVC,视图采取Freemarker技术,数据库使用MySQL,用Hibernate4存储数据. 本文关于其他一些内容 如maven的pom文件内容,spring常规bean,事务,数据源的配置等不会详细描述,可自行下载

springmvc入门之HelloWorld篇

springmvc是一个基于spring的mvc框架,各种优点啥的用过就知道了.下面开始讲HelloWorldController的实现. 1.开发环境搭建<导jar包+配置文件> 1.1 新建web工程springmvc,导入springmvc所需的jar包,因为springmvc是基于spring的,所以必须包含spring的jar包,我用的版本是spring3.1.0.导入以下jar包: 1.2 配置web.xml <!-- spring mvc配置 处理*.action和*.do

2017-5-23 SpringMVC入门(一)

2017-5-23 SpringMVC入门(一) SpringMVC Maven Java 1.依赖引入 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.ap

Spring-MVC入门实例 (一)

Spring MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了.Spring MVC结构简单,应了那句话简单就是美,而且他强大不失灵活,性能也很优秀. Struts2 VS  Spring MVC Struts2  特点 也是比较优秀的MVC构架,优点非常多比如良好的结构.但这里想说的是缺点,Struts2由于采用了值栈.OGNL表达式.struts2标签库等,会导致应用的性能下降.Struts2的多层拦截器.多实例action性能都很好

SpringMVC入门之注解式控制器

上面一篇写的是配置式的控制器现在已经不推荐使用了,其实注解式控制器和它的差不多只不过 更简洁而已! 1.还是在web.xml中进行配置DispatcherServlet <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-para

框架 day68 SpringMVC入门(框架原理,springmvc和mybatis整合)

第一天:注解开发基础(springmvc入门) springmvc框架原理(掌握) DispatcherServlet前端控制器.HandlerMapping处理器映射器.HandlerAdapter处理器适配器.ViewResolver视图解析器 springmvc入门程序 目标:加深对springmvc三大组件的认识 查询商品信息 重点掌握注解的HandlerMapping处理器映射器.HandlerAdapter处理器适配器(掌握) springmvc和mybatis整合(掌握) 通过一个

SpringMVC 入门教程知识

SpringMVC 入门知识 一.SpringMVC入门介绍 springMVC代替struts2去整合hibernate实现功能的框架.使用springMVC有两个配置文件需要配置,一 个是applicationContext.xml.另一个是web.xml,在applicationContext.xml里面配置事务管理器以及属性注入等.web.xml里面要添加一个springMVC的servlet的注册和映射(DispatcherServlet),这个servlet是 springMVC的核

SpringMVC入门配置和简单实现

web.xml的配置 <!-- springmvc中央控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-n

SpringMVC入门(一)

一. SpringMVC入门 1.1 Springmvc是什么 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来,如下图: 1.2  Springmvc处理流程 二. 入门程序2.1 导包 2.2 创建springmvc.xml SpringMVC本身就是Spring的子项目,对Spring兼容性很好,不需要做很多配置. 这里只配置一个Controller扫描就可以了,让Spring对页面控制层Control

springMVC入门案例

1.配置文件的web.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.co