SpringMVC第一个helloword项目

news/2024/4/29 0:04:48/文章来源:https://blog.csdn.net/lfyyyyy/article/details/137102902

文章目录

  • 前言
  • 一、SpringMVC是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.创建控制层
    • 3.创建springmvc.xml
    • 4.配置web.xml文件
    • 5.编写视图页面
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

SpringMVC


提示:以下是本篇文章正文内容,下面案例可供参考

一、SpringMVC是什么?

Spring MVC是一种基于Java的Web应用开发框架,它是Spring框架的一部分,用于构建灵活、可扩展的Web应用程序。Spring MVC采用了MVC(Model-View-Controller)的设计模式,将应用程序分为模型、视图和控制器三个部分,以实现松耦合和高内聚的开发方式。

在Spring MVC中,模型(Model)负责处理业务逻辑和数据操作,通常使用POJO(Plain Old Java Object)作为数据模型。视图(View)负责展示数据给用户,可以是JSP、HTML、JSON等格式。控制器(Controller)负责接收用户请求并处理,根据请求的参数和路径选择相应的业务逻辑和视图进行处理。

Spring MVC的核心特性包括:

  1. 基于注解的请求映射:通过注解将请求URL映射到相应的处理方法上,简化了配置和开发过程。
  2. 数据绑定和验证:支持将请求参数绑定到方法参数或模型对象上,并提供了数据验证的功能。
  3. 视图解析和渲染:支持多种视图技术,如JSP、Thymeleaf、Freemarker等,可以根据需求选择合适的视图进行渲染。
  4. 拦截器:提供了拦截器机制,可以在请求处理前后进行一些公共的处理逻辑,如权限验证、日志记录等。
  5. 异常处理:支持全局异常处理,可以统一处理应用程序中的异常,并返回友好的错误信息给用户。
  6. RESTful支持:提供了对RESTful风格的支持,可以方便地开发和维护RESTful API。

二、使用步骤

项目结构为:
在这里插入图片描述

1.引入库

在使用Maven创建webapp项目时需要导入以下依赖

       <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.32</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version></dependency>

2.创建控制层

ModelAndView的构造方法有7个。但是它们都是相通的。这里使用无参构造函数来举例说明如何构造ModelAndView实例。
ModelAndView类别就如其名称所示,是代表了MVC Web程序中Model与View的对象,不过它只是方便您一次返回这两个对象的holder,Model与View两者仍是分离的概念。
最简单的ModelAndView是持有View的名称返回。

代码如下(示例):

//需要实现org.springframework.web.servlet.mvc.Controller这个接口
public class UserController implements Controller {//重写handleRequest方法,返回类型为ModelAndView @Overridepublic ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {ModelAndView mv = new ModelAndView();mv.setViewName("user.jsp");//mv的视图文件位置mv.addObject("name", "张三");//mv传递参数(key:“name”,value:“张三”)mv.addObject("age", 18);//mv传递参数(key:“age”,value:“18”)return mv;}
}

3.创建springmvc.xml

这是SpringMVC的配置文件,是url路径和控制层的映射

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--映射路径 name为映射地址  class为映射的类文件--><bean name="/user" class="com.llf.controller.UserController"/></beans>

4.配置web.xml文件

web.xml文件是配置整个webapp项目的核心文件

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><!--前端控制器--><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--指定spring mvc配置文件的位置  --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><!--拦截所有的请求--><url-pattern>/</url-pattern></servlet-mapping></web-app>

5.编写视图页面

jsp文件就是我们目前的视图界面,在这个界面中可以去渲染我们的数据

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head><title>无敌暴龙战神</title>
</head>
<body>
<label>姓名:${name}
</label><br/>
<label>年龄:${age}
</label>
</body>
</html>

注意在<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>中一定要设置isELIgnored="false",因为jsp默认将el表达式给忽略掉,加上后el表达式才能够渲染到页面上。

