分JSP基础、JSP指令标识、JSP脚本、注释、JSP动作标示五部分梳理。
JSP(java server pages)是基于Java语言的动态网页技术,相当于ASP和PHP语言。一般而言他以*.JSP为扩展名。JSP可以包含指令标识、HTML、JS、嵌入Java、注释和JSP动作标签等。JSP并不是直接显示给浏览器的,他需要转换和编译的过程。首先JSP转换成java文件,再编译成class文件,最后web容器加载转换后的Servlet实例,处理请求,返回HTML。
JSP指令标识一般在JSP文件顶端,形如<%@ 指令名para=”value” %>。JSP包含page、include和taglib三个指令标识。
其中Page为每个JSP都必须具有的指令标识,用于定义JSP页面相关属性,如编码、内容类型、引用库。它有language、contentType、pageEncoding、import等十三个属性。注意pageEncoding是JSP页面编码格式,ContentType是服务器回应浏览器字符类型Eg.<%@ page language=”java”contentType=”text/html;charset=UTF-8”%>。Include是页面包含指令,将一个JSP页面包含到另一个JSP页面中,且为静态包含,合并后再编译Eg.<%@ include file=”path”%>。Taglib指令标识用于声明一个标签的引用,这些标签是为JSP页面所用的eg.<%@taglib uri=”xxxx” prefix=”c”%>。
JSP脚本注意是三个部分,JSP表达式、声明标识、和脚本程序。JSP表达式为<%=var%>、声明标识为<%!%>,这种是全局变量。脚本程序为<% code %>形式,可以使用JSP内置对象,可以是Java代码。
JSP页面中,可以有三种注释:HTML注释、隐藏注释和代码中的注释。HTML注释是<!—comments -->,其中comments可以使用JSP表达式,并且这个表达式是可以编译运行的。隐藏注释就是JSP代码的注释<%-- comments --%>,这种代码不解析,不传递到浏览器端。JSP代码中的注释与Java注释一样,有//、/**/、/********/三种形式。
JSP动作标识用于请求处理阶段提供信息,如包含其他文件、执行请求转发等。这种JSP动作必须遵守XML标签格式。包含动作标识:<jsp:include page=”file.jsp”/>,这种是动态包含,编译完之后再引进,并且这里page属性可以使用JSP表达式动态变化。动态包含时,执行到这个动作标识时请求转发(非重定向)到被包含页面,执行完成后返回包含页面继续执行,需要注意的是include指令不允许重名变量名,因为是静态编译的。请求转发动作标识:<jsp:forward page=”url”/>,这种转发是服务器端操作,浏览器不知道地址变化,所以浏览器地址栏不会发生变化。此外还有子动作标示<jsp:param name=”” value=””/>,子动作标识主要用于其它动作标识内部。