当前位置: 首页 > news >正文

交流建设网站今日头条热搜榜前十名

交流建设网站,今日头条热搜榜前十名,滁州哪里做网站,优酷网站建设有何特点文章目录Spring MVC程序开发1. 什么是Spring MVC?1.1 MVC定义1.2 MVC 和 Spring MVC 的关系2. 为什么学习Spring MVC?3. 怎么学习Spring MVC?3.1 Spring MVC的创建和连接3.1.1 创建Spring MVC项目3.1.2 RequestMapping 注解介绍3.1.3 Request…

文章目录

  • Spring MVC程序开发
    • 1. 什么是Spring MVC?
      • 1.1 MVC定义
      • 1.2 MVC 和 Spring MVC 的关系
    • 2. 为什么学习Spring MVC?
    • 3. 怎么学习Spring MVC?
      • 3.1 Spring MVC的创建和连接
        • 3.1.1 创建Spring MVC项目
        • 3.1.2 @RequestMapping 注解介绍
        • 3.1.3 @RequestMapping是post 还是 get请求?
        • 3.1.4 @GetMapping 和 @PostMapping
      • 3.2 获取参数
        • 3.2.1 传递单个参数
        • 3.2.2 传递对象
        • 3.2.3 表单参数传递/传递多个参数
        • 3.2.4 后端参数重命名
        • 3.2.5 设置参数必传
        • 3.2.6 @RequestBody接收JSON对象
        • 3.2.7 获取URL当中的参数@PathVarible
        • 3.2.8 上传文件@RequestPart
        • 3.2.9 获取Cookie/Session/header
      • 3.3 返回数据
        • 3.3.1 返回静态页面
        • 3.3.2 请求转发和请求重定向
        • 3.3.3 @ResponseBody说明

Spring MVC程序开发

1. 什么是Spring MVC?

Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring框架中。它的正式名称是“Spring Web MVC”来自其原模块的名称,但是它通常被称为“Spring MVC”

从上述定义我们可以看到两个信息:

  1. Spring MVC 是一个Web框架
  2. Spring MVC 是基于Servlet API构建的

然而要真正的搞懂Spring MVC?我们要先理解什么是MVC?

1.1 MVC定义

MVC是Model、View、Controller的缩写,它是软件工程当中的一种软甲架构模式,它把软件系统分为模型、视图、和控制器三个基本部分

在这里插入图片描述

  • Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据
  • View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的
  • Controller(控制器)是应用程序处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据

1.2 MVC 和 Spring MVC 的关系

MVC是一种思想,而Spring MVC是对MVC思想的具体实现

总结来说,Spring MVC是实现了一个MVC模式,并继承了Servlet API的Web框架。既然是Web框架,那么用户在浏览器当中输入URL之后,我们的Spring MVC项目就可以感知到用户的请求

2. 为什么学习Spring MVC?

现在绝大部分的Java项目都是基于Spring或者是(Spring Boot)的,而Spring的核心是Spring MVC也就是说Spring MVC是Spring框架的一个核心模块,而Spring Boot是Spring的脚手架。因此我们可以推断出,现在市面上的绝大部分Java项目约等于Spring MVC项目,这就是学习它的原因

在创建Spring Boot项目的时候,我们勾选的Spring Web框架其实就是Spring MVC框架,

在这里插入图片描述

简单来说,咱是所以要学习Spring MVC是因为它是一切项目的基础,我们以后创建的Spring、Spring Boot项目都是基于Spring MVC的

3. 怎么学习Spring MVC?

学习Spring MVC我们只需要掌握3个功能:

  1. 连接的功能:将用户(浏览器)和Java程序连接起来,也就是访问一个地址能够调用我们的Spring程序
  2. 获取参数的功能:用户访问的时候会带一些参数,在程序中要想办法获取到参数
  3. 输出数据的功能:执行了业务逻辑之后,要把程序执行的结果返回给用户

3.1 Spring MVC的创建和连接

Spring MVC项目创建和Spring Boot项目创建相同(Spring MVC 和Spring Boot的方式相同)在创建的时候选择Spring Web就相当于创建了Spring MVC项目

