什么是JSP?

  • 一种动态网页技术标准,使用Java语言作为脚本语言。
  • 用Sun公司倡导、许多公司参与建立。
  • 在服务器端执行,通常返回一个HTML文本给客户端。
  • 文件后缀 .jsp

执行过程

  • 客户端发出Request(请求)
  • Tomcat(服务器)将JSP转译成Servlet的源代码
  • 将Servlet的源代码编译并加载到内存中执行
  • 将结果Response(响应)至客户端

注意:JSP网页执行时Tomacat会先检查,当发现JSP网页有更新修改时Tomacat才会再次编译JSP成Servlet。

JSP的构成

JSP一般由HTML标签和JSP元素构成,如:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>主页</title>
</head>
<body>
	<%
		out.print("欢迎您 ! ");
	%>
</body>
</html>

HTML标签那部分就不细说了,我们来说说JSP的元素。JSP元素可分为JSP指令,脚本元素和动作元素,具体如下:

JSP指令

作用是不直接生成可见输出,设置JSP引擎。分为页面指令(page),include指令,taglib指令。

具体如下:

页面指令(page):定义整个jsp页面的属性和这些属性的值,传送至JSP引擎。

格式:

<%@ page attribute1="value1" attribute2="value2" %>

其中attribute1为page属性,value1为属性值。常见的页面指令:

  • include指令:包含一个静态文件,实现Jsp页面的模块化。
  • language="java":指定JSP Container编译JSP网页的脚本语言,
  • extends="classname":定义此JSP网页产生的Servlet继承的父类,
  • import="importList":定义此JSP网页可以使用的Java API,
  • session="true|false":是否可以使用session对象,默认true,
  • buffer="none|size in kb":输入流是否有缓存区。默认值8KB,
  • autoFlush="true|false":缓存区是否自动清除,默认true,
  • info="text":此jsp网页的有关信息,
  • errorPage="error_url":发生异常时会重定向到哪个网页,
  • isErrorPage="true|false":是否为处理异常的网页,
  • contentType="ctinfo":表示MIME和JSP网页的编码方式,
  • pageEncoding="ctinfo":表示JSP网页的编码方式,
  • isELIgnored="true|false":是否忽略EL表达式,true忽略,false执行。格式:<%@ include file="filename" %>taglib指令:声明此JSP文件使用了自定义标签,同时引用标签库,指定自定义标签的前缀。格式:<%@ taglib uri="taglibURL" prefix="tagPerfix"%>

脚本元素:最频繁使用的元素。

a.声明:定义在产生的Servlet类文件中的类的属性和方法。

格式:<%! DataType var;Method define; %>

b.表达式:等同于jsp页面中的“out.print(表达式);”格式:<%=表达式%>

c.脚本:一段可以在处理请求时执行的Java代码格式:<% java语句 %>

动作元素:执行JSP页面动作,如:将页面转向、使用JavaBean、设置JavaBean的属性等。

常用动作指令:

a.<jsp:include>:向当前页面中包含其他文件(可以是动态也可以是静态)

格式:<jsp:include page="url" fulsh="true|false"/>

b.<jsp:forward>:转发到其他页面。

格式:<jsp:forward page="modify.jsp">

c.<jsp:param>:作为其他动作指令的子指令,为其他指令传递参数。格式:<jsp:param name = "参数名" value="参数值"/>

举个例子:

<jsp:forward page= "modify.jsp">
	<jsp:param name="userid" value="1"/>
</jsp:forward>