什么是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>