JSP的运⾏原理,基本语法,指令和隐式对象的使⽤,掌握
JSP动作元素的使⽤
先说下怎样编写⼀个JSP⽂件
点开你的web项⽬,点开WebContent-----new-----JSP File
把编码格式都改为utf-8
在body标签⾥可以写内容,⽐如My First JSP HelloWorld
运⾏结果
这说明HTML中的元素可以被JSP容器所解析,实际上,JSP只是在原有的HTML⽂件中加⼊了⼀些具有Java特点的代码。
JSP运⾏原理
执⾏JSPservice()⽅法来处理客户端的请求,对于每⼀个请求,JSP容器都会创建⼀个新的线程来处理它。
如果多个客户端同时请求JSP⽂件,则JSP容器也会创建多个线程,使得每⼀个客户端请求都对应⼀个线程。
这种多线程的执⾏⽅式可以极⼤的降低对系统资源的要求,提⾼系统的并发量并缩短时间。
JSP的基本语法
JSP脚本元素
JSP脚本元素是指嵌套在<%和%>之中的⼀条或多条Java程序代码,通过JSP脚本元素可以将Java代码嵌⼊HTML页⾯中,所有可执⾏的Java代码,都可以通过JSP脚本来执⾏。
JSP脚本元素主要包含:
(1)JSP Scriptlets。JSP Scriptlets是⼀段代码段,当需要使⽤Java实现⼀些复杂的操作或控制时,可以使⽤它。
JSP Scriptlets语法格式如下:
<% java 代码(变量、⽅法、表达式)%>
在JSP Scriptlets中声明的变量是JSP页⾯的局部变量,调⽤JSP Scriptlets时,会为局部变量分配内存空间,调⽤结束后,释放局部变量占有的内存空间。
(2)JSP声明语句
JSP声明语句⽤于声明变量和⽅法,它以“<%!”开始,以“%>”结束,其语法格式如下
<%!
定义的变量或⽅法等
%>
在JSP声明语句中的都是成员⽅法、成员变量、静态⽅法、静态变量、静态代码块等。
在JSP声明语句中声明的⽅法在整个JSP页⾯内有效,但是在⽅法内定义的变量只在该⽅法内有效。
在⼀个JSP页⾯中可以有多个JSP声明语句,单个声明中的Java语句可以是不完整的,但是多个声明组合后的结果必须是完整的Java语句。直接上代码,看效果
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JSP声明语句</title>
</head>
<%!
int a = 1,b=2;//定义两个变量a,b
%>
<%!
public String print(){当前页面脚本发生错误
String str = "itcast";
return str;
}
%>
<body>
<%
out.println(a+b);//输出两个变量的和
%>
<br />
<%
out.print(print());//调⽤print()⽅法,输出其返回值
%>
</body>
</html>
执⾏结果如下
3.JSP表达式
JSP表达式⽤于将程序数据输出到客户端格式<%= expression %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP声明语句</title>
</head>
<%!
int a = 1, b = 2; //定义两个变量a,b
%>
<%!
public String print() { //定义print⽅法
String str = "itcast"; //⽅法内定义的变量str
return str;
}
%>
<body>
<%=a+b %><br />
<%=print() %>
</body>
</html>
JSP注释
<!-- 这个是HTML注释 -->
<%--这个是JSP注释 --%>
JSP指令
1.page指令
<%@ page 属性名1=“属性值1” 属性名2=“属性值2”。。。。%>
language指明解释该JSP⽂件时采⽤的语⾔,默认为Java
import 指定JSP页⾯翻译成的Servlet源⽂件中导⼊的包或类
session指明该JSP页⾯是否内置Session对象,如果为true,则说明内置Session对象,可以直接使⽤,否则没有内置Session对象,默认情况下,session属性为true.需要注意的是,JSP引擎⾃动导⼊以下四个包:
java.lang.*
javax.servlet.*
javax.servlet.jsp.*
javax.servlet.http.*
isErrorPage指定该页⾯是否为错误处理页⾯,如果为true,则该JSP内置有⼀个Exception对象的exception,可直接使⽤。默认情况下为false
errorPage,某个JSP页⾯的相对路径,指定⼀个错误页⾯,如果该JSP程序抛出⼀个未捕捉的异常,则转到errorPage指定的页⾯。errorPage指定页⾯的isErrorPage属性为true,且内置的exception对象为未捕捉的异常。