1、jsp概述--Java Server Page
概念:JSP是java的服务器端页面技术,它是servlet的升级版本。
作用:生成动态页面。
2、基本语法:
1)脚本元素
1.1)表达式脚本:语法:<%= 表达式 %>
作用:向页面展示结果
注意:表达式的结尾不能书写“;”,%与=不能有空格
2.2)声明脚本:语法:<%!........%>
作用:用于声明变量和函数
注意:不能调用函数,需要配合表达式脚本来完成函数的调用;%与!之间不能有空格;
3.3)普通脚本:语法:<%.................%>
作用:用于书写分支语句、循环语句等普通的java代码
注意:脚本元素之间不允许有交叉嵌套、脚本元素与html标签不能交叉使用
小案例如下:
<%@page language="java" import="java.util.*" pageEncoding="utf-8" errorPage="error.html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="refresh" content="1">
</head>
<body>
<%
for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
%>
<span style="color:#<%=Long.toHexString((Math.round(Math.random()*100000))) %>"><%=i%>*<%=j%> = <%= i*j %> </span>
<%
if(i == j){break;}
%>
<%
}
%>
<br/>
<%
}
%>
<hr/>
</body>
</html>
运行结果:
3、JSP与Servlet的关系
当jsp被加载的时候,jsp会被解析成一个servlet,存放路径:D:\apache-tomcat-8.0.50\work\Catalina\localhost\bz1\org\apache\jsp
注:声明脚本定义的变量,被翻译成实例变量(成员变量)
普通脚本中的变量,会被翻译成局部变量
html标签,被翻译成out.write(html标签)
表达式脚本,被翻译成out.write(表达式)
4、指令元素
作用:可以定义一些jsp页面的原始规则,比如编码格式、引入外部资源等;会被服务器解释执行,但是不会产生任何内容输出到网页中,也就是说对客户端浏览器不可见的。
4.1)页面指令
语法:<%@ page 属性=”属性值“(一共15个,下面介绍几个常用的)>
定义位置:在jsp页面的顶部
属性说明:language:指定当前jsp支持的语言;目前只支持java
import:导入一个包,如:import = "java.util.*,java.text.*"
pageEncoding:jsp翻译到.java文件时的编码格式
contentType:相当于servlet中的response.setContentType(.....),响应的格式MIME
session:是否自动创建session,tomcat5之前默认session=false,tomcat6之后,默认是session=true
errorPage:指定jsp出现异常时,跳转的错误页面
isErrorPage:指定当前页面是否作为错误页面,值为true|false
isELIgnored:指定当前jsp页面是否忽略EL表达式,值为true|false
buffer:设置jsp的out输出对象使用的缓冲区大小,默认是8KB,且单位只能是KB.建议使用8的倍数
autoFlush:设置JSP页面缓存满时,是否自动刷新缓存,默认是true;如果为false,则存满时将抛出异常
4.2)标签指令:指明该页面所使用的标签库,同时并引用标签库
语法:<%@ taglib uri="资源的位置" prefix="别名/前缀名"%>
如:<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core">
4.3)包含指令
语法:<%@ include file="资源的路径"%>
特点:这种包含成为静态包含。包含的是源文件,被包含页面与包含页面不能有变量命名冲突;
原因:当使用这个标签时,服务器会将包含与被包含页面解析为一个.java文件
5、动作元素
5.1)包含动作
语法:<jsp:include page="资源路径">
特点:这种称为动作包含,包含的是各个页面的执行结果,在包含于被包含页面之间不存在变量命名冲突问题。
原因:服务器解析文件时分开解析,并不会解析为一个.java文件
5.2)转发动作
语法:<jsp:forward page=“目标资源的路径”></jsp:forward>