JSP复习题与答案

更新时间:2023-10-19 17:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

JSP期末复习题精选

1.在web服务目录helloapp下有一个hello.jsp,它的文件路径如下:....../helloapp/hello.jsp,那么在访问hello.jsp的URL是()。

http://localhost:8080/helloapp/hello.jsp http://127.0.0.1:8080/helloapp/hello.jsp

2.对于\、\之间的内容和\、\的作用。

定义变量---在JSP页面的标记符“<%!”和“%>”之间声明的变量称作JSP页面的成员变量

定义方法 ---JSP页面在“<%!”和“%>”之间定义方法

在“<%”和“%>”之间插入Java程序片, 一个JSP页面可以有许多程序片,这些程序片按顺序执行,所有的Java代码都是被服务器执行的。

3.page指令用于定义JSP文件中的全局属性。

1)page指令是针对当前页面的指令。page指令由“<%@”和“%>”字符串构成的标记符来指定。在标记符中是代码体,包括指令的属性和值。语法格式:<%@ page 属性1=“属性1的值”属性2=“属性2的值”? %>

2)常用的page指令标记属性有8个:contentType import language session buffer autoFlush isThreadSafe pageEncoding

3)contentType属性--这个属性用来设定传回网页的文件格式和编码方式,一般使用 <%@ page contentType=“text/html;charset=GB2312”%>

注:不允许两次用page指令给属性contentType指定不同的属性值,下列语法是错误的:<%@ page contentType=“text/html;charset=GB2312”%>

<%@ page contentType=“application/msword”%> import属性

4)import属性设置当前JSP页面中要用到的Java类,这些Java类可能是Sun JDK中的类,也有可能是程序员自己定义的类。

例如:<%@ page import=“java.sql.*”, “java.util.*”%>

有些类在默认情况下已经被加入到当前JSP页面,而不需要特殊声明,包括四个类:java.lang.*;java.servlet.*;java.servlet.jsp.*;java.servlet.http.*;

5)language属性---language设置JSP页面中用到的语言,默认值为“java”,也是目前唯一有效的设定值(目前只能用java)。

使用的语法是:<%@ page language=“java”%>

6)session属性---senssion定义当前JSP页面中是否要用到服务器的内置对象session,默认值为“true”。

使用的语法是:<%@ page session=“true”%>

7)buffer属性(8kb|none|size kb)--内置输出流对象out负责将服务器的信息或运 行结果发送到客户端显示,buffer属性用来指定out使用的缓冲区大小或不使用缓冲区。buffer默认值8KB。

8)autoFlush属性(true|false)--autoFlush属性指定out流的缓冲区被填满时,缓冲区是否自动刷新。

9)isThreadSafe属性--定义JSP容器执行JSP程序的方式,默认值为“true”代表JSP容器会以多线程方式运行JSP页面。当设定值为false时,JSP容器会以单线程方式运行JSP

页面。

10)pageEncoding属性--pageEncoding属性是jsp文件本身的编码,代表通 知Web Serveice的jsp编码。 11)page指令注意事项

1: 可以在一个页面中用上多个“<%@ page %>”指令,但是其中的属性只能用一次,不过也有例外,那就是import属性。因为import属性和Java中的import语句类似(参照Java Language,import语句引入的是Java语言中的类),所以此属性就能多用几次。

2:无论把“<%@ page %>”指令放在JSP的文件的哪个地方,它的作用范围都是整个JSP页面。不过,为了JSP程序的可读性,以及好的编程习惯,最好还是把它放在JSP文件的顶部。

4.在JSP中,内置对象功能,request对象的常用方法,内置对象的作用域由小到大的顺序。

(request response session application)

有些成员变量不用声明就可以在JSP页面的脚本(Java程序片和Java表达式)中使用,这就是所谓的内置对象。

主要的内置对象有:resquest response session out application

(1)request包含了来自浏览器请求的相关信息,并且提供了获取Cookie、header和请求相关的参数值等数据的有效方法。 request对象封装了用户提交的信息,通过调用该对象相应的方法可以获取用户提交的信息。

(2)response主要将JSP处理后的结果传回到客户端(如Cookie、header信息等),它提供了将数据送回浏览器的方法。

