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

电商网站建设制作办公家具网站建设费用

电商网站建设制作,办公家具网站建设费用,做家常菜网站,国外自建站好做吗大家好,我叫小帅今天我们来继续Spring Boot的内容。 文章目录 1. 获取JSON对象2. 获取URL中参数PathVariable3.上传⽂件RequestPart3. 获取Cookie/Session3.1 获取和设置Cookie3.1.1传统获取Cookie3.1.2简洁获取Cookie 3. 2 获取和存储Session3.2.1获取Session&…

大家好,我叫小帅今天我们来继续Spring Boot的内容。

文章目录

  • 1. 获取JSON对象
  • 2. 获取URL中参数@PathVariable
  • 3.上传⽂件@RequestPart
  • 3. 获取Cookie/Session
    • 3.1 获取和设置Cookie
      • 3.1.1传统获取Cookie
      • 3.1.2简洁获取Cookie
    • 3. 2 获取和存储Session
      • 3.2.1获取Session(1)使⽤ HttpServletRequest
      • 3.2.2简洁获取 Session(1) @SessionAttribute(value = "username",required = false)
      • 3.2.2简洁获取 Session(2)
  • 4. 获取Header
    • 4.1传统获取 header
    • 4.2简洁获取 Header (@RequestHeader("User-Agent") 里面参数是header里面的键值对的Key)


1. 获取JSON对象

接收JSON对象, 需要使⽤ @RequestBody 注解,作用是这个 方法或者类是返回正文

但是@RestController = @RequestBody + @Controller所以我们使用@RestController就可以。

代码:

@RestController
@RequestMapping("/test")
public class test {//produces参数是返回JSON字符串@RequestMapping(value = "/getUser", produces = "application/json")public String getUser() {User user = new User("111111", "111111");return user.toString();//字符串的方式返回}//consumes参数是传过来JSON字符串(可以是格式化的JOSN字符串)@RequestMapping(value = "/setUser",produces = "application/json", consumes = "application/json")public String setUser(String name, String password) {User user = new User(name, password);return user.toString();}
}

后端正确接收了
通过Fiddler观察⼀下请求参数效果:
get:
在这里插入图片描述

post:
在这里插入图片描述


2. 获取URL中参数@PathVariable

path variable: 路径变量

和字⾯表达的意思⼀样, 这个注解主要作⽤在请求URL路径上的数据绑定
默认传递参数写在URL上,SpringMVC就可以获取到.

后端实现代码:

@RequestMapping("/get/{name}/{password}")public String method8(@PathVariable String name,@PathVariable("name") String password){return "解析路径:name:" + name + ",password:" + password;}

是postman发送请求:
在这里插入图片描述


3.上传⽂件@RequestPart