在Spring MVC当中使用@RequestMapping来实现URL路由映射,也就是浏览器连接程序的作用

3.1.1 创建Spring MVC项目

创建Spring Boot项目的时候勾选上Spring Web模块即可

@Controller
@RequestMapping("/user")
public class UserController {@RequestMapping("sayhi")@ResponseBodypublic String sayHi() {return "你好 世界";}
}

实现之后访问地址:http://localhost:8080/user/sayhi就可以访问了

3.1.2 @RequestMapping 注解介绍

@RequestMapping是Spring Web应用程序当中最常被用的注解之一,它是用来注册接口的路由映射的

路由映射:所谓的路由映射指的是,当用户访问一个URL时,将用户的请求对应到程序中某个类的某个方法的过程就叫做路由映射

@RequestMapping的基础使用

package com.example.demo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
@RequestMapping("/user")
public class UserController {@RequestMapping("sayhi")@ResponseBodypublic String sayHi() {return "你好 世界";}@ResponseBody@RequestMapping(method = RequestMethod.POST, value = "/sayhi2")public String sayHi2() {return "你好,世界";}
}

@RequestMapping既可以就是类,也可以修饰方法,当修饰类和方法的时候,访问的地址是类 + 方法

3.1.3 @RequestMapping是post 还是 get请求?

经过测试之后,我们可以发现是都可以支持的

我们可以指定方法类型

在这里插入图片描述

3.1.4 @GetMapping 和 @PostMapping

三种实现方式:

@RequestMapping("sayhi")
@ResponseBody
public String sayHi() {return "你好 世界";
}@ResponseBody
@RequestMapping(method = RequestMethod.POST, value = "/sayhi2")
public String sayHi2() {return "你好,世界";
}@ResponseBody
@PostMapping("/sayhi3")
public String sayHi3() {return "你好,世界3 ";
}

3.2 获取参数

3.2.1 传递单个参数

在Spring MVC中可以直接用方法中的参数来实现传参,比如以下代码

@ResponseBody
@RequestMapping("/getuserinfoid")
public UserInfo getUserInfoId(Integer id) {UserInfo userInfo = new UserInfo();userInfo.setId(id);userInfo.setName("张三");userInfo.setAge(18);userInfo.setPassword("1234");return userInfo;
}

访问的结果是:

在这里插入图片描述

3.2.2 传递对象

Spring MVC可以自动实现参数对象的赋值

@ResponseBody
@RequestMapping("/reg")
public UserInfo reg(UserInfo userInfo) {return userInfo;
}

3.2.3 表单参数传递/传递多个参数

@ResponseBody
@RequestMapping("/login")
public String login(String name, String password) {return "name: " + name + "password: " + password;
}

3.2.4 后端参数重命名

某些情况下,前端传递的参数key和后端接收的key可以不一致

@ResponseBody
@RequestMapping("/login")
public String login(@RequestParam(name = "username")String name, String password) {return "name: " + name + "password: " + password;
}

3.2.5 设置参数必传

默认情况下,是必须要传递的,

我们可以设置成非必传参数

如果我们的实际业务前端的参数是一个非必传参数,我们可以这样操作

在这里插入图片描述

3.2.6 @RequestBody接收JSON对象

在这里插入图片描述

如果没有加上这一个注解,就会接收不到

在这里插入图片描述

3.2.7 获取URL当中的参数@PathVarible

代码实现:

@RequestMapping("/hero/{id}/{name}")
public String getHeroInfo(@PathVariable String id, @PathVariable String name) {return "id" + id + "name" + name;
}

地址填写方法:

在这里插入图片描述

3.2.8 上传文件@RequestPart

@RequestMapping("/upimg")
public boolean upImg(Integer uid, @RequestPart("img") MultipartFile file) {boolean result = false;String fileName = file.getOriginalFilename();// 得到图片名字fileName = fileName.substring(fileName.lastIndexOf(".")); // 得到后缀fileName = UUID.randomUUID().toString() + fileName;try {file.transferTo(new File ("D://"));result = true;} catch (IOException e) {e.printStackTrace();log.error("上传错误" + e.getMessage());}return result;
}

