01【SpringMVC快速入门】

news2024/11/24 11:13:54

文章目录

  • 01【SpringMVC快速入门】
  • 一、SpringMVC快速入门
    • 1.1 SpringMVC概述
      • 1.1.1 SpringMVC是什么
    • 1.2 SpringMVC环境搭建
      • 1.2.1 创建web项目
      • 1.2.2 Maven依赖:
      • 1.2.3 配置web.xml
      • 1.2.4 SpringMVC配置
      • 1.2.5 编写Controller
      • 1.2.6 编写视图页面


01【SpringMVC快速入门】

一、SpringMVC快速入门

1.1 SpringMVC概述

1.1.1 SpringMVC是什么

SpringMVC是Spring为表现层提供的基于 MVC 设计理念的优秀的 Web 框架,SpringMVC 已经成为目前最主流的 MVC 框架之一, 从 Spring3.0 的发布, 就已全面超越 Struts2,成为最优秀的 MVC 框架。它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful 编程风格的请求。

  • SpringMVC在三层架构中的位置:

在这里插入图片描述

1.2 SpringMVC环境搭建

1.2.1 创建web项目

创建一个web项目,引入依赖

在这里插入图片描述

1.2.2 Maven依赖:

<dependencies>
    <!--包含Spring环境和SpringMVC环境-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.2.9.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-api</artifactId>
        <version>8.5.71</version>
    </dependency>

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.18</version>
    </dependency>
</dependencies>

webmvc依赖中包含有spring和springmvc所依赖的jar;

在这里插入图片描述

1.2.3 配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">

    <!--spring核心(前端控制器)-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <!--
            拦截规则:
                1) `.xxx`:后缀拦截,只要符合这个后缀的请求都会交给SpringMVC
                2) `/`: 除了JSP之外,所有的请求都交给SpringMVC管理(包括静态资源)
                3) `/*`: 所有的请求都交给SpringMVC管理
        -->
        <!--只有*.form后缀的请求才会进入springmvc-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

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

    <context:component-scan base-package="com.dfbz"/>

    <!--开启springmvc驱动(开启一些高级功能)-->
    <mvc:annotation-driven/>
</beans>
  • 配置文件说明:

注意:默认的SpringMVC配置文件放在WEB-INF下,名为{servlet-name}-servlet.xml

{servlet-name}指的是,核心控制器配置的名字

如:dispatcherServlet-servlet.xml

当请求被springmvc处理时,springmvc会去默认路径下加载xxxx-servlet.xml核心配置文件

但是我们在开发中一般都是把配置文件写在classes下的,我们可以在web.xml中设置springmvc配置文件的路径

<!--spring核心(前端控制器)-->
<servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--配置springmvc配置文件的位置-->
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc.xml</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <!--只有*.form后缀的请求才会进入springmvc-->
    <url-pattern>/</url-pattern>
</servlet-mapping>

1.2.5 编写Controller

package com.dfbz.controller;

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

@Controller
public class HelloController{

    // 代表此方法的访问路径为/hello.form
    @RequestMapping("/hello.form")
    public ModelAndView hello(){

        ModelAndView mav=new ModelAndView();
        mav.addObject("msg","Hello SpringMVC!");
        mav.setViewName("/hello.jsp");

        return mav;
    }
}

1.2.6 编写视图页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    System.out.println("JSP脚本渲染了!");
%>
<h1>${msg},欢迎您!</h1>
</body>
</html>

访问:http://localhost:8080/hello.form

在这里插入图片描述
查看控制台:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/52742.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高等数学(第七版)同济大学 习题10-4 (前7题)个人解答

高等数学&#xff08;第七版&#xff09;同济大学 习题10-4&#xff08;前7题&#xff09; 函数作图软件&#xff1a;Mathematica 1.求球面x2y2z2a2含在圆柱面x2y2ax内部的那部分面积.\begin{aligned}&1. \ 求球面x^2y^2z^2a^2含在圆柱面x^2y^2ax内部的那部分面积.&\e…

设置Oracle表空间只读

如果对表存储的规划较好&#xff0c;将业务相关的表都放在几个表空间里&#xff0c;可以通过设置表空间只读的方式&#xff0c;让这些表只读&#xff1a; alter tablespace <tablespace name> read only; 解除只读&#xff1a; alter tablespace <tablespace name>…

2023年软考备考,软件设计师知识点速记,速看

2023上半年软考中级软件设计师知识点速记分享给大家&#xff0c;快来一起打卡学习吧&#xff01; 1、码制的表示 2、浮点数的表示 &#xff08;1&#xff09;浮点数格式 阶码决定范围&#xff0c;阶码越长&#xff0c;范围越大&#xff1b; 尾数决定精度&#xff0c;尾数越…

Android编写一个视频监控App

Android编写一个视频监控App 很久没写app了&#xff0c;小项目需要写一个rtmp拉流的视频监控app&#xff0c;简单记录一下。 参考&#xff1a;Android实现rtmp推拉流摄像头&#xff08;三&#xff09;_空空7的博客-CSDN博客_android rtmp拉流 相关库 引用外部库首先添加这个…

C_C++文件,字符串和控制台格式化处理总结

在实际业务开发中经常会用到文件&#xff0c;字符串和控制台格式化操作&#xff0c;格式化操作无非就是将数据转成指定格式存储在文件或者字符串&#xff0c;或者显示在控制台上&#xff0c;或者反过来。本篇结合实际工作将C/C语言中常用的文件&#xff0c;字符串和控制台常用格…

[附源码]Python计算机毕业设计Django高血压分析平台

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

