zoukankan      html  css  js  c++  java
  • spring MVC框架(入门篇)-1

    Spring Web MVC 简称(Spring MVC),是一个Spring提供给web应用的一个框架设计

    1.MVC是什么?

    MVC框架是一种理念,被广泛应用到各类语言和开发中。

    M-MODEL(模型层)

    V-VIEW(视图层)

    C-COntroller(控制层-或者叫控制器)

    2.MVC有什么作用?

    MVC可以解耦各个模块

    3.Spring MVC 的各个模块扮演什么样的角色?

    Servlet扮演控制器(Controller)

    Java Bean 是一个专门操作数据库组件的模型层(MODEL)

    JSP主要是展示给用户看的,扮演一个视图的角色(VIEW)

    4.Spring MVC的核心是什么?

    Spring MVC的核心在于其流程,这是使用Spring MVC框架的基础,Spring MVC是一种基于Servlet的技术,

    它提供了核心控制器(DispatcherServlet)和相关的组件

    并制定了松散的结构,以适合各种场景的需求。

    DispatcherServlet:叫做核心控制器,

         Spring C 层框架的核心是 DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即 使用了一种被称为Front Controller 的模式

    Spring 的C 层框架使用了后端控制器来、映射处理器和视图解析器来共同完成C 层框架的主要工作。

    spring 的C 层框架还真正地把业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象


    了一种被称为Front Controller 的模式

    Dispatcher:调度者,调度员,调度程序

    servlet的作用:拦截HTTP页面发送过来的请求

    5.控制层(control)的作用是什么?

    1. 封装web 请求为一个数据对象、
    2. 调用业务逻辑层来处理数据对象、
    3. 返回处理数据结果及相应的视图给用户

    下面是一个简单的实例

    1.创建一个web project 不是java project(spring MVC是在web项目应用的,不是java项目)

      注意:创建的时候将web.xml选中

    2.添加spring mvc的支持

    3.配置web.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     3 xmlns="http://java.sun.com/xml/ns/javaee" 
     4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     5 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
     6 id="WebApp_ID" version="3.0">
     7   <display-name>my_web_spring</display-name>
     8   <!-- 项目欢迎页,首页 -->
     9   <welcome-file-list>
    10     <welcome-file>index.jsp</welcome-file>
    11   </welcome-file-list>
    12   <!-- 配置ContextLoaderListener 用来初始化Spring IOC容器 -->
    13   <listener>
    14     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    15   </listener>
    16   <!-- 配置Spring Ioc配置文件路径 -->
    17   <context-param>
    18     <param-name>contextConfigLocation</param-name>
    19     <param-value>classpath:applicationContext.xml</param-value>
    20   </context-param>
    21   
    22   
    23   <!-- 注意:Spring MVC框架会根据Servlet-name的配置,找到/WEB-INF/spmvc-servlet.xml作为配置文件载入web工程中 -->
    24     <servlet>
    25         <servlet-name>spmvc</servlet-name>
    26         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    27         <!-- 下面的代码表示Dispatcher在服务器启动的时候就初始化 -->
    28         <load-on-startup>1</load-on-startup>
    29     </servlet>
    30     <!-- servlet的拦截配置 -->
    31     <servlet-mapping>
    32         <servlet-name>spmvc</servlet-name>
    33         <!-- 拦截以   后缀为“do”为结尾的请求 -->
    34         <url-pattern>*.do</url-pattern>
    35     </servlet-mapping>
    36 </web-app>

    在上面我们配置了DispatcherServlet 

    DispatcherServlet 说白了其实就是一个Servlet ,它是对请求进行转发的核心Servlet 。

    在这里即所有.do 的请求将首先被DispatcherServlet 处理,

    而DispatcherServlet 它要作的工作就是对请求进行分发(也就是说把请求转发给具体的Controller )。

    可以简单地认为,它就是一个总控处理器,但事实上它除了具备总控处理理器对请求进行分发的能力外,还与spring 的IOC 容器完全集成在一起,从而可以

    更好地使用spring 的其它功能。在这里还需留意 < servlet-name > spmvc </ servlet-name > ,下面
    4.建立 spmvc-servlet.xml 文件,它的命名规则: servlet-name-servlet.xml 。

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
     3 <beans>
     4     <!--在spring中一切资源都被视为bean -->
     5     <bean id="simpleUrlHandlerMapping"
     6         class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
     7         <property name="mappings">
     8             <props>
     9                 <prop key="/my.do">MyControl</prop>
    10             </props>
    11         </property>
    12     </bean>
    13     <!-- 说明: my.do 的请求将给名为 MyControl 的 bean 进行处理。 -->
    14     <bean id="MyControl" class="com.pojo.MyController"></bean>
    15 
    16 
    17 </beans>

    5.编写com.test.MyController.java文件

    package com.pojo;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.Controller;
    
    public class MyController implements Controller{
    
        @Override
        public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
            // TODO Auto-generated method stub
            ModelAndView mv = new ModelAndView("index.jsp");
            mv.addObject("message", "喂喂喂,是我");
    
            return mv;
        }
    
    }

    6.编写index.jsp文件

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <%
     3 String path = request.getContextPath();
     4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
     5 %>
     6 
     7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     8 <html>
     9   <head>
    10     <base href="<%=basePath%>">
    11     
    12     <title>My JSP 'index.jsp' starting page</title>
    13     <meta http-equiv="pragma" content="no-cache">
    14     <meta http-equiv="cache-control" content="no-cache">
    15     <meta http-equiv="expires" content="0">    
    16     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    17     <meta http-equiv="description" content="This is my page">
    18     <!--
    19     <link rel="stylesheet" type="text/css" href="styles.css">
    20     -->
    21   </head>
    22   
    23   <body>
    24     This is my JSP page. <br>
    25     ${message}
    26   </body>
    27 </html>

    7.启动服务器

    因为在web.xml中设置了欢迎页,所以访问项目时直接访问的是index.jsp

     在地址栏中输入my.do

    8.备注

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     3 xmlns="http://java.sun.com/xml/ns/javaee" 
     4 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     5 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
     6 id="WebApp_ID" version="3.0">
     7   <display-name>my_web_spring</display-name>
     8   <!-- 项目欢迎页,首页 -->
     9   <welcome-file-list>
    10     <welcome-file>index.jsp</welcome-file>
    11   </welcome-file-list>
    12   <!-- 配置ContextLoaderListener 用来初始化Spring IOC容器 -->
    13   <listener>
    14     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    15   </listener>
    16   <!-- 配置Spring Ioc配置文件路径 -->
    17   <context-param>
    18     <param-name>contextConfigLocation</param-name>
    19     <param-value>classpath:applicationContext.xml</param-value>
    20   </context-param>
    21   
    22   
    23   <!-- 注意:Spring MVC框架会根据Servlet-name的配置,找到/WEB-INF/spmvc-servlet.xml作为配置文件载入web工程中 -->
    24     <servlet>
    25         <servlet-name>spmvc</servlet-name>
    26         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    27         <!-- 下面的代码表示Dispatcher在服务器启动的时候就初始化 -->
    28         <load-on-startup>1</load-on-startup>
    29     </servlet>
    30     <!-- servlet的拦截配置 -->
    31     <servlet-mapping>
    32         <servlet-name>spmvc</servlet-name>
    33         <!-- 拦截以   后缀为“do”为结尾的请求 -->
    34         <url-pattern>*.do</url-pattern>
    35     </servlet-mapping>
    36 </web-app>

    如果乱码,需要设置字符编码 

    
    
  • 相关阅读:
    html和css的重难点知识
    走过的K8S坑
    K8S的安装
    java 工程编码格式由GBK转化成utf-8 (转载)
    spring mvc 后端获得前端传递过来的参数的方法
    表格组件---bootstrapTable
    Spring mvc +ajax 发送邮件
    通过Httpclient工具类,实现接口请求
    spring mvc框架+ ajax实现 文件上传
    element-ui中表格自定义排序
  • 原文地址:https://www.cnblogs.com/xyblogs/p/9024895.html
Copyright © 2011-2022 走看看