JSP模板引擎

604 阅读3分钟

这是我参与11月更文挑战的第10天,活动详情查看:2021最后一次更文挑战

了解模板引擎

模板引擎(用于Web开发)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。

  • 置换型模板引擎

就是将规定好的文本标记替换为目标内容。这种模板引擎实现简单,除了标签替换之外,很少支持诸如子模板引用、流程控制等功能。置换型模板引擎通常用于业务逻辑不是很复杂的项目,比如生成短信、生成电子邮件,甚至有很多代码生成器也在用它。可以说,置换型模板引擎的思想是整个模板引擎界的基础。

  • 解释型模板引擎

解释型模板引擎的原理还是标记置换。只不过有了解释器的存在,可以支持更加复杂的标记和语法。

  • 编译型模板引擎

它通过解析引擎和一系列的算法将我们定义的模板转换为页面文件,然后直接访问页面文件即可。

模板引擎原理 :

页面:Hello ,<%=name%>

数据:{name:'张三'}

展示的内容  :

常见模板引擎 jsp 、freemarker 、thymeleaf、 velocity

JSP的相关概念及运行过程

概念 Java Server Page(java服务器端页面技术),是Sun公司制定的一种服务器端动态页面生成技术的规范;

JSP的结构 HTML标签 + JAVA代码 ,即在HTML页面中嵌入java代码

JSP 的几种写法

Java代码片段:<%java代码片段;%>

Java代码表达式:<%=java代码表达式%>

Java方法:<%!java的方法%>

三大指令

page指令 

import 用于导包的,可以一次性导入多个包,中间用逗号隔开,也可以使用多次page指令进行导包

pageEncoding 告诉JSP引擎,JSP文件保存的时候应采用的编码格式

contentType 等价于response.setContentType()

errorPage 指向错误处理页面(需要你手动书写错误页面)

isErrorPage 可以写true/false,即定义这个页面是否是错误页面,默认为false;注意,这个属性和上面errorPage属性一般是成对出现的,成对并不是指在一个页面都出现,而是指关联着出现;

session 可以写true/false,默认为true,即表示当前页面是否支持session

isELIgored 可以写true/false,表示这个JSP 是否支持EL表达式,默认为true 

include指令

这个指令里面最主要的属性是file ,用来表示这个页面中包含哪个页面

taglib指令

Taglib指令是定义一个标签库以及自定义标签的前缀

九大对象

七大动作

JSTL的概念 : JSP标准标签库是一个JSP标签集合,它封装了JSP应用的通用核心功能。JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。

JSTL的分类

参考网址 www.runoob.com/jsp/jsp-jst…

EL的概念

expression language 主要是用来简化JSP中的表达式的代码,可以很方便的以标签的形式来代替jsp中的部分java代码,以提高代码的可读性。

语法:${el语句}

Springboot下的JSP的使用

  1. 引入JSP的starter 
  2. 构建JSP目录
  3. 配置JSP和数据库
  4. 让Springboot项目能创建JSP文件
  5. 创建一个JSP文件
  6. 书写controller,并且完成交互
  7. 完成jsp页面数据展示

pom

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>

application.properties

//设置jsp的访问目录
spring.mvc.view.prefix=/WEB-INF/jsp/
//设置jsp文件以什么结尾
spring.mvc.view.suffix=.jsp

controller

@RequestMapping("/hi")
public String sayHi(){
  return "welcome";
}

jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>这是springboot下的jsp</title>
</head>
<body>
welcome to my word
</body>
</html>