数据抓取-bs4、XPath、pyquery详细代码演示

数据抓取-bs4、XPath、pyquery 一般抓取某个网站或者某个应用的内容&#xff0c;内容分为两个部分 非结构化的文本&#xff1a;HTML文本 结构化的文本&#xff1a;JSON、XML 非结构化的数据常见的解析方式有&#xff1a;XPath、CSS选择器、正则表达式 XPath语言 XPath是X…

golang知识点整理

目录 1、goroutine GMP模型 2、goroutine阻塞的处理 3、goroutine内存泄漏 4、map原理、扩容 5、go内存管理 6、go的gc 1、goroutine GMP模型 1. G代表一个goroutine对象&#xff0c;每次go调用的时候&#xff0c;都会创建一个G对象 2. M代表一个线程&#xff0c;每次创建…

JavaScript和Node.js的关系

JavaScript和Node.js的关系 JavaScript是一门编程语言&#xff08;脚本语言&#xff09;&#xff0c;JavaScript以前是在浏览器里执行的&#xff0c;需要浏览器里的JavaScript引擎&#xff0c;Firefox有叫做Spidermonkey的引擎&#xff0c;Safari有JavaScriptCore的引擎&#x…

第2章物理层——2.数据通信基础知识

一.数据通信系统模型 一个通信系统可以划分为三大部分: 源系统&#xff08;发送端&#xff09;&#xff0c;传输系统&#xff08;传输网络&#xff09;&#xff0c;目的系统&#xff08;接收端&#xff09; [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传…

GIS工具maptalks开发手册(二)03-02——示例之json格式添加绘制工具、渲染点、文字和多个面

GIS工具maptalks开发手册(二)03-02——示例之json格式添加绘制工具、渲染点、文字和多个面 layer参数——https://maptalks.org/maptalks.js/api/0.x/Layer.html 1、json格式渲染点和面 效果-json格式渲染点和面 代码 index.html <!DOCTYPE html> <html> <…

spring boot使用自定义过滤器实现接口认证

spring boot使用自定义过滤器实现接口认证自定义过滤器创建FilterConfig类加密 解密 验证CipherFilter其他工具类AES 128 加密工具bean未加载前获取bean接口效果swagger访问Apipost 错误请求Apipost 正确请求自定义过滤器 创建MyFilter 类 去实现Filter接口 根据业务逻辑&…

(Git) git使用入门学习

文章目录打开基本操作拉代码常用指令设置用户查看历史版本分支管理配置公钥基于VS CodeEND打开 Git Bash Here 即打开命令行的形式 基本操作 拉代码 # git clone 地址 $ git clone https://gitee.com/heaven-sent-lotus/test.git常用指令 # 查看状态 git status# 添加到工作区…

数学建模学习(109):几行代码训练几十种机器学习模型

由于本专栏不是专门讲解机器学习的,因此我想该专栏的读者在机器学习模型的实践和理论上是比较薄弱的。 我想大家在经历过数学建模比赛,一定发现机器学习的模型是一定会出现的。无论是哪一场数学建模比赛,一定有一个题是用机器学习的。虽然前面的文章中,讲解了几篇机器学习…

JS实现二叉排搜索树

二叉树中的节点最多只能有两个子节点&#xff1a;一个是左侧子节点&#xff0c;另一个是右侧子节点。而二叉搜索树又可以简称BST&#xff0c;它是二叉树的一种&#xff0c;但是只允许你在左侧节点存储&#xff08;比父节点&#xff09;小的值&#xff0c;在右侧节点存储&#x…

FX粒子(Niagara系统)、顶点法线材质函数、材质参数集——雪和简单地形材质积雪效果

雪 一、利用FX——Niagara系统创建粒子&#xff0c;模板选择 喷泉粒子模板 二、删除不需要的模块 球体位置发射、初始的向上速度、拖拽等和雪无关的模块删除。 三、添加需要的模块并设置 需要大范围降雪故用box location&#xff08;5000,5000,2000&#xff09;&#xff0c;…

Pycharm中使用远程JupyterLab以及JupyterHub登录问题

文章目录需求分析登录网页JupyterHubPycharm配置远程JupyterHub一点思考需求分析 在之前的文章中我们讨论了如何使用Pycharm连接远程服务器并进行调试&#xff0c;Pycharm中SSH、SFTP连接远程服务器编辑调试全面手把手教程&#xff0c;成功在Pycharm中添加了远程Python解释器&…

docker 实战命令集合

目录 docker 基本命令 查看docker的信息 查看docker的版本 docker镜像管理命令 查找镜像 拉取镜像 查看本地仓库的镜像 查看镜像的详细信息 删除本地仓库的镜像 将镜像文件打包 读取打包过后的镜像文件 登入docker hub 推送镜像到dockerHub docker容器管理命令 创…

Keras深度学习入门篇

Keras深度学习入门篇 第一部分&#xff1a;机器学习基础 一、机器学习的四个分支 监督学习 分类回归序列生成&#xff0c;给定一张图像&#xff0c;预测描述图像的文字语法树预测&#xff0c;给定一个句子&#xff0c;预测其分解生成的语法树目标检测&#xff0c;给定一张图…

CTFShow re3

先查一下&#xff0c;没包&#xff0c;64位 IDA看伪代码 再看循环 可以测出i5时v16为e560 而想让v160xffff&#xff0c;只需要ffff-e560就能得到v17[6] 1a9f 所以flag就是1a9f&#xff01;&#xff01; 等下为什么啊我没懂啊 回到前面 v19既没有赋值也没有输入&#xff0…