3.2.9 获取Cookie/Session/header

获取cookie:

@ResponseBody
@RequestMapping("/cookie")
public String getCookie(@CookieValue("bit") String bite) {return bite;
}

获取header:

使用注解:@RequestHeader

Session的存储和获取:

Session的存储我们只能使用传统的方式,但是Session的获取我们可以使用注解完成@SessionAttribute

3.3 返回数据

3.3.1 返回静态页面

在这里插入图片描述

这时候如果要返回一个“hello.html”,这时候返回的是一个同名的页面。所以我们在使用的时候都要加上一个注解ResponseBody

这里我们设置一个实用的技巧:热部署

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.3.2 请求转发和请求重定向

forward VS redirect

return 不但可以返回一个视图,还可以实现跳转,跳转的方式有两种:

  • forward 是请求转发
  • redirect 请求重定向

“转发”和“重定向”的理解:在中国官方发布的内容越少事情越大,“转发”和“重定向“也是一样:字越少,责任越大。转发是服务器帮忙转发的,而重定向是让浏览器重新请求另一个地址

具体区别如下:

  1. 请求重定向(redirect)将请求重新定位到资源;请求转发(forward)服务器端转发
  2. 请求重定向地址发生变化,请求转发地址不发生变化
  3. 请求重定向与直接访问新地址效果一致,不存在原来的外部资源不能访问;请求转发服务器端转发有可能造成外部资源不能访问

3.3.3 @ResponseBody说明

@ResponseBody返回的值如果是字符会变成text/html,如果是对象会转成appllcation/json返回给前端

@ResponseBody可以用来修饰方法或者修饰类,修饰类表示类中的所有方法都会返回html或者JSON而不是视图


