东莞网站推广模板,大连哪有做网站的,网站备案不能更新吗,2022西安最新出入通知SpringWeb项目核心功能总结 文章目录 SpringWeb项目核心功能总结1.浏览器与Java程序的连接#xff08;个人偏好使用RequestMapping#xff09;2.参数的传入3.结果的返回请求转发和请求重定向的区别 核心功能用到的注解#xff1a; RestControllerControllerResponseBodyRequ…SpringWeb项目核心功能总结 文章目录 SpringWeb项目核心功能总结1.浏览器与Java程序的连接个人偏好使用RequestMapping2.参数的传入3.结果的返回请求转发和请求重定向的区别 核心功能用到的注解 RestControllerControllerResponseBodyRequestMapping【GetMapping,PostMapping…】DataRequestParamRequestPartCookieValueSessionAttribute 注解的详细用法在这 MVC常用注解详解 这里是进一步简化和总结,建议先看上边再看这个 1.浏览器与Java程序的连接个人偏好使用RequestMapping
首先注册一级路由指定返回的页面不是静态页面以及加上类注解
然后注册二级路由写具体的代码返回相应的结果
RestController
RequestMapping(/user)
public class UserController {RequestMapping(/sayhi)//二级路由注册public String sayHi(){return hi;}RequestMapping(value /sayhi2,method RequestMethod.POST)public String sayHi2(){return hi;}
} 2.参数的传入
传普通单个参数|多个参数前后端参数名相同和不同含参数类型的影响|cookie|session|文件|JSON对象|header
spring这里传参数和之前是一样的不传的话会得到默认值
package com.example.demo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;RestController
RequestMapping(/user)
public class UserController {RequestMapping(/gp)public String getParam(String name){return name;}RequestMapping(/gp3)public String getParam(HttpServletRequest request,HttpServletResponse response) throws IOException {response.sendRedirect(http://www.javacn.site);return hi;}RequestMapping(/gp4)public String getParam(String name,String password) {return name:password;}RequestMapping(/gp5)public String getParam5(RequestParam(username) String name) {return name;}//获取对象RequestMapping(/reg)public Object getParam9(UserInfo userInfo){return userInfo;}//获取JSON对象RequestMapping(/reg2)public Object reg2(RequestBody UserInfo userInfo){return userInfo;}//从url的path获取参数RequestMapping(/reg3/{name}/{pwd})public Object reg3(PathVariable String name,PathVariable(required false,name pwd) String password){return name:password;}//获取上传文件可以上生产线的代码RequestMapping(/myupload2)public Object upload2(RequestPart(test)MultipartFile file){String fileName UUID.randomUUID()file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(.));File saveFilenew File(F://test//fileName);try {file.transferTo(saveFile);return true;} catch (IOException e) {e.printStackTrace();}return false;}//获取cookieRequestMapping(/getck)public Object getck(CookieValue(value java,required false)String java){return java;}//获取HeaderRequestMapping(gethd)public Object getHeader(RequestHeader(Host)String ht){return ht;}//获取Session更为方便的原来的比这个麻烦一点RequestMapping(getsess)public Object getSession(SessionAttribute(SESSION_KEY)String name){return session:name;}
}传入单个参数不传非基础数据 隐藏参数request,response 多参数按照的名称而不是顺序 前后端参数名不同用RequestParam进行映射参数重命名 表单/用户对象的获取spring web自动实现参数映射拦截器统一处理保证属性名同 package com.example.demo.entity;import lombok.Data;Data
public class UserInfo {private int id;private String name;private String password;private int age;
} JSON对象数据获取和之前不同需要使用RequestBody注解声明 注意JSON对象的模拟发送postman的发送 即通过请求体获取对象 从普通的url的path获取参数还比较常用使用PathVariable这个注解实现【详情页也是使用的一个经典场景】 参数可传可不传需要设置required属性 路由里边的花括号是对参数名敏感的意思 好处1.搜索引擎抓取关键字权重会比较高 2.参数比较少的情况下url更加简洁 获取上传文件RequestPart注解【保存在数据库中使用varchar】 必须使用指定类型接收才能把具体文件流转化图片文档… 注意使用Postman模拟前端图片上传file 有的传到自己服务器项目不多的话有的传到OSS上边的腾讯或阿里专门提供的 获取cookie(请求体)使用CookieValue注解 获取header使用RequestHeader注解 获取session使用SessionAttribute注解
3.结果的返回
静态页面的返回|非静态页面的返回|跳转链接的返回
//加斜杠是从根目录返回不加斜杠是从当前页面找静态页面package com.example.demo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;Controller
RequestMapping(test)
public class TestController {//返回静态界面RequestMapping(/index)public Object getIndex(){return /index.html;}//返回json对象RequestMapping(/reg2)public Object reg2(RequestBody UserInfo userInfo){return userInfo;}//请求重定向RequestMapping(index1)public String index1(){return redirect:/index1.html;}//请求转发RequestMapping(index2)public String index2(){return forward:/index2.html;}
}返回静态页面使用比较少因为前后端分离 返回非静态页面JSONHTML…框架会自动适配 返回跳转【请求重定向和请求转发实现方式有很多】使用比较少因为前后端分离但是有时也会有的 还可以通过reponse对象的sendRedirect方法…
请求转发和请求重定向的区别
字越少事越大
请求转发字比较少需要客户端执行跳转而请求重定向什么也不干只是告诉客户端去哪访问。