(3)out对象用于向浏览器回送输出结果。

(4)pageContext对象存储当前JSP页面相关信息,如内置对象、属性等。

(5)session对象用于存储每一个用户的状态信息,以便跟踪用户的会话状态,直到客户端与服务器断开连接为止,可用来识别每个用户。

(6)application负责提供应用程序在服务器中运行的全局信息,当应用程序在服务器中启动时该对象就一直存在,直到服务器关闭为止,所有客户共享这个内置的application对象。applicaton可用来在所有用户间共享信息,并可以在Web应用程序运行期间持久地保持数据。 request对象

内置对象request对象是实现了ServletRequest接口类的一个实例.它代表的是java.servlet.HttpServletRequest类的对象。当客户端请求一个JSP页面时,JSP容器会将客户端的请求信息包装在这个request对象中。请求信息的内容包括请求的头信息(Header)、系统信息(比如:编码方式)、请求的方式(比如:GET或POST)、请求的参数名称和参数值等信息。该对象调用相应的方法可以获取封装的信息,即使用该对象可以获取用户浏览器提交的请求信息,以便做出相应的相应。

request对象代表的是来自客户端的请求,例如:我们在FORM表单中填写的信息等,是最常用的对象。通常我们用得最多的就是客户端请求的参数名称和参数值信息。 ① getParameter( )② getParameterValues( ) ③ getParameterNames( ) 通过调用这几个方法来获取请求对象中所包含的参数的值。

getParameterNames( )的应用 通过request对象的getParameterNames()方法得到客户端传递过来的所有参数名字。如:Enumeration params = request.getParameterNames(); 处理汉字信息

当用request对象获取请求中的汉字字符信息时,可能会出现乱码问题,所以对含有汉字字符的信息必须进行特殊的处理方式。目前有两种解决方法,一种是在执行操作之前,设置page指令<%@ page contentType=“text/html;Charset=GB2312”> 注意:Charset中的C大写。 另一种方法是转换字符编码 <%

