2024年6月6日发(作者:)

广东海洋大学jsp复习资料

JSP运行原理

当服务器上的一个 JSP 页面被第一次请求执行时,服务器上的 JSP 引擎首先

将 JSP页面文件转译成一个 java 文件,再将这个 java 文件编译生成字节码

文件,然后通过执行字节码文件响应客户的请求,而当这个 JSP 页面再次被请

求执行时,JSP 引擎将直接执行这个字节码文件来响应客户,这也是 JSP 比

ASP 速度快的一个原因。而 JSP 页面的首次执行往往由服务器管理者来执行。

这个字节码文件的主要工作是:

1、把 JSP 页面中普通的 HTML 标记符号(页面的静态部分)交给用户的浏览

器负责显示。

2、负责处理JSP标记,并将有关的处理结果发送到用户的浏览器.

3、执行“<%”和“%>”之间的 java 程序片(JSP 页面中的动态部分),并把

执行结果交给用户的浏览器显示。

4、当多个用户请求一个 JSP 页面时,Tomcat服务器为每个用户启动一个线程

而不是启动一个进程,这些线程由 Tomcat服务器来管理,与传统的 CGI 为每

个客户启动一个进程相比较,效率要高的多。

注意:如果对JSP页面进行了修改、保存,那么服务器会生成新的字节码。我

们可以在服务器下的workCatalinalocalhost_orgapachejsp目录下找

到服务器生成的JSP页面对应的JAVA文件,以及编译JAVA文件得到的字节码

文件。

JSP指令标记

<%@ page contentType=”text/html;charset=GB2312”%>

<%@ page import= “.*”,“.*”%>

如果需要在JSP页面的某处整体插入一个文件,可以使用include指令标

记,其标记语法为:<%@ include file=”文件的URL”%>

该指令标记的作用是在JSP页面出现该指令的位置处,静态插入一个文件。

include 动作标签格式为:

param子标记

该动作标签告诉 JSP 页面动态包含一个文件,即 JSP 页面运行时

才将文件加入。与静态插入文件的 include 指令标签不同;当 JSP 引

擎把 JSP 页面转译成 Java 文件时,不把 JSP页面中动作指令 includ

e 所包含的文件与原 JSP 页面合并成一个新的 JSP 页面,而是告诉Ja

va 解释器,这个文件在 JSP 运行时(Java 文件的字节码文件被加载执

行)才包含进来。

一个JSP页面可由5种元素组成普通的HTML标记、JSP标记(如指令标

记、动作标记)、变量和方法的声明、Java程序片、Java表达式。

Tag标记

<%@ taglib tagdir=”/WEB-INF/tags” prefix=”show”%>

<%@ tag pageEncoding=”utf-8”%>

<%@ attribute name=”result” required=”true” type=”

”%>

<%@ variable name-given=”time” variable-class=””

scope=”AT_END”%>

JSP内置对象

ribute(“page”,”hello”);

getParameter(String s)方法获取表单提交过来的信息。

racterEncoding(“utf-8”);

tentType(“utf-8”);

request对象获取请求所提交的各类信息。

getMethod():获取用户提交信息的方式。例如post或get.

getSchema():获得当前页面使用的协议:例如http.

getRemoteHost():获取用户机的名称(如果获取不到,就获取IP地址)。

getParameterNames():获取用户提交的信息体部分中name参数值的一个枚举。

标记

复选框checkbox

“ checked=“java”>

隐藏hidden

response对象的sendRedirect(URL url)方法实现用户的重定向。

response对象调用encodeURL()或encodeRedirectURL()方法实现URL重写。

使用Java数据库驱动程序

1.加载Java数据库驱动程序

try{e(“-

verDriver”);

}catch(Exccption e){

n(e);

}

2.建立连接

try{ String uri=“jdbc:sqlserver://192.168.100.1:1433;Database-

Name=Warehouser”;

String user=””;

String password=”sa”;

con=nection(uri,user,passw-

ord);

}catch(Exccption e){

n(e);

}

随机查询

Statement stmt=Statement(int type,int concurrency);

ResultSet re=eQuery(SQL语句);

type的取值决定滚动方式,取值可以是:

_FORWORD_ONLY;

_SCROLL_INSENSITIVE;

_SCROLL_SENSITIVE;

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

_READ_ONLY;

_UPDATABLE;

获取和修改bean的属性

” scope=”page”/>

/>

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

编写

hello

hello

/lookHello

getInitParameter(“”);获得配置文件中的参数.

重定向与转发

重定向方法:void sendRedirect(String location),对于浏览器来说是将不同

的请求。

RequestDispatcher对象

RequestDispatcher dispatcher=uesDispatcher(“”);

d(request,response);

HttpSession session=sion(true);

MVC模式

模型:一个或多个Javabean对象,用于存储数据。

视图:一个或多个JSP页面,其作用是向控制器提交必要的数据和为模型提供

数据显示,JSP页面使用HTML标记和Javabean标记来显示数据。

控制器:一个或多个servlet对象,根据视图提交的要求进行数据处理操作,

并将有关的结果存储到Javabean中,然后servlet使用转发的方式请求视图中

的某个JSP页面更新显示。

一、选择题

1.在JSP中如果要导入 .* 包,应该使用( A )指

令。

A. page B. taglib

C. include D. forward

2.下面哪一个不是JSP本身已加载的基本类?(B)

.* .*

t.* .*

