jsp学习笔记(第三天)

2.2变量和方法的声明

将<%! %>之间声明的变量称为JSP页面的成员变量。这些变量的内存空间知道服务器关闭才被释放、

<% ! %>之间声明的变量在整个JSP页面内都有效,与标记符号<%! %>所在的位置无关,但习惯将标记符号<%! %>写在Java程序片的前面。

在 之间声明方法,该方法在整个JSP页面有效,但在该方法内定义的变量只在该方法内有效。

2.3java程序片

1,<%  %>之间插入java程序片,一个JSP页面可以有多个Java程序片,这些程序片被JSP引擎按顺序执行。

2,在java程序片中声明的变量称为JSP页面的局部变量。

3,局部变量的作用范围与其声明的位置有关,java局部变量在JSP页面后继的所有Java程序片以及表达式中有效。

java程序片中操作的成员变量是各个线程共享的变量,任何一个线程对JSP页面成员变量操作的结果,都会影响到其他线程。

java程序片中可以出现方法调用语句,该方法必须是JSP页面的方法(<%!  %>)

运行在不同线程中的java程序片的局部变量互不干扰,即一个用户改变java程序片的局部变量不会影响到另一个用户使用java程序片的局部变量。

2.4表达式

可以在<% = %> 之间插入一个表达式。

特别注意:<%= %>  %和= 之间没有空格,表达式的值由服务器负责计算,并将计算结果以字符串形式发送到用户端显示。如果表达式无法求值,Tomcat引擎将给出编译错误。

2.5JSP中的注释 

1.HTML注释:之间插入注释;

2.JSP注释:<%-- --%>:之间插入注释内容;

2.6JSP指令标记

page指令:用来定义整个jsp页面的一些属性和这些属性的值。

page指令对整个页面有效,与其书写的位置无关,但习惯上把page指令写在jsp页面的最前面。

page指令的格式:<% @page 属性1=“属性1的值” 属性2=“属性2的值” ......%>

属性值需要用单引号或双引号括起来,如果为一个属性指定多个属性值,属性值之间用逗号分隔。

可以用page指定多个属性的值:<% @page 属性1=“属性1的值” 属性2=“属性2的值” ......%>

也可以用多个page指令指定多个属性值:<% @page 属性1=“属性1的值” %>

<% @page 属性2=“属性2的值” %>

在一个JSP页面中,可以使用多个page指令来指定属性及其值,可以使用多个page指令import属性几个值,但其他属性只能使用page指令指定一个值。

1,language属性:定义jsp页面使用的脚本语言,该属性的值目前只能取java 

2.import属性:为jsp页面引入java核心包中的类,jsp页面默认import属性有以下值:"java.lang.*","java.servlet.*","javax.servlet.jsp.*","javax.servlet.http.*"

3.contentTyep属性:确定JSP页面响应的MIME类和JSP页面字符编码。如:<% @page contentType="text/html" ;charset="GB2312"%>

JSP页面使用page指令只能为contentType指定一个值,不允许两次使用page指令给contentType属性指定不同的属性值。

如果用户浏览器不支持某种MIME类型,那么用户的浏览器就无法用相应的手段处理所接受到的信息。

4.session属性:是否需要设置内置的seccion对象。

session属性的属性值可以是true或false;

5.buffer属性:用来指定out设置的缓冲区的大小或不使用缓冲区。

<%@ buffer="24kb" %>

6.autoFlush属性:指定out的缓冲区被填满时,缓冲区是否自动刷新。autoFlush可以取值true或false.

7,isThreadSafe属性:

用来设置JSP页面是否可多线程访问。当值为true时,JSP页面能同时响应多个用户的请求;当值为false时,同一时刻只能响应一个用户的请求其他用户需要排队等待。

2.6.2include指令标记

如果需要在JSP页面的某处整体插入一个文件,就可以考虑使用这个指令标记。该指令标记语法:<%@ include file ="文件的URL"%>

作用:在JSP页面出现该指令的位置处,静态插入一个文件。被该指令插入的文件必须是可访问和可使用的,

2.7JSP动作标记

动作标记是一种特殊的标记,它影响JSP运行时的功能。

include动作标记语法格式为:

或者

param子标记

注意:当include动作标记不需要param子标记时,必须使用上诉第一种形式。

书写include动作标记注意jsp,:,include三者之间不要有空格。

2.7.2param动作标记

param标记以“名字——值”对的形式为其他标记提供附加信息,这个标记与jsp:include,jsp:forward,jsp:plugin标记一起使用。

param动作标记:

param标记不能独立使用,需要jsp:include,jsp:forward,jsp:plugin

当该标记与jsp:inclue标记一起使用时,可以使用param标记中的值传递到include指令要加载到文件中去。

也就是说,JSP页面在使用include动作标记加载文件是,可以动态地向所加载文件传递数据。

2.7.3 forward动作标记

forward动作标记的格式:

或者

param子标记

作用:从该指令处停止当前页面的继续执行,转向执行该指令中page属性指定的URL页面,但是在浏览器的地址栏中并不显示forward指令所转向的JSP页面的地址表示,浏览器的地址栏仍然显示forward转向前的JSP页面的URL表示。

不需要子标签时,使用上面的第一种格式表示。

forward动作标记指定的所转向的JSP文件可以使用Tomcat服务器提供的request内置对象获取param子标记中的name属性的值。

2.7.4plugin动作标记

在页面中使用普通的HTML标记可以让用户下载运行一个java applet小程序,但并不是所有用户的浏览器都支持java applet小程序。

如果java applet小程序使用了JDK1.2以后的类,那么有些浏览器不支持这个java小应用程序,而使用plugin动作标记可以保证用户能执行小应用程序。

2.7.5useBean动作标记

用HTML完成jsp页面的静态部分,用javaBeam完成动态部分


总结:

1.jsp页面的构成:html标记,jsp标记,变量,方法的声明,java程序片 和java表达式。

2.JSP引擎把jsp页面中的HTML标记给用户的浏览器执行,而jsp引擎负责处理jsp标记,变量和方法声明;

3.jsp引擎负责运行java程序片,计算java表达式,并将需要显示的结果发送给用户的浏览器。

你可能感兴趣的:(jsp学习笔记(第三天))