????????JSP(Java Server Paeg)本质上是一种将Java语言嵌入写在HTML代码中的技术,这种语言会被称为脚本语言。它最终会被翻译成Servlet,编译成Java类字节码。 ????????通过上一节的例子对比,我们可以很明显的感受到,作为显示层技术,JSP比Servlet更具优势。 ????????大家需要注意的是,在当前的行业显示层开发中,极少会使用JSP技术,一般会使用模板引擎技术,如JSTL+EL(JSP官方标签)、FreeMarker、Thymeleaf(Spring Boot推荐模板引擎),甚至直接使用前后端分离开发技术,不需要后端提供显示层的开发,但学习JSP依然是很有必要的,因为它可以让你了解显示层的技术演进,另外JSP是Java Web的视图层开发的标准(基础、原始)技术,对底层技术的学习,也便于将来学习上层的技术。 ????????JSP语法主要有指令元素、脚本元素、动作元素,其中动作元素在实际开发中已经不在使用,被JSTL取代,已经是被淘汰的技术,故不做介绍。下面介绍主要讲解前两种元素:
1.指令元素
语法如下:
<%@ 属性配置 %>
有三种指令:
page指令
其中page指令,在上一节中已经见识过了,它的作用是
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
????????其中,language是指定脚本语言类型,只能选择java。contentType是设置响应的内容类型,"text/html; charset=utf-8"是设置为HTML文档格式,字符编码是utf-8(影响的是响应时网络传输的字符编码)。pageEncoding是设置本页面可以输入的字符集,如果输入了非该字符集的字符,则该文档无法保存成功。 ????????除了以上三个属性,还有一个import属性应用也非常广泛,如JSP页面中要用到ljava.ang包下的类,则需要使用import属性导入该类,import属性支持一次性导入多个类,中间使用逗号间隔。如:
<%@page import="java.util.List,java.util.ArrayList" %>
????????page指令中还有很多属性,但基本都用不到,初学者可以暂时不用深究。
include指令
????????include指令,可以在当前文件中,引入一个JSP文件或HTML文件。 ????????例如有outer.jsp、innder.jsp页面,其结构、inner.jsp代码如下所示: ????????在outer.jsp页面中,使用include指令代码,代码如下所示,可以实现如代码之下的图的页面效果:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
我是外部JSP
<%@include file="inner.jsp"%>
</body>
</html>
???????? taglib指令 taglib指令是引入标签库,可以使用标签化的模板引擎技术实现显示层技术开发,我们会在后续的JSTL学习中做专门介绍。
2.脚本元素
???????? 脚本元素主要包含:脚本、声明、表达式、注释。 脚本 ????????脚本是写在<%%>中的Java代码,Java SE中的任意Java语法都可以在脚本中书写。如上一节中的交换两个变量的值。
声明 ???????? 其中声明是指声明变量或方法,使用<%!定义变量或方法%>,这种方式定义的变量或方法可以在整个页面使用。 ???????? 但实际上在JSP最常用的脚本中,定义变量、方法可以做到和声明一样的效果,所以"声明"在实际JSP开发中实际上可以完全不使用。
表达式 ???????? <%=表达式%>作用是可以将表达式的值输出到响应内容,和内置对象out.print()方法效果一样。
注释 ???????? <%–注释–%> JSP提供了这样的注释形式,在脚本中,可以任意使用Java的// 、 /****/形式的注解。
|