String str=request.getParameter(“girl\ byte b[]=str.getBytes(\ str=new String(b); %>

request对象的常用方法

getProtocol():获取请求使用的通信协议,如http/1.1等。 getServletPath():获取请求的JSP页面所在的目录。 getContentLength():获取HTTP请求的长度。

getMethod():获取表单提交信息的方式,如POST或GET。 getHeader(String s):获取请求中头的值。 getHeaderNames():获取头名字的一个枚举。

getHeaders(String s):获取头的全部值的一个枚举。 getRemoteAddr():获取客户的IP地址。

getRemoteHost():获取客户机的名称(如果获取不到,就获取IP地址)。 getServerName():获取服务器的名称。 getServerPort():获取服务器的端口号。

getParameterNames():获取表单提交的信息体部分中name参数值的一个枚举 response对象

response对象是一个javax.servlet.http.HttpServletResponse类的子类的对象.response对象对客户的请求做出响应,向客户端发送数据. contentType属性的值

当请求一个JSP页面的时候,如果该页面用page指令设置页面的contentType属性的值是text/html,那么服务器将把静态页面部分发送给客户端。也可以设置为其他一些相应类型,如:text/plain(文本文件)、application/x-msexcel(Excel文件)和application/msword(Word文件)等。

设置响应HTTP头 使用的语法是“response.setHeader()” 重定向

对于response对象,最常用到的是sendRedirect()方法,可以使用这个方法将当前客户端的请求转到其它页面去。相应的代码格式为:response.sendRedirect(\地址\与指令的最大区别就是:只能使用在本网站内跳转,但可以使用response.sendRedirect跳转到任何一个地址的页面 状态行

状态行包括3位数字的状态码和对状态码的描述。下列列出了5种状态码的大概描述:1yy:主要是实验性质的;2yy:表明请求成功;3yy:表明在请求满足之前应采取进一步的行动;4yy:当浏览器无法满足请求时,返回该状态码;5yy:表示服务器出现问题 session对象

内置对象session由Tomcat服务器负责创建,session是实现了HttpSession接口类的一个实例。它表示当前的用户会话信息。在session中保存的信息,当前用户连接的所有页面中都是可以被访问到。可以使用session 对象存储用户登录网站时候的信息。当用户

在页面之间跳转时,存储在session对象中的变量不会被清除。 session对象的ID

session对象被分配了一个String类型的ID,Tomcat服务器将ID发送到客户端,存放在客户的Cookie中.同一用户在同一Web服务目录中的各个页面的session是相同的.不同用户的session对象互不相同,具有不同的ID。 session对象的常用方法

session对象表示目前用户的会话状态,用来识别每个用户,与之相关的常用方法如下。 (1)long getCreationTime( )获取session的创建时间,单位为毫秒。 (2)String getId( ) 获取session标识。此方法返回惟一的标识,这些标识为每个session而产生。

(3)long getLastAccessedTime( ) 获取与当前session相关的客户端最后一次访问的时间,由1970-01-01算起,单位为毫秒。 (4)int getMaxInactiveInterval(int interval)获取总时间,以秒为单位,表示session的有效时间。?1为永不过期。

(5)void invalidate( )销毁session对象,即使session无效。 (6)boolean isNew( )判断当前session是否是一个新建的会话。

(7)void setMaxInactiveInterval(int interval)设置session的有效期。 session对象存储数据

(1) public void setAttribute(String key, Object obj)session对象可以调用该方法将参数Object指定的对象obj添加到session对象中,并为添加的对象指定了一个索引关键字,如果添加的两个对象的关键字相同,则先前添加的对象被清除。

(2)public Object getAttibute(String key)获取session对象含有的关键字是key的对象。由于任何对象都可以添加到session对象中,因此用该方法取回对象时,应强制转化为原来的类型。

(3)public Enumeration getAttributeNames()session对象调用该方法产生一个枚举对象,该枚举对象使用nextElemets()遍历session中的各个对象所对应的关键字。

(4)public void removeAttribute(String name)session对象调用该方法移掉关键字key对应的对象。

session对象的生存周期

一个用户在某个WEB服务目录的session对象的生存期限依赖于客户是否关闭浏览器。如果用户关闭浏览器,那么用户session会消失,如果长时间不关闭浏览器,用户的session也可能消失。这是因为Tomcat服务器允许的最长的”发呆”状态时间为30分钟。可以修改Tomcat服务器下的web.xml重新设置“发呆”时间

30 out对象

out对象是javax.servlet.jsp.JspWriter类的一个子类的对象,它的作用是把信息发送到客户端的浏览器中。在out对象中,最常用的方法就是print();println()在使用print()或println()方法时,由于客户端是浏览器,因此向客户端输出时,可以使用HTML中的一些标记。例如: out.println(”

Hello,JSP

“); out对象常用方法

(1)void clear( )清除输出缓冲区的内容,但是不输出到客户端。 (2)void clearBuffer( )清除输出缓冲区的内容,并输出到客户端。

(3)void close( )关闭输出流,清除所有内容。在调用close( )方法后,out对象输出的流就不会发送到客户端。 (4)void flush( )输出缓冲区里面的数据,然后清空缓冲区。与clearBuffer( )不同的是,flush( )方法将在屏幕上输出数据后再清空缓冲区。

(5)int getBufferSize( )获取以KB为单位的目前缓冲区的大小。

(6)int getRemaining( )获取以KB为单位的缓冲区中空闲空间的大小。 (7)void newLine( ) 输出一个换行符。

(8)void print(data)将指定类型的数据输出到HTTP流中,不换行。print方法可用于多种类型的数据,包括:boolean、char、char[ ]、double、float、int、long、Object、String等。 (9)void println(data)与print相似,println也用于将指定类型的数据输出到HTTP流中,与print不同的是它将在结尾多输出一个换行符。

(10)boolean isAutoFlush( )确定是否自动刷新缓冲区,结果取决于page指令的AutoFlush属性。 application对象

我们已经知道,不同的用户session对象互不相同。但有时用户之间可能需要共享一个对象,这时就可用application对象。站点所有的用户公用一个application对象,当站点服务器开启的时候,application就被创建,直到网站关闭。利用application这一特性,可以方便地创建聊天室和网站计数器等常用站点应用程序 application对象的常用方法

(1) public void setAttribute(String key, Object obj) application对象可以调用该方法将参数Object 指定的对象 obj添加到application对象中,并为添加的对象指定了一个索引关键字,如果添加的两个对象的关键字相同,则先前添加对象被清除。

(2)public void removeAttribue(String key) 从当前application对象中删除关键字是key的对象。

(3)public Enumeration getAttributeNames()application对象调用该方法产生一个枚举对象,该枚举对象使用nextElemets()遍历application中的各个对象所对应的关键字。 (4)public Object getAttibue(String key)获取application对象含有的关键字是key的对象。由于任何对象都可以添加到application对象中,因此用该方法取回对象时,应强制转化为原来的类型。

application对象与session对象的异同

application对象与session对象都可以实现Web应用中信息的存储,但两者具有不同的作用域,session对象是针对用户的,进入网站时,每一个用户都会分配到一个单独的session对象,即使该用户设置了与其他用户相同名称的session属性,也不会发生冲突。与session不同的是,所有用户的application对象都是同一个,即所有用户共享这个内置的application对象,每一个用户都可以从各自浏览的JSP页面访问这个对象。

5.在web服务目录helloap中有一个JavaBean文件Hello.java,它位于com.dto包下,那么这个bean的字节码文件应该放在();JavaBean的标记;JavaBean时,存放bean对象的四种范围;一个完整JavaBean在类的命名上需要遵守以下规则。

(1)在当前Web服务目录下建立如下目录结构:Web服务目录\\WEB-INF\\classes

(2)根据类的包名,在目录classes下建立相应的子目录.比如: Web服务目录\\WEB-INF\\classes\\com\\dto

(3)将类文件复制到以上目录中即可.

注:如果修改了字节码文件,必须重新启动Tomcat服务器,才能使用新的字节码文件。 JavaBean的标记

(1)使用JSP动作标记:useBean。

(2)useBean标记的格式:来应用JavaBean。首先用定义要应用的JavaBean,然后用来存储属性值,用提取存储的属性值。

的作用是定义生成和使用Bean的环境。即如果使用,就可以定义Bean的名称、类型、以及使用期限等内容。它的基本操作是首先使用id和作用域查找一个现有的对象,如果在指定的作用域中没有找到具有指定id的对象,那么它会试图使用其他属性创建一个新实例。格式如下:

是设定通过定义的Bean对象属性的标记。元素使用Bean给定的setter方法,在Bean中设置一个或多个属性值。在使用这个元素之前必须得使用声明此Bean。因为,是联系在一起的,同时这它们使用的Bean实例的名字也应当相匹配。 语法格式为:

动作用于从一个JavaBeans中获取某个属性的值,无论原先这个属性是什么类型的,都将被转换为一个String类型的值。

语法格式为: useBean标签中scope的取值范围包括:

(1)scope 取值page bean的有效范围是当前也面。

(2)scope 取值session bean的有效范围是客户的会话期间。 (3)scope 取值request bean的有效范围是request期间。

(4)scope 取值application bean的有效范围是整个web服务器中的所有页面。 获取和修改bean的属性

当使用useBean动作标记创建一个bean后,在Java程序片中,这个bean就可以调用方法产生行为,如修改属性、使用类中的方法等。获取和修改bean的属性还可以使用动作标记getProperty和setProperty,而不必使用Java程序片。 动作标签getProperty

使用该标记可以获得bean的属性值.格式如下:

使用该标记可以设置bean的属性值

1.设置bean的属性的值为一个表达式的值或字符串 设置bean的属性为一个表达式的值的格式如下:

设置bean的属性为一个字符串的格式如下:

2.通过HTTP表单的参数的值来设置bean的相应属性的值:

格式如下:

6.Javascript和Java有什么区别?

虽然JavaScript与Java有紧密的联系,但却是两个公司开发的不同的两个产品。Java是SUN公司推出的新一代面向对象的程序设计语言,特别适合于Internet应用程序开发;而JavaScript是Netscape公司的产品,其目的是为了扩展Netscape Navigator功能,而开发的一种可以嵌入Web页面中的基于对象和事件驱动的解释性语言,它的前身是Live Script;而Java的前身是Oak语言。下面对两种语言间的异同作如下比较: 1.基于对象和面向对象

Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象。

JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种基于对象(Object Based)和事件驱动(Event Driver)的编程语言。因而它本身提供了非常丰富的内部对象供设计人员使用。 2.解释和编译

Java的源代码在传递到客户端执行之前,必须经过编译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立于某个特定的平台编译代码的束缚。JavaScript是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户编由浏览器解释执行。 3.强变量和弱变量

两种语言所采取的变量是不一样的。Java采用强类型变量检查,即所有变量在编译之前必须作声明。如:int x; x=1234;String y;y=4321;其中x=1234说明是一个整数,y=4321说明是一个字符串。JavaScript中变量声明,采用其弱类型。即变量在使用前不需作声明,而是解释器在运行时检查其数据类型,如:x=1234;y=\前者说明x为其数值型变量,而后者说明y为字符型变量。 4.代码格式不一样

Java是一种与HTML无关的格式,必须通过像HTML中引用外媒体那么进行装载,其代码以字节代码的形式保存在独立的文档中。 JavaScript的代码是一种文本字符格式,可以直接嵌入HTML文档中,并且可动态装载。编写HTML文档就像编辑文本文件一样方便。 5.嵌入方式不一样

在HTML文档中,两种编程语言的标识不同,JavaScript使用来标识,而Java使用...来标识。 6.静态联编和动态联编

Java采用静态联编,即Java的对象引用必须在编译时的进行,以使编译器能够实现强类型检查。

JavaScript采用动态联编,即JavaScript的对象引用在运行时进行检查,如不经编译则就无法实现对象引用的检查。

7.JSP中指令标记INCLUDE与JSP动作标记有何区别?动作和动作的区别。

指令标记include

include指令用来指定怎样把另一个文件包含到当前的JSP页面中,这个文件可以是普通的文本文件,也可以是一个JSP页面。语法如下:<%@ include file= \文件的URL\例如:<%@include file = “logo.htm”%>采用include指令,可以实现JSP页面的模块化,使JSP的开发和维护变得非常简单。必须保证被包含的文件和当前的JSP页面合并后的JSP页面符合JSP语法规则。如:当前的JSP页面的page指令的contentType属性值与被包含的文件contentType属性值必须相同。 动作标记include

include动作标记的语法有以下两种格式:

注意:

include动作标记在JSP页面执行阶段处理所需要包含的文件 。如果处理包含的文件不是JSP文件,就将文件的内容发送到客户端,由客户端负责执行并显示。如果处理包含的文件是JSP文件,那么Tomcat服务器就执行这个JSP文件,然后将执行的结果发送到客户端,并由客户端负责显示。

include动作标记与include指令标记的区别:

include指令标记为静态嵌入方式;include动作标记为动态载入方式。 动作标记forward

1. forward动作标记有两种格式:

2.该标记作用是从该标记出现处停止当前JSP页面的继续执行,而转向执行forward动作标 记中page属性所指定的JSP页面。 动作标记param

1、param动作标记的格式如下:

用来传递一个或多个参数到指定的动态文件,能在一个页面中使用多个“” 来传递多个参数。如:。 2、param动作标记可以作为include、forward动作标记的子标记来使用,该标记以“名字-值”对的形式为这些动作标记提供附加信息。如:<jsp:include page=“mypage.jsp”>

8.Servlet生命周期相关的方法和来响应客户请求完成的处理是什么?Servlet与JSP有何区别?

Servlet与JSP的区别

Servlet是一种在服务器端运行的Java程序,从某种意义上说,它就是服务器端的Applet。JSP是继Servlet后Sun公司推出的新技术,它是以Servlet为基础开发的。Servlet与JSP相比有以下几点区别:编程方式不同;Servlet必须在编译以后才能执行;运行速度

不同

Servlet的生命周期

Servlet运行机制和Applet类似,Servlet是在服务器端运行的,但是Applet是在客户端运行的。Servlet是javax.servlet.http包中HttpServlet类的子类,由服务器完成该子类的创建和初始化。

(1) 初始化Servlet对象。Servlet对象第一次被请求加载时,服务器初始化这个Servlet对象,即创建一个Servlet对象,对象调用init()方法完成必要的初始化工作。 (2)诞生的Servlet对象再调用service()方法响应客户的请求。 (3)当服务器关闭时,调用destroy()方法消灭Servlet对象。 Servlet的初始化:

init方法被调用于初始化Servlet,其格式为:

public void init(ServletConfig config) throws ServletException { super.init(config);} Servlet的执行:

service()方法的格式如下:

public void service(HttpServletRequest request,HttpServletResponse response)throw IOExceptionService方法可以用于实现事务逻辑,是处理请求的地方。在服务器装载初始化Servlet后,Servlet就能够处理客户端的请求,可以用service方法来实现。每个客户端请求自己service方法。这些方法接收客户端请求,并且发回相应的响应。 Servlet的结束:

当服务器卸载一个Servlet,它将调用Servlet的destroy方法。这个destroy方法是与初始化方法相反,同时从内存中释放Servlet。destroy的格式为:public void destroy(){??}

doGet()方法和doPost()方法

可以在Servlet类中重写doPost()或doGet()方法来响应用户的请求,如果不论用户请求类型是POST还是GET,服务器的处理过程完全相同,那么我们可以只在doPost()方法中编写处理过程,而在doGet()方法中再调用doPost()方法即可,或只在doGet()方法中编写处理过程,而在doPost()方法中再调用doGet()方法。如果根据请求的类型进行不同的处理,就需在两个方法中编写不同的处理过程。doGet和doPost方法分别对应form表单的属性method属性,method属性有两种get和post。利用get方法提交的总数据量不能超过2K,否则将提交失败,利用post方法则没有容量方面的限制。

9.在JavaScript中,与按钮点击事件相对应的事件处理属性是什么?

主要有以下几个事件: (1)单击事件onClick 当用户单击鼠标按钮时,产生onClick事件。同时onClick指定的事件处理程序或代码将被调用执行。通常在下列基本对象中产生:button(按钮对象)checkbox(复选框)radio (单选钮)reset buttons(重置按钮)submit buttons(提交按钮)例:可通过下列按钮激活change()文件:

(2)onChange改变事件

当利用text或texturea元素输入字符值改变时发该事件,同时当在select表格项中一个选项状态改变后也会引发该事件。例:

value=\(3)选中事件onSelect

当Text或Textarea对象中的文字被加亮后,引发该事件。 (4)获得焦点事件onFocus

当用户单击Text或textarea以及select对象时,产生该事件。此时该对象成为前台对象。

(5)失去焦点onBlur

当text对象或textarea对象以及select对象不再拥有焦点、而退到后台时,引发该文件,他与onFocas事件是一个对应的关系。 (6)载入文件onLoad

当文档载入时,产生该事件。onLoad一个作用就是在首次载入一个文档时检测cookie的值,并用一个变量为其赋值,使它可以被源代码使用。 (7)卸载文件onUnload

当Web页面退出时引发onUnload事件,并可更新Cookie的状态。

10.在使用JSP对数据库进行操作时,Statement类的方法。通过JDBC访问数据总共需几步?分别是什么?

在Java语言中,访问数据库的步骤是: (1)加载JDBC驱动程序; (2)创建数据库的连接; (3)执行SQL语句; (4)接收并处理结果集;

(5)断开连接,关闭数据库。 创建Statement 对象

Statement stmt=con.creatStatement(int type,int concurrency); type决定滚动方式,取值为:

(1)ResultSet.TYPE_FORWORD_ONLY结果集的游标只能向下滚动 (2) ResultSet.TYPE_SCROLL_INSENSITIVE结果集的游标可以上下移动,当数据库变化时,当前结果不变。

(3) ResultSet.TYPE_SCROLL_SENSITIVE返回可滚动的结果集,当数据库变化时,当前结果集同步改变。

concurrency的取值决定是否可以用结果集更新数据库。

(1)ResultSet.CONCUR_READ_ONLY不能用结果集更新数据库的表。 (2)ResultSet.CONCUR_UPDATABLE能用结果集更新数据库中的表。 当创建相应结果集后,可进行的操作 public boolean previous() public void beforeFirst() public void first() public void afterLast() public void last()

public boolean isBeforeFirst() public boolean isFirst() public boolean isAfterLast() public boolean isLast() public int getRow()

public boolean absolute(int row)

11.JavaScript,Servlet,JSP,JDBC,内置对象, Request对象,JavaBean ,