3.如果当前JSP页面出现异常时需要转到一个异常页,需要设置page

指令的(B)属性。

A. Exception B. isErrorPage

C. error D. errorPage

4.对于预定义<%!预定义%>的说法错误的是:(C)

A、一次可声明多个变量和方法,只要以“;”结尾就行

B、一个声明仅在一个页面中有效

C、声明的变量将作为局部变量

D、在预定义中声明的变量将在JSP页面初始化时初始化

指令用于定义JSP文件中的全局属性,下列关于该指令用法的描

述不正确的是:(D )

A. <%@ page %>作用于整个JSP页面。

B. 可以在一个页面中使用多个<%@ page %>指令。

C. 为增强程序的可读性,建议将<%@ page %>指令放在JSP文件的

开头,但不是必须的。

D.<%@ page %>指令中的属性只能出现一次。

中的隐式注释为 (C )。

A. // 注释内容 B. C. <%--注释内容--

%> D. /* 注释内容*/

7.在JSP中,( A )动作用于将请求转发给其他JSP页面。

d e n perty

8.使用response对象进行重定向时使用的方法为( B )。

ribute( ) direct( )

C. setContentType( ) ribute( )

9.如果把用户名变量UserName放在session对象中,下面语句正确的是( )

e(UserName) e(“name”,UserName)

ribute(UserName) ribute(“na

me”,UserName)

10.在JSP中,文件中有如下一行代码:

要使user对象中一直存在于对话中,直至其终止或被删除为止,下划线

中应填入( C )。

t n ation

11.下述选项中不属于JDBC基本功能的是:( D )。

A.与数据库建立连接 B.提交SQL语句

C.处理查询结果 D.数据库维护管理

12.在JSP中,使用动作可以将javaBean嵌入JSP页面,

对JavaBean的访问范围不能是( C )。

A. page B. request C. response D. application

13.在JSP中调用JavaBean时不会用到的标记是( A )。

A. B.

C. D.

14.关于JavaBean正确的说法是:( A)

文件与Bean所定义的类名可以不同,但一定要注意区分字母

的大小写

B.在JSP文件中引用Bean,其实就是用语句

C.被引用的Bean文件的文件名后缀为.java

文件放在任何目录下都可以被引用

中使用标记时,不会出现的属性是:(C)。

ty D.以上皆不会出现

16.在标记中包含哪个标记( D )?

17.下面哪个标记产生的结果同<%=var%>( C )。

A. B.

C. D.

18.每次传递请求或响应时调用Filter的( B )方法。

() er() y() tParameter

Bean的( C )标记从已定义的资源包中检索某键的值。

ter e

t程序的入口点是:(A )

() () e() ()

30.不能在不同用户之间共享数据的方法是(A )

A.通过cookie B.利用文件系统

C.利用数据库 D.通过ServletContext对象

二、填空题

1.Tomcat服务器的默认端口是 8080 。

2.Servlet的生命周期分三个时期: 装载Servlet 、 创建一

个Servlet实例 、 销毁 。

3.在JSP中,当执行了查询操作时,一般将查询结果保存在 ResultSet 对

象中。

4.在JSP内置对象中,与请求相关的对象是 Request 对象。

5.在JSP中,可以使用操作来设置Bean的属性,也可

以使用操作来获取Bean的值。

6.异常的处理,可在该 方法的代码段中包含3类代码:try 、 catch和

finally代码块。

7.在JSP中,连接数据库的方式通常有两种:一种是通过JDBC-ODBC桥连

接;另一种是通过JDBC驱动程序连接。

8.JDBC中为Statement接口提供了3种执行方法,它们是:executeUpdate

方法、executeQuery方法 、execute方法 。

9.取表单(

)提交的参数,通常使用的内部对象是 request

方法是 getParameter 。

内置对象共有四种Scope,它们是page、request、session、

application。

11.事务处理技术包括数据查询和数据更新。

12.在JSP中使用Javabean可以通过动作元素。

13.如果你只希望你的Javabean在当前页面有效,应该设置scope=”page”。

14.如果你想使用Javabean设计一个网站计数器,那么该bean的scope应当

设为application。

15.从本质上讲,Servlet是Java类。

an一般将属性设置成私有的,通过使用getXXX()方法和setXXX()

方法来进行属性的取得和设置。

17.可以通过response对象的sendRedirect方法设置页面重定向,实现页面

跳转,

an的应用语言是Java。

三、简答题

1.JSP有哪些内置对象?作用分别是什么?

答:JSP共有以下9种基本内置组件:

1.request用户端请求,此请求会包含来自GET/POST请求的参数

2.response网页传回用户端的回应

3.pageContext网页的属性是在这里管理

4.session与请求有关的会话期

5.Application servlet正在执行的内容

6.out用来传送回应的输出

7.configservlet的构架部件

8.pageJSP网页本身

9.exception针对错误网页,未捕捉的例外

2.说明MVC设计模式中,M、V、C分别代表什么,有什么作用。

答案:

M代表Model(模型),该组件是对软件所处理问题逻辑的一种抽象,封装了

问题的核心数据,逻辑和功能实现,独立于具体的界面显示以及I/O操作。

V代表View(视图),该组件将表示模型数据,逻辑关系以及状态信息,以

某种形式展现给用户。视图组件从模型组件获得显示信息,并且对于相同的

显示信息可以通过不同的显示形式或视图展现给用户。