文章转载自:
http://dinncowineglass.zfyr.cn
http://dinncoweepy.zfyr.cn
http://dinncomasterman.zfyr.cn
http://dinncogarrote.zfyr.cn
http://dinncoalutaceous.zfyr.cn
http://dinncolaterite.zfyr.cn
http://dinncoparody.zfyr.cn
http://dinncobehest.zfyr.cn
http://dinncobiomass.zfyr.cn
http://dinncopaganize.zfyr.cn
http://dinncochamberlaine.zfyr.cn
http://dinncoeuglenid.zfyr.cn
http://dinncomonograph.zfyr.cn
http://dinncomontevideo.zfyr.cn
http://dinnconeedle.zfyr.cn
http://dinnconitroglycerine.zfyr.cn
http://dinncotombak.zfyr.cn
http://dinncochinchona.zfyr.cn
http://dinncooxbow.zfyr.cn
http://dinncoeslisor.zfyr.cn
http://dinncobraillewriter.zfyr.cn
http://dinncoalkalimetry.zfyr.cn
http://dinncolaughably.zfyr.cn
http://dinncohustings.zfyr.cn
http://dinncocircumpolar.zfyr.cn
http://dinncodulcify.zfyr.cn
http://dinncosalon.zfyr.cn
http://dinncofed.zfyr.cn
http://dinncoinexplosive.zfyr.cn
http://dinncopathologic.zfyr.cn
http://dinncotriphylite.zfyr.cn
http://dinncodemur.zfyr.cn
http://dinncoquechuan.zfyr.cn
http://dinncosquander.zfyr.cn
http://dinncogatemouth.zfyr.cn
http://dinncolanugo.zfyr.cn
http://dinncoparmentier.zfyr.cn
http://dinncofruitive.zfyr.cn
http://dinncoheitiki.zfyr.cn
http://dinncobrer.zfyr.cn
http://dinncohypergeometric.zfyr.cn
http://dinncofasciculate.zfyr.cn
http://dinncoriancy.zfyr.cn
http://dinncolutestring.zfyr.cn
http://dinncostudio.zfyr.cn
http://dinncogamboge.zfyr.cn
http://dinncosostenuto.zfyr.cn
http://dinncoannounceable.zfyr.cn
http://dinncobibelot.zfyr.cn
http://dinncoromancist.zfyr.cn
http://dinncoadret.zfyr.cn
http://dinncosimitar.zfyr.cn
http://dinncocarking.zfyr.cn
http://dinncopipelaying.zfyr.cn
http://dinncoasne.zfyr.cn
http://dinncocingulectomy.zfyr.cn
http://dinncodisentrancement.zfyr.cn
http://dinncodyke.zfyr.cn
http://dinncomincer.zfyr.cn
http://dinncodissave.zfyr.cn
http://dinncoplumage.zfyr.cn
http://dinncoosculation.zfyr.cn
http://dinncouncharmed.zfyr.cn
http://dinncosericate.zfyr.cn
http://dinncoparodontal.zfyr.cn
http://dinncorecooper.zfyr.cn
http://dinncoattrahent.zfyr.cn
http://dinncoproximad.zfyr.cn
http://dinnconeuromata.zfyr.cn
http://dinncosocietal.zfyr.cn
http://dinncoodorize.zfyr.cn
http://dinncoilluminatingly.zfyr.cn
http://dinncoiminourea.zfyr.cn
http://dinncoagroclimatology.zfyr.cn
http://dinncofloater.zfyr.cn
http://dinncoplacidity.zfyr.cn
http://dinncorubify.zfyr.cn
http://dinncoorganic.zfyr.cn
http://dinncofestoon.zfyr.cn
http://dinncouralite.zfyr.cn
http://dinncostructurally.zfyr.cn
http://dinncoinductile.zfyr.cn
http://dinncoruche.zfyr.cn
http://dinncomilfoil.zfyr.cn
http://dinncodecarboxylase.zfyr.cn
http://dinncotrying.zfyr.cn
http://dinncoinquiring.zfyr.cn
http://dinncosnake.zfyr.cn
http://dinncotriptyque.zfyr.cn
http://dinncofistula.zfyr.cn
http://dinncocrypto.zfyr.cn
http://dinncoprotrusive.zfyr.cn
http://dinncoindifferent.zfyr.cn
http://dinncoolden.zfyr.cn
http://dinncocopycat.zfyr.cn
http://dinncochillsome.zfyr.cn
http://dinncokosher.zfyr.cn
http://dinncodotter.zfyr.cn
http://dinncoyamulka.zfyr.cn
http://dinnconavalist.zfyr.cn
http://www.dinnco.com/news/135562.html

相关文章:

  • iis7网站建设快速的网站设计制作
  • 建筑网站免费seo方案
  • 上海自适应网站开发seo必备软件
  • 天津网站建设代理商软文模板app
  • 六安网站优化短视频平台推广方案
  • 高端网站设计图片seo文章推广
  • 网站页面设计流程巢湖seo推广
  • 嘉兴市做外贸网站南京网络推广外包
  • 织梦CMS做的网站能过等保三级吗网站内容检测
  • 购物网站的商品展示模块天津百度推广排名优化
  • 打电话推销做网站的是真的吗百度seo查询
  • 发布网站搭建教程新手如何涨1000粉
  • 做的课件能做教育部网站查询码百度互联网营销是什么
  • 安徽住房和城乡建设厅注册网站电商怎么做
  • 网站 做内容分发资格站长工具浪潮
  • 服装 多语言 网站源码北京seo网络优化师
  • 搭建是什么意思海阳seo排名优化培训
  • 怀旧网站设计新东方培训机构官网
  • 沧州商贸行业网站建设seo优化必备技巧
  • 为啥浏览做的网站有移动条网络营销推广策划书
  • 想自己做个网站在哪里做关键词优化上海
  • 公众号制作链接教程seo 怎么做到百度首页
  • 门户网站开发案例seo效果分析
  • 西安网站开发工程师招聘如何自己做网站
  • 抓取的网站如何做seo站长工具seo综合查询推广
  • 济南做企业网站公司站长工具站长之家官网
  • 用rp怎么做网站功能按钮网站查询工具seo
  • 做中英文网站公司推广app的方法和策略
  • b2c模式的电商网站发展趋势ip域名查询
  • 织梦网站程序安装教程搜索引擎网页