码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC学习

时间:2018-10-16 13:49:29      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:efi   col   控制器   htm   property   pattern   jsp   startup   tty   

 

MVC的概念

MVC是一种设计模式,即Model--View-Controller,模型--视图--控制器

  • Model(模型)表示应用程序核心(比如数据库记录列表)。
  • View(视图)显示数据(数据库记录)。
  • Controller(控制器)处理输入(写入数据库记录)

Model常常是向数据库中存取数据

View一般根据Model的数据来创建

Controller一般负责从视图读取数据,将数据发给模型

SpringMVC

在CSDN的专栏里看到一张图,很好的讲到了SpringMVC的结构

技术分享图片

 

首先是DispatcherServlet,即前端控制器,它不要我们自己来创建,而是SpringMVC框架内置的,但需要在Bean.xml

中配置它,之后它根据web.xml中的配置,得到URL的相关信息,再根据HandlerMapping找到一个合适Handler即(Controller)

,随后,再交由HandlerAdapter来执行这个Handler,handler执行后,向HandlerAdapter返回一个ModelAndView对象,

HandlerAdapter再向前端控制器返回这个ModelAndView对象,之后,前端控制器再找到一个解析器,即ViewResolver,

处理ModelAndView对象,返回一个真正的视图(jsp).然后前端控制器从ModelAn的View中解析出参数得到数据,组成

View返回给浏览器或者客户端

HelloWorld实战

第一步在WEB-INF的web.xml里面配置前端控制器

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

前端配置器的名字不能随便乱取,接下来的SpringMVC的配置文件的名字和他有联系

接下来创建[前端控制器名字]-servlet,xml文件,即springmvc-servlet.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: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-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <context:component-scan base-package="controller" />
    <bean id="irViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/page/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

  

<context:component-scan base-package="controller" />是配置控制器,back-package是控制器路径
后面是配置视图解析器

在这之后,我们创建controller目录,即存放控制器的目录,然后新建HelloController控制器

package controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping(value = "/hello")
public class HelloController {
    @RequestMapping(method = RequestMethod.GET)
    public String hello(ModelMap modelMap){
        modelMap.addAttribute("message","Hello world");
        return "hello";
    }
}

然后在WEB-INF新建一个page文件夹存放我们的视图,即jsp文件,对应上面解析器的配置

新建hello.jsp

<%--
  Created by IntelliJ IDEA.
  User: 31786
  Date: 2018/10/16
  Time: 11:35
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>${message}</h1>
</body>
</html>

  

message和HelloController里面的message对应,hello.jsp的名字和HelloController里面的返回的字符串对应,不然会404

ok 大功告成,持续更新,,,



SpringMVC学习

标签:efi   col   控制器   htm   property   pattern   jsp   startup   tty   

原文地址:https://www.cnblogs.com/Yintianhao/p/9797212.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!