一、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 |
这么码字也太费劲了