对应关系如下:

Java python
Spring boot Flask

import javax.servlet.http.HttpServletRequest;
HttpServletRequest.getServletContext().setAttribute("name", "Thymeleaf模板引擎");

from flask import g
import javax.servlet.http.HttpSession;
HttpSession.setAttribute()
from flask import session

import org.springframework.web.context.request.WebRequest;

webRequest.setAttribute("books", books, RequestAttributes.SCOPE_REQUEST);

return {'returnCode': 0, 'returnValue': returnValue}
Thymeleaf Jinja2

完整代码举例如下:

package org.fkit.thymeleaftest.controller;import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.fkit.thymeleaftest.domain.Book;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.WebRequest;@Controller
public class ThymeleafController {/** 保存数据到作用范围域,用于测试Thymeleaf表达式访问数据* */@RequestMapping("/regexptest")public String regexptest(HttpServletRequest request,HttpSession session){System.out.println(request.getParameter("loginName"));System.out.println(request.getParameter("password"));//接受页面请求中的参数(这里其实是视图函数)
//接收参数后直接打印,其实这里应该扩展为去数据库进行校验request.setAttribute("book", "疯狂Spring Boot讲义");// 保存数据到session作用范围域当中session.setAttribute("school", "疯狂软件");// 保存数据到ServletContext(application)作用范围域当中request.getServletContext().setAttribute("name", "Thymeleaf模板引擎");return "success1";}/** 保存数据到作用范围域,用于测试Thymeleaf的条件判断* */@RequestMapping("/iftest")public String iftest(WebRequest webRequest){// 保存数据到request作用范围域,Spring MVC更推荐使用WebRequestwebRequest.setAttribute("username", "fkit", RequestAttributes.SCOPE_REQUEST);webRequest.setAttribute("age", 21, RequestAttributes.SCOPE_REQUEST);webRequest.setAttribute("role", "admin", RequestAttributes.SCOPE_REQUEST);
//s:变量名称
//o:变量取值
//role:变量return "success2";}/** 保存数据到作用范围域,用于测试Thymeleaf的循环获取数据* */@RequestMapping("/eachtest")public String eachtest(WebRequest webRequest){// 模拟数据库数据保存到List集合List<Book> books = new ArrayList<>();//        下面将对象初始化以后加入列表books.add(new Book(1, "疯狂Java讲义-补充", "java.jpg", "李刚 编著", 109.00));books.add(new Book(2, "轻量级Java EE企业应用实战", "ee.jpg", "李刚 编著", 108.00));books.add(new Book(3, "Spring+MyBatis应用实战", "SpringMyBatis.jpg", "疯狂软件 编著", 58.00));books.add(new Book(4, "疯狂Android讲义", "android.jpg", "李刚 编著", 108.00));books.add(new Book(5, "疯狂Ajax开发", "ajax.jpg", "李刚 编著", 79.00));// 保存数据到request作用范围域webRequest.setAttribute("books", books, RequestAttributes.SCOPE_REQUEST);/*这里的数据是通过thymeleaf传递到网页上*/
//       这里“books”是与html页面对应的变量名
//      上面的webRequest是用来设置传递给html的变量的return "success3";}}

关于上述三个java的thymeleaf用法的具体区别,也可以参考[1]

Springboot中的容器到底是什么意思呢?

我们想必听过docker,也就是一个系统里面再做一个系统,

所以Spring boot中的容器概念其实类似于Javaweb版本的docker.

Reference:

[1]Difference of 3 xxx.setAttribute()

springboot中三种xxxx.setAttribute()并与python中flask作对应比较+容器的通俗理解相关推荐

  1. java中三种转string的方法_java中int,char,string三种类型的相互转换

    如何将字串 String 转换成整数 int? int i = Integer.valueOf(my_str).intValue(); int i=Integer.parseInt(str); 如何将 ...

  2. python中常见的三种选择结构_在Python中,实现多分支选择结构的最佳方法是

