JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1] 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP的特点:
1)JSP的运行必须交给tomcat服务器。
2)JSP页面既可以写html代码,也可以写java代码。
JSP的执行过程:
1)浏览器访问xxx.jsp页面,tomcat扫描到xxx.jsp文件,在%tomcat%/work把jsp文件翻译成java源文件。
2)tomcat服务器把jsp的java源文件翻译成class字节码文件。
3)tomcat服务器构造jsp类的对象。
4)tomcat服务器调用jsp类里的方法,返回内容显示到浏览器中。
注意:
1)第一次访问jsp的时候执行以上四个步骤,第n次访问的时候只执行(4)。
2)如果jsp文件修改或者jsp的临时文件被删除了,当访问jsp页面的时候,会重新走以上4个步骤。
3)jsp翻译之后的类就是一个servlet类,可以通过翻译的java源文件查看。
JSP的语法:
1)JSP模板:jsp页面中的html代码,使用eclipse创建jsp页面的时候带有html语句,代码如下
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body> 10 11 </body> 12 </html>
2)jsp表达式
语法:<%=变量或者表达式%>
作用:向浏览器输出变量的值或者表达式计算后的结果。
注意:
1)表达式的原理就是翻译成out.print("变量"),通过该方法向浏览器中写写内容。
2)表达式后面不需要用分号结束。
3)jsp脚本
语法:<%java代码%>
作用:执行java代码
注意:原理是把脚本中的java代码原封不动的copy到_jspService方法中执行。
4)jsp声明
语法:<%! 变量或者方法%>
作用:声明jsp的变量或者方法。
注意:变量汇翻译成成员变量,方法翻译成成员方法。
5)jsp注释:
语法:<%-- jsp注释 --%>
作用:注释jsp代码。
注意:html代码的注释会被tomcat翻译到jsp的java源文件中,jsp的注释不能被翻译和执行。
JSP三大指令
1)page指令
1 <%@ page language="java" 2 contentType="text/html; charset=UTF-8" 3 pageEncoding="UTF-8" 4 import="java.util.*" 5 errorpage="error.jsp" 6 isErrorPage="false" 7 buffer="8kb" 8 session="true" 9 isELIgnored="false" 10 11 %>
解释:language --告诉服务器使用什么动态语言来翻译jsp文件。
contentType --服务器发送到浏览器的数据类型和内容编码格式。
pageEncoding --告诉服务器使用什么编码格式来翻译jsp文件。
import -- 告诉服务器java文件使用什么包即导入包;多个包之间用逗号分隔。
errorpag --设置jsp页面发生错误时,跳转的页面。
isErrorPage -- 值有true和false两个。true标识翻译成java文件是有exception对象,false没有。
buffer -- 设置页面中out输出对象的缓冲区大小,默认为8kb,建议使用8的倍数。
isELIgnored --值有true和false两个,设置页面是否忽略EL表达式。
2)include指令:静态包含
1 <%@include file="common/header.jsp"%>
作用:在当前jsp页面中包含其他页面。
注意:原理是把被包含的页面的内容翻译到包含页面中,合并翻译成一个java源文件,在编译运行。使用静态包含,被包含页面中不需要出现全局的html标签(html、head和body)。
3)taglib指令:导入标签库
<%@ taglib uri="文件位置" prefix="前缀名称" %>
作用:导入jsp的标签库。