JSP中各种元素

来源:互联网 发布:网络十大美女主播排名 编辑:程序博客网 时间:2024/06/15 10:13

一、脚本元素

符号:<%%>

在该脚本段中所以的内容,最终会出现在一个java方法中。所以,在java的方法中能写什么内容,在<%%>中就能写什么内容

Java方法中能写的内容                         

      局部变量,局部内部类,各种程序结构(if for..)   

Java方法中不能写的内容    

      方法,static,4种访问修饰符        

符号:<%!%>

该脚本段中写的内容,会出现在类之内,方法之外。所以,在java的类之内,方法之外能写什么内容,在<%! %>中就能写什么内容

java的类之内,方法之外能写                

               属性 方法 块 内部类                           

java的类之内,方法之外不能写

                        程序结构   表达式

符号:<%= %>

在该脚本端中所写的内容,最终会成为out.print()的参数。所以在java的方法参数中,能写什么,<%=%>就能写什么。

java的方法参数能写

表达式 

java的方法参数不能写                           

除了表达式以外,都不能写                

 符号:<%----%>

该脚本用于告诉web服务器,在把一个jsp文件解析出一个java源文件的过程中,忽略该脚本中的内容,也就是说,<%-- --%>脚本中的内容根本不会出现在java源文件中。

2个术语:

客户端注释: <!-- -->  (不但会出现在java源文件中。而且还会被web服务器发送给客户端浏览器)

服务器端注释 <%-- --%>    //     /* */ (//  /* */ 注释的内容会出现在java源文件中)

注意:jsp页面只有在第一次访问的时候才会实例化对象,在之后访问的同一个jsp页面时,都使用的是第一次已经创建好的实例

测试方法:在jsp页面使用<!%%>方法创建一个变量,同时调用它,同时开启多个客户端观察变量值,是不是在多个客户端累加的,如果是则说明是调用了一个实例

二、指令元素

符号:<%@%>

page指令元素属性.

import

用于引入外包的class

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

Buffer

用于控制当前jsp页面的缓冲区大小,默认值为8kb

缓冲区的作用:提高读写速度。

缓冲区就是用来积攒数据的地方。

缓冲区中的数据,何时会被发送到目的地

1.   缓冲区已经放满数据了,再多放一个字节。

2.   强制发送缓冲区中的数据。

利用flush()方法

contentType

用于告诉浏览器,服务器给你发送的是什么格式的数据。

 

errorPage

当当前jsp页面中抛出异常的时候,指定的跳转页面

<%@page errorPage="error.jsp"%>

isThreadSafe

控制web服务器是否对该jsp页面支持并发,取值为true就表示支持并发

<%@page isThreadSafe="true"%>

pageEncoding

1 .Jsp-->java过程中,就是使用该属性指定的码表来生成java源文件的。

2.告诉浏览器使用什么码表。

 

include:静态包含

三、动作元素

符号:<jsp:xxx>

1、<jsp:useBean /> 等价于实例化对象

了解javabean:

javabean就是一个普通的java类而已,不过要符合一些规范

1、所有属性必须私有化

2、必须为私有化属性提供公共的getter(获取器)和setter(设置器)

3、必须提供一个公共的无参的构造器

4、必须实现序列化接口:java.io.Serializable

使用<jsp:useBean />,先在src目录下定义一个java类,这个类最终能在WebRoot目录下的jsp文件中使用。

实际上,在一个web应用的src下定义的java源文件,会被编译,编译出来的字节码文件会自动被部署到tomcat服务器下,路径就是/web应用名/web-inf/classes

而web应用的类路劲是有3部分组成的,也就是收,web应用在找一个字节码文件的时候,会在一下3个范围中查找:1、/web应用名/web-inf/classes,2、JRE System Libary,3、Java EE 5 Libaries/

2、<jsp:setProperty />等价于给对象的属性赋值

3、<jsp:getProperty />等价于获取对象的属性

注意:

<jsp:useBean/> 会回调公共的无参构造器

<jsp:setProperty /> 会回调对应的setter方法。

<jsp:getProperty /> 会回调对应的getter方法。

4、<jsp:include />动态包含

经典面试题: 静态包含与动态包含的区别:

(1)静态包含是先包含,后编译;  最终只能生成一个java源文件!class也是一个

动态包含是先编译,后包含。最终生成多个java源文件!class也是多个

(2)静态包含不能用变量名作为路径; 动态包含就可以用变量名作为路径。

(3) 静态包含不能给被包含的目标jsp页面传递参数;动态包含就可以!

(4)一个页面上的多个静态包含的页面中,不能有同名的变量;动态包含就可以!

5、<jsp:forword >转发

不用点击可以直接跳转到某个jsp页面

6、<jsp:param />

给服务器传递参数的,但是该标记必须搭配<jsp:include />或者<jsp:forward/>

注意:

如果没有给被动态包含的页面传递参数,

<jsp:include>和</ jsp:include>之间不能有任何内容,必须贴紧

<jsp:forward>和</ jsp: forward>之间不能有任何内容,必须贴紧





原创粉丝点击