java web JSP

一.JSP生命周期java

1.JSP编译数据库

当浏览器请求JSP页面时,JSP引擎会首先去检查是否须要编译这个文件。若是这个文件没有被编译过,或者在上次编译后被更改过,则编译这个JSP文件。浏览器

编译的过程包括三个步骤:缓存

  • 解析JSP文件。
  • 将JSP文件转为servlet。
  • 编译servlet。

 

2.JSP初始化安全

容器载入JSP文件后,它会在为请求提供任何服务前调用jspInit()方法。若是您须要执行自定义的JSP初始化任务,复写jspInit()方法就好了,就像下面这样:服务器

public void jspInit(){
  // 初始化代码
}

 

通常来说程序只初始化一次,servlet也是如此。一般状况下您能够在jspInit()方法中初始化数据库链接、打开文件和建立查询表。session


 

3.JSP执行jsp

这一阶段描述了JSP生命周期中一切与请求相关的交互行为,直到被销毁。编码

当JSP网页完成初始化后,JSP引擎将会调用_jspService()方法。url

_jspService()方法须要一个HttpServletRequest对象和一个HttpServletResponse对象做为它的参数,就像下面这样:

void _jspService(HttpServletRequest request, HttpServletResponse response)
{
   // 服务端处理代码
}

 

_jspService()方法在每一个request中被调用一次而且负责产生与之相对应的response,而且它还负责产生全部7个HTTP方法的回应,好比GET、POST、DELETE等等。


 

4.JSP清理

JSP生命周期的销毁阶段描述了当一个JSP网页从容器中被移除时所发生的一切。

jspDestroy()方法在JSP中等价于servlet中的销毁方法。当您须要执行任何清理工做时复写jspDestroy()方法,好比释放数据库链接或者关闭文件夹等等。

jspDestroy()方法的格式以下:

public void jspDestroy() { 
// 清理代码 }

 

二.JSP语法

1.声明

(1)<%!    int a=1     %>

(2)<%!   int a,b,c    %>

(3)<%!   int xx=0;   public int cc(int a,int b){ return a+b;}   %>2.脚本程序

     <%   xx=cc(10,5) %>注:<%!%> 与<%%>区别

(1)<%!%>里面定义的属性是成员属性,至关于类的属性,方法至关因而全局的方法,至关因而类里面的方法.可是它是不能够进行输出的,由于它只是进行方法的定义和属性的定义。

(2)<%%>这个里面能够进行属性的定义,能够输出内容,可是它不能够进行方法的定义,由于这对标签里面的内容未来是在此jsp被编译为servlet的时候放在了_jspService()方法里面的,这个方法就是服务器向客户端输出   内容的地方,它自己就是一个方法,因此若是你在它里面定义方法的话,那么就至关因而在类的方法里面嵌套定义了方法,这在java里面是不容许的。可是你能够在里面定义本身的私有变量,由于方法里面也能够定义变量,也能够调用方法,可是惟独不能够再定义方法了。

(3)<%!%>是用来定义成员变量属性和方法的,<%%>主要是用来输出内容的,所以若是涉及到了成员变量的操做,那么咱们就应该使用<%!%>,而若是是涉及到了输出内容的时候,就使用<%%>。

3.表达式

<%= a%>  输出结果

4.指令

指令 描述
<%@ page ... %> 定义页面的依赖属性,好比脚本语言、error页面、缓存需求等等
<%@ include ... %> 包含其余文件
<%@ taglib ... %> 引入标签库的定义,能够是自定义标签

详解:

(1)Page指令

Page指令为容器提供当前页面的使用说明。一个JSP页面能够包含多个page指令。

Page指令的语法格式:

<%@ page attribute="value" %>

等价的XML格式:

<jsp:directive.page attribute="value" />

属性

下表列出与Page指令相关的属性:

属性 描述
buffer 指定out对象使用缓冲区的大小
autoFlush 控制out对象的 缓存区
contentType 指定当前JSP页面的MIME类型和字符编码
errorPage 指定当JSP页面发生异常时须要转向的错误处理页面
isErrorPage 指定当前页面是否能够做为另外一个JSP页面的错误处理页面
extends 指定servlet从哪个类继承
import 导入要使用的Java类
info 定义JSP页面的描述信息
isThreadSafe 指定对JSP页面的访问是否为线程安全
language 定义JSP页面所用的脚本语言,默认是Java
session 指定JSP页面是否使用session
isELIgnored 指定是否执行EL表达式
isScriptingEnabled 肯定脚本元素可否被使用

(2)Include指令

JSP能够经过include指令来包含其余文件。被包含的文件能够是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。

Include指令的语法格式以下:

<%@ include file="文件相对 url 地址" %>

include 指令中的文件名其实是一个相对的 URL 地址。

若是您没有给文件关联一个路径,JSP编译器默认在当前路径下寻找。

等价的XML语法:

<jsp:directive.include file="文件相对 url 地址" />

(3)Taglib指令

JSP API容许用户自定义标签,一个自定义标签库就是自定义标签的集合。

Taglib指令引入一个自定义标签集合的定义,包括库路径、自定义标签。

Taglib指令的语法:

<%@ taglib uri="uri" prefix="prefixOfTag" %>

uri属性肯定标签库的位置,prefix属性指定标签库的前缀。

等价的XML语法:

<jsp:directive.taglib uri="uri" prefix="prefixOfTag" />
相关文章
相关标签/搜索