继续前进之SpringMvc入门小程序
2017-04-24 21:08
316 查看
SpringMvc到底是什么?学习它之前必须要先了解它
根据查询得知,MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,MVC模式的核心思想是将业务逻辑从界面中分离出来,允许它们单独改变而不会相互影响。Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。
原理图
![](https://img-blog.csdn.net/20170424203420213?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQUxpdHRsZVNwcmluZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
第一步:用户发起请求到前端控制器(DispatcherServlet)
第二步:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handle):通过xml配置或者注解进行查找
第三步:找到以后处理器映射器(HandlerMappering)像前端控制器返回执行链(HandlerExecutionChain)
第四步:前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)
第五步:处理器适配器去执行Handler
第六步:Handler执行完给处理器适配器返回ModelAndView
第七步:处理器适配器向前端控制器返回ModelAndView
第八步:前端控制器请求视图解析器(ViewResolver)去进行视图解析
第九步:视图解析器像前端控制器返回View
第十步:前端控制器对视图进行渲染
第十一步:前端控制器向用户响应结果
这里包含了几大重要的组件:
前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU。
处理器映射器(HandlerMapping):根据URL去查找处理器
处理器(Handler):(需要程序员去写代码处理逻辑的)
处理器适配器(HandlerAdapter):会把处理器包装成适配器,这样就可以支持多种类型的处理器,类比笔记本的适配器(适配器模式的应用)
视图解析器(ViewResovler):进行视图解析,多返回的字符串,进行处理,可以解析成对应的页面
(文字步骤取自http://www.cnblogs.com/huaixiaoz/p/5776244.html)
了解了原理,现在就按照这个思路写一个测试程序
第一步:jar包
![](https://img-blog.csdn.net/20170424204032767?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQUxpdHRsZVNwcmluZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
编写一个po类
配置前端控制器(DispatchServlet)
配置处理器映射器、处理器适配器、视图解析器
创建jsp页面
创建一个ItemsController01类
“`
package com.itsky.ssm.controller;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import com.itsky.ssm.po.Items;
public class ItemsController01 implements Controller{
}
测试
根据查询得知,MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,MVC模式的核心思想是将业务逻辑从界面中分离出来,允许它们单独改变而不会相互影响。Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。
原理图
第一步:用户发起请求到前端控制器(DispatcherServlet)
第二步:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handle):通过xml配置或者注解进行查找
第三步:找到以后处理器映射器(HandlerMappering)像前端控制器返回执行链(HandlerExecutionChain)
第四步:前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)
第五步:处理器适配器去执行Handler
第六步:Handler执行完给处理器适配器返回ModelAndView
第七步:处理器适配器向前端控制器返回ModelAndView
第八步:前端控制器请求视图解析器(ViewResolver)去进行视图解析
第九步:视图解析器像前端控制器返回View
第十步:前端控制器对视图进行渲染
第十一步:前端控制器向用户响应结果
这里包含了几大重要的组件:
前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU。
处理器映射器(HandlerMapping):根据URL去查找处理器
处理器(Handler):(需要程序员去写代码处理逻辑的)
处理器适配器(HandlerAdapter):会把处理器包装成适配器,这样就可以支持多种类型的处理器,类比笔记本的适配器(适配器模式的应用)
视图解析器(ViewResovler):进行视图解析,多返回的字符串,进行处理,可以解析成对应的页面
(文字步骤取自http://www.cnblogs.com/huaixiaoz/p/5776244.html)
了解了原理,现在就按照这个思路写一个测试程序
第一步:jar包
编写一个po类
public class Items { private String name; private float price; private String detail; }
配置前端控制器(DispatchServlet)
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name></display-name> <servlet> <!-- 配置前端控制器 --> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- contestConfigLocation配置springmvc加载配置文件(配置处理器、适配器等)这里我们在src目录下重新创建了一个xml文件,因为如果不配置contextConfigLocation,它会默认加载/WEB-INF/servlet名称-servlet.xml。 --> <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> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
配置处理器映射器、处理器适配器、视图解析器
<?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: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/schem 4000 a/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd"> <!-- 将bean的name作为url进行查找,需要在配置Handler时指定beanname(就是url) --> <bean name="/queryItems.action" class="com.itsky.ssm.controller.ItemsController01"></bean> <!-- 处理器映射器 --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> <!-- 处理器适配器--> <!-- 所有的适配器都实现了HanderAdapter接口 --> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean> <!--视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean> </beans>
创建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>Insert title here</title> </head> <body> <table width="100%" border=1> <tr> <td>商品名称</td> <td>商品价格</td> <td>生产日期</td> <td>商品描述</td> <td>操作</td> </tr> <c:forEach items="${itemsList }" var="item"> <tr> <td>${item.name }</td> <td>${item.price }</td> <td>${item.createtime }</td> <td>${item.detail }</td> <td>${item.name }</td> </tr> </c:forEach> </table> </body> </html>
创建一个ItemsController01类
“`
package com.itsky.ssm.controller;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import com.itsky.ssm.po.Items;
public class ItemsController01 implements Controller{
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { //先用静态方法来模拟数据的查找 List<Items>itemsList=new ArrayList<Items>(); Items items_1=new Items(); items_1.setName("学习SpringMvc"); items_1.setPrice(6000f); items_1.setDetail("快要入门了"); Items items_2=new Items(); items_2.setName("电脑"); items_2.setPrice(5000f); items_2.setDetail("傻瓜电脑"); itemsList.add(items_1); itemsList.add(items_2); //返回ModelAndView ModelAndView modelAndView=new ModelAndView(); //相当于request的setAttribute,在jsp页面通过itemsList读取数据 modelAndView.addObject("itemsList", itemsList); //指定视图 modelAndView.setViewName("WEB-INF/jsp/items/items.jsp"); return modelAndView; }
}
测试
相关文章推荐
- 【SpringMVC框架】springmvc入门程序-环境搭建
- SpringMvc一个简单的框架入门程序
- 一、SpringMVC基础入门,创建一个HelloWorld程序
- SpringMVC基础入门,创建一个HelloWorld程序
- 【SpringMVC框架】springmvc入门程序-环境搭建
- SpringMVC入门小程序 -- Myeclipse 9.1下
- springmvc入门程序
- 第二周学习计划:继续学java入门,开始做些小jsp+java程序
- springMVC学习笔记(二)-----注解和非注解入门小程序
- SpringMVC入门第一个程序
- SpringMVC(2)入门程序
- SpringMVC_入门程序
- springMVC入门程序-注解开发环境配置
- 【SSM-SpringMVC框架】SpringMVC入门小程序
- SpringMVC基础入门,创建一个HelloWorld程序
- springMVC学习笔记(二)-----注解和非注解入门小程序
- springMVC入门程序-非注解开发环境配置
- springmvc(一) 入门程序
- SpringMVC入门程序(一)
- 简易的springmvc入门程序-springmvc框架的搭建