最新【Java】Spring MVC程序开发_创建一个java的spring mvc应用,Java基础面试常常死在这几个问题上

最后

金三银四马上就到了,希望大家能好好学习一下这些技术点

学习视频:

大厂面试真题:

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

@RequestMapping("sayhi")
@ResponseBody
public 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")
@ResponseBody
public String sayHi() {
    return "你好 世界";
}

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

}


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


##### 3.1.3 @RequestMapping是post 还是 get请求?


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


我们可以指定方法类型


![在这里插入图片描述](https://img-blog.csdnimg.cn/856ed64caa1c4ab98f6938ac6e99f3c3.png)


##### 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;
}


访问的结果是:


![在这里插入图片描述](https://img-blog.csdnimg.cn/aff74a3d99a54a499a0294c30bd7fec0.png)


##### 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 设置参数必传


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


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


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


![在这里插入图片描述](https://img-blog.csdnimg.cn/83a2d39227954d98b6bcd30cd1cf2cf3.png)


##### 3.2.6 @RequestBody接收JSON对象


![在这里插入图片描述](https://img-blog.csdnimg.cn/79317a1d92034842a8570e4e5cea4367.png)


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


![在这里插入图片描述](https://img-blog.csdnimg.cn/a1b62bf304b54fa181f85554956e29bb.png)


##### 3.2.7 获取URL当中的参数@PathVarible


代码实现:



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


地址填写方法:


![在这里插入图片描述](https://img-blog.csdnimg.cn/f62d35dd0468484cb268a0e3dd55c483.png)


##### 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 返回静态页面




# 总结

三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。

*   **第一个是算法**

关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。

而且,**我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本**

**《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题**

![最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?](https://img-blog.csdnimg.cn/img_convert/c46b8dda13b2ef2a3c8ac51aac739fe6.webp?x-oss-process=image/format,png)

**《算法的乐趣》共有23个章节:**

![最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?](https://img-blog.csdnimg.cn/img_convert/dd7a80abf3c2133a75ce10e6a0d8aea2.webp?x-oss-process=image/format,png)

![最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?](https://img-blog.csdnimg.cn/img_convert/2c43e0f2064aab175aa746159949073e.webp?x-oss-process=image/format,png)

*   **第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)**

基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)

![最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?](https://img-blog.csdnimg.cn/img_convert/d267d2b3a844a8ee14bd9fede990b9ab.webp?x-oss-process=image/format,png)

*   **第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)**

![最新出炉,头条三面技术四面HR,看我如何一步一步攻克面试官?](https://img-blog.csdnimg.cn/img_convert/8825a77f5ca2eef95f58d4b9feaad758.webp?x-oss-process=image/format,png)

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)**

[外链图片转存中...(img-vB3i0rQz-1715653654634)]

> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值