后端代码实现:

    @RequestMapping("getFile")public String pushFile(@RequestPart("file") MultipartFile file) throws IOException {//获取文件名称String fileName = file.getOriginalFilename();return fileName;}

效果:

在这里插入图片描述
上传成功了。


3. 获取Cookie/Session

理解cookie

HTTP 协议⾃⾝是属于 “⽆状态” 协议.
“⽆状态” 的含义指的是:
默认情况下 HTTP 协议的客⼾端和服务器之间的这次通信, 和下次通信之间没有直接的联系.

但是实际开发中, 我们很多时候是需要知道请求之间的关联关系的.
例如登陆⽹站成功后, 第⼆次访问的时候服务器就能知道该请求是否是已经登陆过了.

在这里插入图片描述
上述图中的 “令牌” 通常就存储在 Cookie 字段中。
比如说,我现在访问了csdn,现在我又退了出去,这个时候浏览器就自动保存了一个身份标识。
在这里插入图片描述
理解Session

我们先来了解⼀下什么是会话,就是对话的意思。
在这里插入图片描述
会话是⼀个客⼾与服务器之间的不中断的请求响应. 对客⼾的每个请求,服务器能够识别出请求来⾃于同⼀个客⼾. 当⼀个未知的客⼾向Web应⽤程序发送第⼀个请求时就开始了⼀个会话.当客⼾明确结束会话或服务器在⼀个时限内没有接受到客⼾的任何请求时,会话就结束了.

Session是服务器为了保存⽤⼾信息⽽创建的⼀个特殊的对象.

服务器需要清楚的区分每个请求是属于哪个⽤⼾, 也就是属于哪个会话, 就需要在服务器这边记录每个会话以及与⽤⼾的信息的对应关系.
在这里插入图片描述
Session的本质就是⼀个 “哈希表”, 存储了⼀些键值对结构. Key 就是SessionID, Value 就是⽤⼾信息(⽤⼾信息可以根据需求灵活设计).

在这里插入图片描述

  1. 当⽤⼾登陆的时候, 服务器在 Session 中新增⼀个新记录, 并把 sessionId返回给客⼾端. (通过HTTP 响应中的 Set-Cookie 字段返回).
  2. 客⼾端后续再给服务器发送请求的时候, 需要在请求中带上 sessionId. (通过 HTTP 请求中的Cookie 字段带上).
  3. 服务器收到请求之后, 根据请求中的 sessionId在 Session 信息中获取到对应的⽤⼾信息, 再进⾏后续操作.找不到则重新创建Session, 并把SessionID返回。

在这里插入图片描述

Cookie 和 Session 的区别

  1. Cookie 是客⼾端保存⽤⼾信息的⼀种机制. Session 是服务器端保存⽤⼾信息的⼀种机制.
  2. Cookie 和 Session之间主要是通过 SessionId 关联起来的, SessionId 是 Cookie 和 Session 之间的桥梁。
  3. cookie 和 Session 经常会在⼀起配合使⽤. 但是不是必须配合。
  1. 完全可以⽤ Cookie 来保存⼀些数据在客⼾端. 这些数据不⼀定是⽤⼾⾝份信息, 也不⼀定是SessionId。
  2. Session 中的sessionId 也不需要⾮得通过 Cookie/Set-Cookie 传递, ⽐如通过URL传递.

3.1 获取和设置Cookie

3.1.1传统获取Cookie

代码:

    @RequestMapping("/getCookie")public String method10(HttpServletRequest request, HttpServletResponse response){// 获取所有 cookie 信息Cookie[] cookies = request.getCookies();//打印Cookie信息StringBuilder builder = new StringBuilder();if (cookies!=null){for (Cookie ck:cookies) {builder.append(ck.getName()+":"+ck.getValue());}}return "Cookie信息:"+builder;}

解释:

Spring MVC是基于 Servlet API 构建的原始 Web 框架, 也是在Servlet的基础上实现的

HttpServletRequest , HttpServletResponse 是Servlet提供的两个类, 是Spring MVC⽅法的内置对象. 需要时直接在⽅法中添加声明即可.

HttpServletRequest对象代表客⼾端的请求, 当客⼾端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的⽅法,可以获得客⼾端请求的所有信息.

HttpServletResponse对象代表服务器的响应. HTTP响应的信息都在这个对象中, ⽐如向客⼾
端发送的数据, 响应头, 状态码等. 通过这个对象提供的⽅法, 可以获得服务器响应的所有内容

看看效果:

在这里插入图片描述

此时没有设置Cookie, 通过浏览器访问: http://127.0.0.1:8080/test/getCookie,得到Cookie为null

我们设置⼀下Cookie的值,键盘f12
在这里插入图片描述
再次访问:
在这里插入图片描述
从这个例⼦中, 也可以看出Cookie是可以伪造的, 也就是不安全的, 所以使⽤Cookie时, 后端需要进⾏Cookie校验


3.1.2简洁获取Cookie

    @RequestMapping("/getCookie2")public String cookie(@CookieValue("cdm") String cdm) {return "Cookie:" + cdm;}

效果:
在这里插入图片描述

3. 2 获取和存储Session

Session是服务器端的机制, 我们需要先存储, 才能再获取
Session 也是基于HttpServletRequest 来存储和获取的

Session的存储
代码:

//存储Session@RequestMapping("/setSession")public String setSession(HttpServletRequest request) {// 获取Session对象HttpSession session = request.getSession();if (session != null) {session.setAttribute("username", "java");}return "session 存储成功";}

解释:

void setAttribute(String name, Object value): 使⽤指定的名称绑定⼀个对象到该 session 会话

效果:

在这里插入图片描述

获取Session

获取Session有两种⽅式:

  1. HttpSession getSession(boolean create);
  2. HttpSession getSession();

HttpSession getSession(boolean create): 参数如果为 true, 则当不存在会话时新建会话; 参数如果为 false, 则当不存在会话时返回 null
HttpSession getSession(): 和getSession(true) 含义⼀样, 默认值为true


3.2.1获取Session(1)使⽤ HttpServletRequest

    //存储Session@RequestMapping("/setSession")public String setSession(HttpServletRequest request) {// 获取Session对象HttpSession session = request.getSession();if (session != null) {session.setAttribute("username", "java");}return "session 存储成功";}//获取session@RequestMapping("/getSession")public String session(HttpServletRequest request) {// 如果 session 不存在, 不会⾃动创建HttpSession session = request.getSession(false);String username = null;if (session != null && session.getAttribute("username") != null) {username = (String) session.getAttribute("username");}return "username:" + username;}

Object getAttribute(String name): 返回在该 session 会话中具有指定名称的对象,如果没有指定名
称的对象,则返回 null.

HttpServletRequest request 如果 session 不存在, 不会⾃动创建
在这里插入图片描述

效果:
在这里插入图片描述


3.2.2简洁获取 Session(1) @SessionAttribute(value = “username”,required = false)

代码:

    //获取session@RequestMapping("/getSession2")public String getSession2(@SessionAttribute(value = "username",required = false)String username) {//获取到session字符串,直接返回return "username:" + username;}

解释:value是:获取username的值,required是:没有Session对象时,不创建,返回null
效果:
在这里插入图片描述


3.2.2简洁获取 Session(2)

代码:

    //获取session@RequestMapping("/getSession3")public String getSession3(HttpSession session) {//获取到session对象String username = (String)session.getAttribute("username");return "username:" +  username;}

解释:HttpSession session获取到session对象
效果:
在这里插入图片描述


4. 获取Header

4.1传统获取 header

获取Header也是从 HttpServletRequest 中获取

效果:
在这里插入图片描述
通过Fiddler观察, 获取的User-Agent是否正确
在这里插入图片描述


4.2简洁获取 Header (@RequestHeader(“User-Agent”) 里面参数是header里面的键值对的Key)

在这里插入图片描述
比如说获取User-Agent:

代码:

    //获取header@RequestMapping("/getUserAgent2")public String getUserAgent2(@RequestHeader("User-Agent") String userAgent) {return "User-Agent" + userAgent;}

在这里插入图片描述
再比如获取Host
在这里插入图片描述
好了,今天就到在这里,感谢观看。

http://www.yayakq.cn/news/866927/

相关文章:

  • 一级A做爰片秋欲浓网站做漆包线的招聘网站
  • 揭阳有哪家网站制作公司一个域名一个ip做多个网站
  • 垂直网站建设方案书公司网站模板怎么写
  • 购物类网站上海装潢设计
  • 中山网站制作费用南宁网站制作-中国互联
  • 网络公司网站创建电商平面设计师
  • 推广计划怎么做百度关键词怎么优化
  • 苏州网站开发建设服务旅行社网站建设的目的
  • 徐州做网站企业网站开发的几种语言
  • 怎么做阿里巴巴国际网站首页把网站做二维码
  • 浅谈网站建设个人网站模板打包下载
  • 网站建设 软件开发的公司排名vs2008做网站
  • 做问卷调查用哪个网站好济南源聚网络公司
  • 济南网站开发公司排名企业邮箱购买价格
  • 永久打开本网站的微分销平台到底哪个比较好
  • 兰州装修公司口碑排名苏州优化哪家公司好
  • 扬州手机网站建设wordpress手机端网站模板下载
  • 国外免费空间网站申请网站开发pc版与手机版
  • 做网站需要购买网站空间吗营销软文100字
  • 网站建设公司发展理念网站制作添加视频
  • 百度seo公司整站优化知名网络公司
  • 上海企业都用什么网站diy定制软件
  • 昆明网站制作的方法横泉水库建设管理局网站
  • 网站建设合同用交印花税做盗版电影网站后果
  • 百度网站免费优化软件下载图书馆网站建设方案设计论文
  • 做网站 套模板 后端台州本地做网站的
  • 网站制作模版资讯网站 怎样 增强用户粘度
  • 做seo网站优化价格天津建设工程信息网如何投标报名
  • 论述电子商务网站建设的流程上海品牌全案设计公司
  • 西安网站建设麦欧科技网页设计字体颜色代码