在这里插入图片描述
接着我们启动tomcat服务器访问http://localhost:8080/user这个地址,就可以看到上方我们的数据已经渲染到页面上了。


总结

简单介绍了SpringMVC第一个项目的创建及配置,其实SpringMVC的使用有很多配置和参数。感兴趣的可以去官网上查看文档。SpringMVC中文网

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

​python学习之变量类型​

print单纯输中的十种数据类型只需要用print()函数即可&#xff0c;()里面直接写变量名。 下面重点介绍print格式输出&#xff1a; 第一种方法&#xff1a;一个萝卜一个坑&#xff0c;下面的代码中&#xff0c;{0}、{1}、{2}分别表示j,i,j*i&#xff0c;单引号里面是输出格式。…

WPF 多路绑定、值转换器ValueConvert、数据校验

值转换器 valueconvert 使用ValueConverter需要实现IValueConverter接口&#xff0c;其内部有两个方法&#xff0c;Convert和ConvertBack。我们在使用Binding绑定数据的时候&#xff0c;当遇到源属性和目标控件需要的类型不一致的&#xff0c;就可以使用ValueConverter&#xf…

将html文件转化为pdf

1.用浏览器将html文件打开 2.空白处右键点击打印 3.另存为PDF即可

day72Html

常用标签&#xff1a; 分类&#xff1a; 块级标签&#xff1a;独立成行 行级标签&#xff1a;不独立成行&#xff0c;同一行可放多个行级标 注意网页显示时&#xff0c;忽略空白字符,(回车符&#xff0c;空格&#xff0c;tab制表符&#xff09; 一&#xff09;块级标签&#xf…

【MATLAB源码-第20期】基于matlab的短波通信多径信道仿真,多径数目为3,用QPSK来测试误码率效果输出误码率对比图。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 短波通信是一种使用短波频段的无线电通信技术&#xff0c;它具有以下特点&#xff1a; 1. 频段范围&#xff1a;短波通信通常使用3MHz到30MHz之间的频段。这个频段之所以称为“短波”&#xff0c;是因为它的波长相对较短&am…

Prometheus +Grafana +node_exporter可视化监控Linux + windows虚机

1、介绍 待补充 2、架构图 Prometheus &#xff1a;主要是负责存储、抓取、聚合、查询方面。 node_exporter &#xff1a;主要是负责采集物理机、中间件的信息。 3、搭建过程 配置要求&#xff1a;1台主服务器 n台从服务器 &#xff08;被监控的linux或windows虚机&am…

基于js css的瀑布流demo

要实现照片按照瀑布流展示&#xff0c;写个小demo&#xff0c;记录下。 瀑布流实现思路如下&#xff1a; CSS 弹性布局对 3 列按横向排列&#xff0c;对每一列内部按纵向排列 html代码&#xff1a; <div class"content"></div> css代码&#xff1a; …

【leetcode】环形链表的约瑟夫问题

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家刷题&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 点击查看题目 首先我们要明确一点&#xff0c;题目要求我们要用环形链表&#xff0c;所以用数组等是不被允…

网站为什么要选择使用安全加速SCDN?

安全加速SCDN&#xff08;安全内容交付网络&#xff09;是一种网络加速服务&#xff0c;旨在提高网站和应用程序的性能和安全性。它使用专门的技术和基础设施来加速内容传输并保护网站免受网络攻击。 安全加速SCDN可以通过内容缓存、快速传输和动态路由技术来加速网站和应用程…

FPGA时钟资源详解(3)——全局时钟资源

FPGA时钟系列文章总览&#xff1a;FPGA原理与结构&#xff08;14&#xff09;——时钟资源https://ztzhang.blog.csdn.net/article/details/132307564 一、概述 全局时钟是 FPGA 中的一种专用互连网络&#xff0c;旨在将时钟信号分配到 FPGA 内各种资源的时钟输入处。这种设计…

