关于Thymeleaf的总结

190 阅读2分钟

一、JSP

1.JSP简介

JSP全称为Java service pages,直译过来就是【Java服务器端页面】 它本质上是Servlet,所以只能运行在服务器上,不可以直接使用浏览器打开。

2.JSP的工作原理

第一次运行的时候将.jsp文件先翻译成.java文件,然后再编译成.class文件,最后放到JVM中运行。 之后只要修改了代码就需要重复以上步骤【翻译-->编译-->运行】,反之便不需要重复。
代码示例:
<body>
<% int i=1; %><br/>
这是今天的第<%=i%>条代码。
</body>

二、域对象

1.域对象简介

在JSP中总共有四个域对象,它们的作用是用于数据的共享。【在我看来更像是限制共享数据的使用范围】

2.域对象的分类

页面域:pageContext
类型:pageContext
作用范围:仅当前页面有效,离开当前页面失效

请求域:request
类型:HttpServletRequext
作用范围:当前请求有效,离开当前请求失效【只要地址栏不改变便是在同一请求下】

会话域:session
类型:HttpSession
作用范围:当前会话有效【浏览器关闭&跟换便代表关闭了当前会话】

上下文域:application
类型:ServletContext
作用范围:当前web应用正常运行【上下文】有效,web应用关闭或卸载上下文域失效

示例代码:

<h2>域对象</h2>
<%pageContext.setAttribute("key","pageContext");%>
<%request.setAttribute("key","request");%>
<%session.setAttribute("key","session");%>
<%application.setAttribute("key","application");%>
<h2>获取数据</h2>
页面域:<%=pageContext.getAttribute("key")%><br/>
请求域:<%=request.getAttribute("key")%><br/>
会话域:<%=session.getAttribute("key")%><br/>
上下文域:<%=application.getAttribute("key")%><br/>

<%
//转发【测试】
  request.getRequestDispatcher("next.jsp").forward(request,response);
  %>

3. Thymeleaf简介

3.1 为什么使用Thymeleaf

有些情况下【比如查询】需要将servlet中的数据共享到HTML页面中,但是HTML是不支持java代码的书写的,所以我们需要使用Thymeleaf工具,在静态页面上渲染显示动态数据。Thymeleaf实现了前后端的分离。

3.2物理视图和逻辑视图

视图前缀逻辑视图视图后缀物理视图
/pages/user/login.html/pages/user/login.html
/pages/user/login_success.html/pages/user/login_success.html
这么码字也太费劲了