SpringMVC——框架概述第一个注解的SpringMVC程序

news/2025/2/24 23:57:53

文章目录:

1.SpringMVC框架的基本说明

2.第一个注解的SpringMVC程序

2.1 IDEA中使用maven创建一个web项目

2.2 在pom.xml中加入相关依赖

2.3 在web.xml中声明DispatcherServlet对象

2.4 创建一个发起请求的jsp页面(index.jsp)

2.5 创建一个普通的类,作为控制器使用,代替之前的servlet

2.6 创建显示处理结果的jsp页面(show.jsp)

2.7 创建springmvc的配置文件

2.8 给web项目配置并启动tomcat,测试!!!

3.项目的整体结构和步骤总结

3.1 整体结构 

3.2 步骤总结

4.使用SpringMVC框架处理web请求的顺序


1.SpringMVC框架的基本说明

SpringMVC是基于Spring的,是Spring中的一个模块,专门用来做web开发使用的。 

SpringMVC 也叫 Spring web mvc。是 Spring 框架的一部分,是在Spring3.0 后发布的。基于 MVC 架构,功能分工明确、解耦合。

SpringMVC也是一个容器,使用IoC核心技术,管理界面层中的控制器对象。SpringMVC的底层就是servlet,以servlet为核心,接收请求、处理请求,显示处理结果给用户。在此之前这个功能是由Servlet来实现的,现在使用SpringMVC来代替Servlet行驶控制器的角色和功能。

其核心Servlet是:DispatcherServlet

三层架构:用户发起请求--------SpringMVC--------Spring--------MyBatis--------MySQL


2.第一个注解的SpringMVC程序

2.1 IDEA中使用maven创建一个web项目

2.2 在pom.xml中加入相关依赖

<!-- springmvc依赖 -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.2.5.RELEASE</version>
</dependency>
<!-- servlet依赖 -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
</dependency>
<!-- jsp依赖 -->
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>javax.servlet.jsp-api</artifactId>
    <version>2.3.1</version>
</dependency>

2.3 在web.xml中声明DispatcherServlet对象

<?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">

    <!-- 声明springmvc的核心对象 -->
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 自定义配置文件的位置 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <!-- tomcat服务器创建对象的顺序,数值(大于等于0)越小,创建对象的时间就越早 -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <!--
            把一些请求交给指定的servlet处理
            1.使用扩展名方式,格式:*.xxx, xxx是自定义的扩展名
              例如:*.do  *.action  *.mvc , 不能使用 *.jsp!!!
            2.使用斜杠 "/"
        -->
        <!-- 意思是将 *.do 的请求交给 DispatcherServlet 处理 -->
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

</web-app>

2.4 创建一个发起请求的jsp页面(index.jsp)

<%@ page contentType="text/html;charset=utf-8" language="java" %>
<html>
<head>
    <title>第一个springmvc</title>
</head>
<body>
    <a href="some.do">发起some.do的请求</a>
</body>
</html>

2.5 创建一个普通的类,作为控制器使用,代替之前的servlet

package com.songzihao.controller;

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

/**
 *  @Controller: 创建控制器对象
 *  控制器: 叫作后端控制器,自定义的类处理请求的
 *  位置: 在类的上面,表示创建此类的对象,对象放在springmvc容器中
 */
@Controller
public class MyController {

    /**
     *  定义方法,处理请求.相当于之前servlet中的doGet()
     *  springmvc框架,使用控制器类中的方法,处理请求
     *  1.方法的形参: 表示请求中的参数
     *  2.方法的返回值: 表示本次请求的处理结果
     *
     *  @RequestMapping: 请求映射
     *  属性: value,请求中的uri地址,唯一值,以"/"开头
     *  位置: 1) 在方法的上面(必须)   2) 在类定义的上面(可选)
     *  作用: 把指定的请求交给指定的方法处理
     */
    @RequestMapping(value = "/some.do")
    public ModelAndView doSome() {
        //使用这个方法处理请求,能处理请求的方法叫作控制器方法
        ModelAndView mv=new ModelAndView();
        //添加数据
        mv.addObject("msg","处理了some.do的请求");
        mv.addObject("fun","执行了doSome方法");
        //指定视图
        mv.setViewName("/WEB-INF/view/show.jsp");
        //返回结果
        return mv;
    }
    /**
     *  当框架调用完doSome()方法后,得到返回值ModelAndView对象mv,处理mv对象里的数据model和视图view
     *  mv.addObject("msg","处理了some.do的请求"); 相当于 对数据执行 request.setAttribute("msg","处理了some.do的请求");
     *  mv.setViewName("/show.jsp"); 相当于 对视图执行 request.getRequestDispatcher("/show.jsp").forward(request,response);
     */
}

2.6 创建显示处理结果的jsp页面(show.jsp)

<%@ page contentType="text/html;charset=utf-8" language="java" %>
<html>
<head>
    <title>show</title>
</head>
<body>
    /WEB-INF/view/show.jsp,显示request作用域中的数据<br/>
    <h3>msg数据:<%=request.getAttribute("msg")%></h3>
    <h3>fun数据:${fun}</h3>