    在Python中,实现多分支选择结构的最佳方法是 答:if-elif-else 绘制建筑平面图时,被剖切的墙用 线绘制,定位轴线用 线绘制 答:粗实 细点画 智慧职教: 下列关于书写住院病历的叙述不正 ...

  3. VMWare学习总结(2)——VMware中三种网络连接的区别

    1.概述 大家在安装完虚拟机后,默认安装了如下图的两块虚拟网卡--VMnet1和VMnet8,其中VMnet1是host网卡,用于host方式连接网络:VMnet8是NAT网卡,用于NAT方式连接网络 ...

  4. Spring Boot 中三种跨域场景总结

    文章目录 1.什么是跨域 2.解决方案 2.1 存在的问题 3.SpringSecurity 3.1 方式一 3.2 方式二 4.OAuth2 5.小结 跨域这个问题松哥之前写过文章,但是最近收到小伙 ...

  5. pl/sql中三种游标循环效率对比

    pl/sql中三种游标循环效率对比 - Oracle数据库栏目 - 红黑联盟 http://www.2cto.com/database/201307/224636.html 转载于:https://b ...

  6. 简单介绍Lua中三种循环语句的使用

    今天小编就为大家分享一篇关于Lua中三种循环语句的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 Lua的循环和C语言的循环的语法其实差不多,所以, ...

  7. zynq学习03 zynq中三种实现GPIO的方式

    http://m.blog.csdn.net/article/details?id=52123465 http://blog.chinaaet.com/songhuangong/p/43084 本文介 ...

  8. C#中三种定时器对象的比较

    ·关于C#中timer类 在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类里 3.定义在System.Tim ...

  9. VMware vSphere中三种磁盘:精简置备/厚置备置零/厚置备延迟置零

    有时候我们可能会遇到这样几种现象:虚拟机置备100G,但是平台上却显示虚拟机使用了500G存储? 平台上看到所有虚拟机加起来才3T,存储上5T的空间却没了,严重的还导致所有虚拟机宕机. 为啥?都是&q ...

最新文章

  1. Mongo北京大会3月3号召开!报名抢注火爆进行中!(免费)
  2. Celery组件架构介绍
  3. 学习,才是最好的投资~
  4. python线程通信 消息传递_Python并发编程之线程消息通信机制/任务协调(四)
  5. 聚焦2016:关于语音识别、图像识别及大数据
  6. python速学_60分钟Python快速学习(给发哥一个交代)
  7. OpenCV-图像处理(23、直方图均衡化)
  8. 算法4(一、递归学习)
  9. “一键淘宝”将淘宝网店免费转移到手机客户端教程
  10. 我工作第五年的学习与读书之法
  11. html怎么在图中加字,用HTML代码在图片上加字
  12. bbys_tu_2016(ret2text)
  13. PHP动态网站开发期末试卷,《PHP动态网站开发实例教程》课程考核方案
  14. pr如何处理音效_PR音乐音效处理教程 Premiere Pro CC Essential Sound
  15. poj日记(3295)
  16. 常用二极管IN4148和单片机驱动的一些关系
  17. HttpClient4.4.1模拟登录知乎
  18. mshtml与System.Windows.Forms.HtmlElement
  19. word表格导出html代码,(网页源代码中的表格数据怎么导出excel)如何将把从WORD、EXCEL中复制的内容转换成HTML源代码,再通过网页表单提交上传到数据库?...
  20. 数学不好,可以当程序员么?

热门文章

  1. slatstack Master的配置
  2. wxPython布局管理
  3. 页面的div中有滚动条,js实现刷新页面后回到记录时滚动条的位置
  4. Web---JSP-EL表达式
  5. Pyhton 一行代码求Fibonacci第N项
  6. Combination Sum 和Combination Sum II
  7. 介绍语义HTML5元素(感觉这个html5是一个不错的方向!)
  8. 【转】从哈希存储到Bloom Filter
  9. mac下使用n管理node版本
  10. html溢出宽度控制,html - 具有固定宽度列的HTML / CSS表(如果内容溢出,则滚动) - 堆栈内存溢出...