Java Web实战详细教程(五)JSP语法详解

        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指令
  • include指令
  • taglib指令

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的// 、 /****/形式的注解。

おすすめ

転載: blog.csdn.net/GodBlessYouAndMe/article/details/120719889