</body>
</html>

2.7 创建springmvc的配置文件

<?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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">

    <!-- springmvc的配置文件 -->
    <!-- 声明组件扫描器 -->
    <context:component-scan base-package="com.songzihao.controller" />

</beans>

2.8 给web项目配置并启动tomcat,测试!!!


3.项目的整体结构和步骤总结

3.1 整体结构 

3.2 步骤总结

springmvc接收请求,显示请求的处理结果
servlet的实现方式:jsp发起请求-----servlet接收请求------jsp显示处理结果

步骤:
1. 新建web项目

2. 加入web相关的依赖(spring-webmvc依赖、servlet依赖、jsp依赖)

3. 声明springmvc核心对象DispatcherServlet
   1) DispatcherServlet是一个Servlet对象
   2) DispatcherServlet叫作前端控制器(front controller)
   3) DispatcherServlet的作用:在servlet的init()方法中,创建springmvc容器对象;作为servlet接收请求

4.创建一个jsp(index.jsp),发起请求

5.创建一个普通的类,作为控制器使用,代替之前的servlet
  1) 在类的上面加入注解 @Controller
  2) 在类中定义方法,方法的上面加入注解 @RequestMapping。表示此方法是处理请求的,相当于servlet中的doGet、doPost

6.创建显示处理结果的jsp(show.jsp)

7.创建springmvc的配置文件
  1) 声明组件扫描器(面对注解)
  2) 声明视图解析器(可选)

8.使用逻辑视图名称(对应步骤中的7.2)

4.使用SpringMVC框架处理web请求的顺序

 


http://www.niftyadmin.cn/n/711884.html

相关文章

PHP多次调用Mysql存储过程报错解决办法

PHP多次调用Mysql数据库的存储过程会出现问题&#xff0c;主要问题为存储过程中执行多次SQL语句不能一一释放导致的&#xff0c;网上找了一些解决办法&#xff0c;比如使用 multi_query 然后一个一个释放&#xff0c;但是发现根本不适合我们的项目&#xff0c;我们使用CI框架写…

8小时用html5打造vncviewer,安装VNC Server实现图形化访问的小技巧

安装VNCServer实现图形化访问的小技巧&#xff0c;许多人看到这个问题的时候&#xff0c;都觉得头很大&#xff0c;不知道如何下手&#xff0c;而且在操作过程中&#xff0c;总会犯一些这样那样的错误&#xff0c;下面卖贝商城的小编就具体介绍一下&#xff0c;不是很难哦!一. …

mysql集群场景_MYSQL集群的搭建

三台服务器实现主主从搭建:第一台服务器ip:192.168.1.106第二台服务器ip:192.168.1.195第三台服务器ip:192.168.1.150mysql主从的应用场景:数据分布 负载均衡 高可用和容错 备份现在三台服务器都安装mysql开发环境 主从系统要一致 mysql版本和io磁盘开始搭建:首先得先建立一个复…

90 《阿里巴巴 java开发手册》关于MySQL的规约(建表规约)

建表规约 【强制】 1、表达是与否的概念的字段&#xff0c;必须使用 is_xxx 的方式来命名&#xff0c;数据类型是 unsigned tinyint &#xff08;1表示是&#xff0c;0表示否&#xff09;。 说明&#xff1a;任何字段如果为非负数&#xff0c;则必须是 unsigned 。 注意&…

怎样将ppt转换成pdf

为什么80%的码农都做不了架构师&#xff1f;>>> 怎样将ppt转换成pdf 最近朋友遇到了件麻烦事&#xff0c;公司领导让他将去年每个月编写的的仓库货物文件整理出来&#xff0c;制定要转成PDF格式文件&#xff0c;而大部分的文件都是PPT格式的&#xff0c;如何实现PPT…

实施微服务架构的关键技术

大家都在提微服务架构&#xff0c;微服务架构到底是什么&#xff1f;它有哪些特点和设计模式&#xff1f;我们在打造微服务架构过程中&#xff0c;这些设计模式在实战当中如何应用&#xff1f;数据的一致性应该如何保证&#xff1f;今天我将针对上述疑问分享一下我的思考。 微服…

SpringMVC——@RequestMapping定义请求规则,控制器接收请求参数的三种方式

文章目录&#xff1a; 1.RequestMapping定义请求规则 1.1 指定模块名称 1.2 对请求提交方式的定义 1.3 以上两种规则的小实例 2.控制器接收请求参数的三种方式 2.1 逐个接收请求参数&#xff1a;请求中的参数名和控制器方法的形参名一样 2.2 逐个接收请求参数&#xff…

php mysql设计中验证码的实现_PHP简单验证码功能机制实例详解

本文实例讲述了PHP简单验证码功能机制。分享给大家供大家参考&#xff0c;具体如下&#xff1a;网站的安全性是开发者不可忽视的一个问题&#xff0c;目前使用最多的一种可以提高网站安全性的方法就是使用验证码功能机制&#xff0c;有的仅仅使用一个几位数字字母混乱的验证码&…