模板渲染其实不难哦!

session 和 cookie的工作流程:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MYQfjFDj-1631456742637)(/Users/cola/Downloads/无标题的笔记本 (1)]-15.jpg)

session的持久化?

  • 将session存储到服务器数据库或者文件中的行为

上传文件

  • 构造form表单 添加enctype=“multipart/form-data”
  • 服务端创建Part对象对应一个上传文件
  • Servlet加注解@MutipartConfig
  • req.getPart("");

服务器数据库操作

  1. 和数据库进行连接
  2. 拼装SQL
  3. 执行SQL
  4. 如果是查找操作,就需要遍历结果集
  5. 释放资源

Thymeleaf模板渲染

  1. 先引入依赖Thymeleaf
  2. 实现一个模板文件
    • 循环标签:th:each=“变量 :${服务器变量}”
    • th:text="${变量名.字段名}"
    • th:href="${ ’ ’ + }"
  3. 通过Thymeleaf在Java代码中(服务器端渲染模板)
  4. 使用Thymeleaf前要对它进行初始化
    • 创建一个engine(引擎)对象:TemplateEngine engine = new TemplateEngine();
    • 创建一个resolver(解析器)对象: ServletContextTemplateResolver resolver = new ServletContextTemplateResolver(getServletContext()) ;
    • 给resolver设置一些属性,找到html模板
      1. resolver.setCharactereEncoding(“utf-8”);
      2. resolver.setPrefix("/WEB-INF/template/ ");
      3. resolver.setSuffix(".html");
  5. 把resolver 和 engine关联起来:engine.setTemplateResolver(resolver);
  6. 将渲染过程放进init()方法中只加载一次,这时要将private TemplateEngine engine = null; 变成成员变量
  7. 构造页面
    • WebContext webcontext = new WebContext(req,resp,getServletContext()); 将要替换的数据收集起来,统一传给模板引擎
    • webcontext.setVariable(“html变量”,对应服务器端变量);
    • 进行渲染:engine.process(“对应页面名称”, webcontext);
  8. 为了让每个功能都能用到模拟引擎,另外创建一个ThymeleafConfig 并加上@WebListener注解,让它实现ServletContextListener,然后实现其中的方法,我们只关注contextInitialized这个方法
    • 将初始化的模板代码放入
    • ServletContextTemplateResolver resolver = new ServletContextTemplateResolver(sce.getServletContext()) ;
    • 把初始化好的engine对象交给ServletContext来保管:SerlvetContext context = sce.getServletContext();设置context.setAttribute(“engine”,engine); 在需要调用的页面,TemplateEngine engine = (TemplateEngine)getContextServlet().getAttribute("engine ");
上一篇:Vue使用Cascader级联选择器数据回显


下一篇:Tomcat中使用servletContext