JSP

什么是JSP?

JSP是(Java Server Page)的缩写,是基于Java语言的一种Web应用开发技术,通俗一点说,它是一种实现普通静态HTML和动态HTML混合编码技术。利用这一技术可以搭建一个安全,跨平台的,动态的网站。

JSP运行原理

JSP是服务器端技术,在服务器端,JSP引擎解析JSP代码,然后将结果以HTML或XML页面形式发送到客户端,在客户端的用户是看不到JSP代码的。具体的原理解释如下:第一次请求JSP页面,JSP页面将先转换成为一个Java文件,编译后该Java文件生成对应的class文件,将其加载在内存,然后执行class文件完成响应;再次请求就直接加载class文件完成响应,每次请求都会启动一个线程来负责。当第一次加载JSP页面时,因为要将JSP转换为Servlet类,所以响应速度较慢;当再次请求时,JSP容器就会直接执行第一次请求产生的Servlet,而不会再重新转换JSP文件,所以其执行速度叫快。

JSP运行原理如下图所示:

JSP_第1张图片
Paste_Image.png

JSP语法

1.JSP的主要特点

把内容的生成和显示分离
生成可用的组件
应用标记简化页面的开发
具有Java的特点

2.JSP页面的组成

JSP代码放在特定的标签中,然后嵌入到HTML代码中。开始标签,结束标签和元素内容三部分统称为JSP元素,这是JSP页面组成的主要部分。
JSP元素可分成如下三种不同的类型。

脚本元素:规范JSP网页所使用的Java代码,包括:HTML注释,隐藏注释,声明,表达式和脚本段。
指令元素:是针对JSP引擎的,并不会直接产生任何看得见的输出。包括:include指令,page指令和taglib指令。
动作元素:利用XML语法格式的标记来控制Servlet引擎的行为。
3.JSP注释

注释增加了程序的可读性与可维护性,应该养成写注释的好习惯。JSP文件的注释有两种:HTML注释和隐藏注释。
HTML注释:发送到客户端,但不会在浏览器上显示,在客户端可通过查看源文件看到。
隐藏注释:写在JSP代码中,不发送到客户端。

4.JSP变量和方法的声明

在JSP程序中需要对用到的变量和方法进行声明,声明的基本语法如下:
<%声明;[声明;]%>
例如下面的代码:

<%! int i=6;%>
<%! int a,b,c;double d=6.0;%>
<%Date d=new Date();%>

需要注意的事项如下:
声明必须以";"结尾。
可以一次声明多个变量和方法,必须以","分开,以";"结尾。
声明的范围通常是JSP页面,但如果页面中使用include指令包含其他页面,范围应扩展到被包含的页面。
可以直接使用在<%@ page%>指令中包含进来已经声明了的变量和方法,不需要重新进行声明。
一个声明仅在一个页面中有效。如果想在每个页面都用到一些声明,最好把它们写成单独的文件,然后用<%@include%>或动作包含进来。

5.JSP的表达式

JSP表达式是由变量,常量组成的算式,他将JSP生成的数值嵌入到HTML网页,用来直接输出Java代码的值。
表达式的基本语法规则如下:
<%=表达式%>
需要注意的事项如下:
不能用一个分号";"来作为表达式的结束符。
"<%="是一个完整的标记,中间不能有空格。
表达式元素包含在任何Java语言规范中有效的表达式。
表达式可以成为其他JSP元素的属性值。一个表达式可以由一个或多个表达式组成,按从左到右的顺序求值。

JSP指令

JSP指令是一些特殊的JSP语句,它是为JSP引擎而设计的,它们并不直接产生任何可见输出,只是告诉引擎如何处理其余的JSP页面,这些指令被括在"<%@ %>"标记中,常见的指令有以下三种:
page指令。
include指令。
taglib指令。

1.page指令

page指令称为页面指令,几乎在所有的JSP页面顶部都会看到page指令。
(1)page指令的语法规则如下:

<%@ page language="脚本语言"
                     extends="继承的父类名称"
                     import="导入的java包或类的名称"
                     session="true/false"
                     buffer="none/8k/自定义缓冲区大小"
                     autoflush="true/false"
                     isThreadSafe="true/false"
                     info="页面信息"
                     errorPage="发生错误是所转向的页面相对地址"
                     isErrorPage="true/false"
                     contentType="MIME类型和字符集"      
%>

(2)page指令的常用属性如下:
import:用来导入将要用到的一个或多个包/类。基本语法规则如下:

<%@ page import="java.util.Date"%>
<%@ page import="java.util.*"%>

errorPage:这个属性为一个URL路径指向的JSP网页,在指向JSP网页中处理初始JSP网页上产生的错误;通常在指向JSP网页上都会设置isErrorPage=true。

isErrorPage:这个属性的默认值为false;isErrorPage用来指定的JSP网页是否是另一个JSP网页的错误处理页,通常与errorPage配合使用。

contentType:用来指定JSP网页输出到客户端时所用的MIME类型和字符集。默认MIME类型是text/html,默认的字符集是ISO-8859-1。如果想输出简体中文,字符集需设置为gb2312。

需要注意的事项如下:
在一个页面中可以使用多个<%@page%>指令,分别描述不同的属性。
每个属性只能描述一次,但是import指令可以多次使用。
<%@page%>指令区分大小写。

(3)page指令用法。该例子包括两个JSP页面文件:true.jsp和error.jsp。
true.jsp为主页面,在本页面中,通过page指令指定当前发生错误时转向的错误处理页面。error.jsp为错误处理页面,在该页面显示相关信息提示用户访问出错。

true.jsp代码如下:

<%@ page contentType="text/html"; charset=gb2312 errorPage="errorPageDirec.jsp"%>
   page指令示例
       
           <%
               int a = 10;
               int b = a / 0;
               out.println(b);
           %>
       
   

false.jsp代码如下:

<%@ page contentType="text/html"; charset=gb2312 isErrorPage="true"%>
   错误处理页面
       
           您访问的页面出错啦!
      
   
2.include指令

有时候我们需要在JSP网页中插入其他的文件,插入文件有两种方式:include指令和jsp:include动作。
include指令成为文件加载指令,可以将其他的文件插入JSP网页,被插入的文件可以用是JSP文件,HTML文件或者其他文本文件,但是必须保证插入后形成的新文件符合JSP页面的语法规则。
include指令形式如下:
<% include file="相对地址"%>

下面用实例来说明include指令的使用,该实例包括两个文件:time.html文件和include.jsp文件。

time.html文件如下:
<%=(new Date()).toLocaleString()%>

include.jsp代码如下:

<%@ page contentType="text/html; charset=gb2312 import="java.util.*"%>
   
       
           include指令示例
       
       
            
现在的日期和时间是:
<%@ include file="time.html"%>
3.taglib指令

taglib指令用来定义一个标记库以及标记的前缀,其语法规则如下:
<%@ taglib uri="URLToLibrary" prefix="标记前缀"%>

未完待续。。。

你可能感兴趣的:(JSP)