【黑马头条】-day04自媒体文章审核-阿里云接口-敏感词分析DFA-图像识别OCR-异步调用MQ

文章目录 day4学习内容自媒体文章自动审核今日内容 1 自媒体文章自动审核1.1 审核流程1.2 内容安全第三方接口1.3 引入阿里云内容安全接口1.3.1 添加依赖1.3.2 导入aliyun模块1.3.3 注入Bean测试 2 app端文章保存接口2.1 表结构说明2.2 分布式id2.2.1 分布式id-技术选型2.2.2 雪…

【全栈小5】我的创作纪念日

目录 前言机缘收获粉丝和原创个人成就六边形战士 回顾文章原代码代码优化 憧憬 前言 全栈小5 &#xff0c;有幸再次遇见你&#xff1a; 还记得 2019 年 03 月 29 日吗&#xff1f; 你撰写了第 1 篇技术博客&#xff1a; 《前端 - 仿动态效果 - 展开信息图标》 在这平凡的一天&…

Matlab之求直角坐标系下两直线的交点坐标

目的&#xff1a;在直角坐标系下&#xff0c;求两个直线的交点坐标 一、函数的参数说明 输入参数&#xff1a; PointA&#xff1a;直线A上的点坐标&#xff1b; AngleA&#xff1a;直线A的倾斜角&#xff0c;单位度&#xff1b; PointB&#xff1a;直线B上的点坐标&#xf…

Git命令及GUI基本操作

不习惯使用Git命令的可移步下面Git GUI基本操作 Git 常用命令 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch -r 查看本地所有分支 git commit -am "init" 提交并且加注释 git remote add orig…

Linux根据时间删除文件或目录

《liunx根据时间删除文件》和 《Linux 根据时间删除文件或者目录》已经讲述了根据时间删除文件或目录的方法。 下面我做一些补充&#xff0c;讲述一个具体例子。以删除/home目录下的文件为例。 首先通过命令&#xff1a; ls -l --time-style"%Y-%m-%d %H:%M:%S"…

上位机图像处理和嵌入式模块部署(qmacvisual几何测量)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 几何测量是图像处理中经常遇到的一个问题&#xff0c;前面我们曾经讨论过点到直线的距离。不仅如此&#xff0c;qmacvisual还提供了另外三个常用的…

RTSP应用:实现视频流的实时推送

在实现实时视频流推送的项目中&#xff0c;RTSP&#xff08;Real Time Streaming Protocol&#xff09;协议扮演着核心角色。本文将指导你通过安装FFmpeg软件&#xff0c;下载并编译live555&#xff0c;以及配置ffmpeg进行视频流推送&#xff0c;来实现一个基本的RTSP流媒体服务…

Spring Boot 防护 XSS + SQL 注入攻击

XSS跨站脚本攻击 ① XSS漏洞介绍 跨站脚本攻击XSS是指攻击者往Web页面里插入恶意Script代码&#xff0c;当用户浏览该页之时&#xff0c;嵌入其中Web里面的Script代码会被解析执行&#xff0c;从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击&#xff01; ② XSS…

iptables添加端口映射,k8s主机查询不到端口但能访问。

研究原因&#xff1a;k8s内一台主机使用命令查询没有80端口。但通过浏览器访问又能访问到服务。 查询了资料是使用了hostport方式暴露pod端口。cni调用iptables增加了DNAT规则。访问时流量先经过iptables直接被NAT到具体服务去了。 链接: K8s罪魁祸首之"HostPort劫持了我…

单例模式如何保证实例的唯一性

前言 什么是单例模式 指一个类只有一个实例&#xff0c;且该类能自行创建这个实例的一种创建型设计模式。使用目的&#xff1a;确保在整个系统中只能出现类的一个实例&#xff0c;即一个类只有一个对象。对于频繁使用的对象&#xff0c;“忽略”创建时的开销。特点&#xff1a…