当前位置:文档之家› JSP复习题-简答

JSP复习题-简答

JSP复习题-简答
JSP复习题-简答

1-1 JSP的全称是什么?JSP有什么优点?JSP与ASP、PHP的相同点是什么?答:全称Java Server Page优点:继承了Java 技术的简单、便利、面向对象,跨平台和安全可靠等优点,在JSP中利用了。JavaBean和JSP元素,可以有效的将静态的HTML代码和动态数据区分开来,给程序的修改和扩展带来了很大方便;与其他动态网页技术相同点,通过在页面中加入脚本代码来生成动态内容。1-2 JSP中可重复使用的组件有哪些?JavaBean/JSP标准标签/自定义标签1-3 什么是JSP的预编译特征?答:JSP页面在被服务器执行前,都是已经被编译好的,并且通常只进行一次编译,即在JSP页面被第一次请求时进行编译,在后续的请求中如果JSP页面没有被修改过,服务器只需要直接调用这些已经被编译好的代码,这大大提高了访问速度。1-4 开发JSP程序需要具备哪些开发环境?答:Web浏览器/Web服务器/JDK/数据库1-7 本章介绍的用来开发JSP程序的开发工具是什么?答:Eclipse+MyEclipse2-1 什么是类?如何定义类?类的成员一般由哪两部分组成?这两部分的区别是什么?答:类是用来创建对象的模板,它包含被创建的对象的状态描述和方法的定义。定义类的格式:[修饰符] class <类名> [extends 父类名] [implements 接口列表]{定义成员变量定义成员方法}类的成员由成员变量和成员方法组成,成员变量用来表示类的状态和属性,成员方法表示类的行为。2-2 什么是成员变量和局部变量?他们的区别是什么答:成员变量是在类体中变量定义部分所声明的变量;局部变量是在方法体重声明的变量和方法的参数两者的区别在于有效范围不同,成员变量在整个类内都有效,而局部变量只在定义他的成员方法内才有效。2-3 如何创建、使用并销毁对象?答:创建对象的方法:类名对象名; 对象名= new 构造方法名([参数列表]);或者:类名对象名= new 构造方法名([参数列表]);使用对象的方法:可以通过对象来引用其成员变量,并改变成员变量的值,而且还可以通过对象来调用其成员方法。通过使用运“.”实现对成员变量的访问和成员方法的调用。销毁对象的操作由Java提供的垃圾回收机制自动完成。不需要手工完成销毁对象操作。或者调用对象的finalize()方法。2-4 构造方法的概念及用途是什么?答:构造方法是一种特殊的方法,它的名字必须与它所在类的名字完全相同,并且没有返回值,也不需要使用关键字void进行标识。构造方法用于对对象中的所有成员变量进行初始化,在创建对象时立即被调用。2-6 在Java语言中,处理异常的语句有哪4种?答try …catch、finally 、throw、throws2-7 在JSP中引入JavaScript的方法有哪些?方法1.在页面中直接嵌入JavaScript方法2.链接外部JavaScript2-9 在JavaScript中如何定义并调用函数?function functionName([parameter1, parameter2,…]){statements[return expression] }如果要调用不带参数的函数,则使用函数名加上括号即可;如果要调用的函数带参数,则在括号中加上需要传递的参数,如果包含多个参数,各参数间用逗号分隔。如果函数有返回值,那么可以使用赋值语句将函数值赋给一个变量。3-1 JSP页面由哪些元素组成?<%@ page language="java" contentType="text/html; charset=gb2312”%><%@ page import="java.util.Date" %> JSP页面的基本构成

<% String today=new Date().toLocaleString(); %>今天是:<%=today%>
3-2 JSP中主要包含哪几种指令标识?它们的作用及语法格式是什么?page指令定义在整个JSP 页面范围内有效的属性。<%@ page contentType="text/html;charset=gbk" %>include指令用于在当前的JSP页面中使用该指令的位置嵌入其他的文件,如果被包含的文件中有可执行的代码,则显示代码执行后的结果。<%@ include file="文件的绝对路径或相对路径" %>通过使用taglib指令,开发者就可以在页面中使用标准标签或自定义标签来完成特殊的功能。<%@ taglib {uri="URI" | tagdir="/WEB-INF/tags[/subdir]+"} prefix="tagPrefix" %><%@taglib prefix="mytagf" tagdir="/WEB-INF/tags"%>3-3 JSP中的脚本标识包含哪些元素?它们的作用及语法格式是什么?声明(Declaration)表达式(Expression)脚本程序(Scriptlet)<%! 声明变量或方法的代码%>在页面中通过声明标识声明的变量和方法,在整个页面内都有效,它们将成为JSP页面被转换为Java类后类成员变量和成员方法。并且它们会被多个线程即多个用户共享,其中的任何一个线程对声明的变量或方法的修改都会改变它们原来的状态。它们的生命周期从创建到服务器关闭后结束。表达式用于向页面中输出信息。<%= 变量或可以返回值的方法或Java表达式%>(1)向页面输出内容:<% String name="quchch"; %>用户名:<%=name%>(2)生成动态的链接地址:<% String path="welcome.jsp"; %>链接到welcom.jsp(3)动态指定Form表单处理页面:<% String name="logon.jsp";%>
(4)为通过循环语句生成的元素命名:<% for(int i=1;i<3;i++){ %> file<%=i%>:">
<% } %>在脚本程序中可以定义变量、调用方法和进行各种表达式

运算。在脚本程序中定义的变量在当前的整个页面内都有效,当前用户对该变量的操作不会影响到其他的用户。当变量所在的页面关闭后就会被销毁。<% Java程序片段%>注意:在声明中声明变量与在脚本标识中声明变量不同,前者是全局后者是局部3-4 在JSP中可以使用哪些释?它们的语法格式是什么?HTML中的注释带有JSP表达式的隐藏注释<%-- 注释内容--%>脚本程序(Scriptlet)中

A 3-1 完成下面代码的空白部分。

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

<%! Date theDate = new Date();

Date getDate(){

System.out.println("In getDate() method");

_______return theDate___________; }

%>

Hello! The time is now____<%=getDate()%>___

A 3-2 完成下面代码的空白部分。

<%@page contentType=“_text/html;charset=gbk___"%>

使用数组显示

<%

__int__ a[ ]={13,27,21,17,39};

for(int i=0;i<=4;i++){

out.print("第"+i+"个元素");

out.print("

");}

A3-3 完成下面代码的空白部分(输出156)

<%!

int caculate(int x,int n)

{int value = 0;

if(n >= 1)

{int a = 1;

for(int i=1;i<=n;i++)

a = a*x;

n = n - 1;

value = a + _____caculate(x,n)____;

}else

value = value + 1;

_______return value______;}%>

<%=caculate(5,3)%>

4-2 当表单提交信息中包括汉字时,在获取时应该做怎样的处理?当request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理。首先,将获取的字符串用ISO-8859-1进行编码,并将编码存放到一个字节数组中,然后再将这个数组转化为字符串对象即可。4-3如何实现禁用缓存功能?技巧:通过设置HTTP头可实现禁用缓存功能注意:下面的代码必须在没有任何输出发送到客户端之前使用response.setHeader("Cache-Control","no-store"); response.setDateHeader("Expires",0);4-5 如果用户长时间不操作session对象,用户的session对象会消失吗?为了弥补HTTP协议的“无状态”的这一缺点,JSP提供了一个session对象,这样服务器和客户端之间的连接就会一直保持下去,在一定时间内(系统默认在30分钟内),如果客户端不向服务器发出应答请求,session对象就会自动消失。在编写程序时,可以修改这个时间限定值,使session对象在特定时间内保存信息。4-6用户关闭浏览器后,用户的session会立即消失吗?从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。可以利用此特性来保存每个用户信息,当一个客户登录一个网站时,系统将为用户生成一个独一无二的会话对象,用以记录该用户的个人信息,一旦该用户退出网站,该会话对象将会被注销。4-8 session对象与application对象的区别有哪些?session对象和用户会话相关,不同用户的session是完全不同的对象;application 对象都是相同的一个对象,即共享这个内置的application对象。A4-5 分别阐述session及application的生命周期。session:

从用户打开浏览器窗口连接到网站上的一个页面开始,到用户关闭所有与这个网站连接窗口为止。每个用户单独一个该对象;application:从Web服务期启动开始,到Web服务器停止为止。所有用户共享该对象。A4-7要获得一个文本框表单控件传递的值,可以使用requeset对象的___getparameter()___法,要获得一组复选框表单控件传递的值,需要使用__ getparametervalues()__方法。5-1 什么是JavaBean?使用JavaBean的优点是什么?JavaBean组件就是利用Java 语言编写的组件,它好比一个封装好的容器,使用者并不知道其内部是如何构造的,但它却具有适应用户要求的功能,每个JavaBean都实现了一个特定的功能,通过合理地组织不同功能的JavaBean,可以快速生成一个全新的应用程序。JSP较其他同类语言最强有力的方面就是能够使用JavaBean组件1.一次性编写:JavaBean组件重用时不需要重新编写,只需要根据需求修改和升级代码即可2.任何地方执:JavaBean组件可以在任何平台上运行,可以轻易移植到各种运行平台上。3.任何地方重用:JavaBean组件能够被在多种方案中使用,包括应用程序、其他组件、Web应用等。5-3 在JSP 中一个标准的JavaBean需要具备哪些条件?通常一个标准的JavaBean需遵循以下规范:【1】实现java.io.Serializable 接口;【2】是一个公共类;【3】类中必须存在一个无参数的构造函数;【4】提供对应的setXxx()和getXxx()方法来存取类中的属性,方法中的“Xxx”为属性名称,属性的第一个字母应大写。若属性为布尔类型,则可使用isXxx()方法代替getXxx()方法。5-4 分别介绍值JavaBean与工具JavaBean的作用。值JavaBean严格遵循了JavaBean的命名规范,通常用来封装表单数据,作为信息的容器。工具JavaBean可以不遵循JavaBean规范,通常用于封装业务逻辑,数据操作等,例如连接数据库,对数据库进行增、删、改、查和解决中文乱码等操作。工具JavaBean可以实现业务逻辑与页面显示的分离,提高了代码的可读性与易维护性。本例中的JavaBean就是一个工具JavaBean,它用来转换字符串中的“<”与“>”字符。A5-5 为什么JavaBean必须遵守特定的规范,比如对于CounterBean 的count属性,必须提供getCount()和setCount()方法,而不能随心所欲的定义为getCOunt()、insertcount()等等其他名字?实现java.io.Serializable接口的类实例化的对象被JVM转化为一个字节序列,并且能够将这个字节序列完全恢复为原来的对象,序列化机制可以弥补网络传输中不同操作系统的差异问题。作为JavaBean,必须进行对象的序列化。使用一个JavaBean时,一般情况下是在设计阶段对它的状态信息进行配置,并在程序启动后期恢复,这种具体工作是由序列化完成的。6-1 什么是servlet?Servlet的技术特点是什么?Servlet与JSP有什么区别?技术简介是一种独立于平台和协议的服务器端的Java技术,可以用来生成动态的Web页面。是遵循Servlet API规范的Java程序。Java 语言能够实现的功能,Servlet基本上都能实现。

主要用于处理客户端传来的Http请求,并返回一个响应。直接继承javax.servlet.http.HttpServlet。

需要在web.xml中进行描述,例如,映射执行Servlet的名字,配置Servlet类、初始化参数,进行安全配置、URL 映射和设置启动的优先权等。6-2 创建一个Servlet通常分为哪几个步骤?继承HttpServlet抽象类。public class xxx extends HttpServlet{覆盖HttpServlet的部分方法,如覆盖service()或doGet()或doPost()方法重载。如果有HTTP 请求信息的话,获取该信息。可通过调用HttpServletRequest类对象的以下方法获取:getParameterNames()//获取请求中所有参数的名字getParameter()//获取请求中指定参数的值getParameterValues()//获取请求中所有参数的值生成HTTP响应。HttpServletResponse类对象生成响应,并将它返回到发出请求的客户机上。

编译servlet。javac -classpath .;servlet-api.jar x.java7-1 JSPSmartUpload、Java Mail、JFreeChart和iText组件的作用是什么?jspSmartUpload组件-上传&下载;JavaMail组件-Email发送接收;jFreeChart组件-图表;iText组件-PDF读写;jExcel组件-Excel读写7-2 怎么解决在实现文件下载时抛出getOutputStream() has already been called for this response异常的情况?下载文件原理:JSP内置对象response调用方法getOutputStream()可以获取一个指向客户输出流,服务器将文件写入这个流,客户就可以下载这个文件了。当JSP页面提供下载功能时,应当使用response 对象向客户发送HTTP头信息,说明文件的MIME类型,这样浏览器就会调用相应的外部程序打开下载的文件。7-3 在使用JFreeChart组件时,需要进行哪些准备工作?利用JFreeChart组件生成动态统计图表的基本步骤:(1)创建绘图数据集合;(2)创建JFreeChart实例;(3)自定义图表绘制属性,该步可选;(4)生成指定格式的图片,并返回图片名称;(5)组织图片浏览路径;(6)通过HTML中的标记显示图片。7-4 在使用iText组件时,如何将PDF文档设定成B5页面大小?利用iText组件生成PDF的基本步骤:(1)建立com.lowagie.text.Document对象的实例;Document document = new Document(); (2)建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中;PdfWriter.getInstance(document, new FileOutputStream("a.pdf")); (3)打开文档;document.open(); (4)向文档中添加内容;document.add(new Paragraph("Hello World")); (5)关闭文档;document.close();

8-1 在Windows2003Server操作系统中,通过JDBC连接SQL Server2000数据库需要进行什么操作?下载jar包,放在WEB-INF 下,ab夹下,使用JDBC-ODBC桥,创建数据源/直接连接数据。8-3 写出SQL Server2000数据库的驱动及连接本地机器上的数据库db_database的URL地址。String driverClass="com.microsoft.jdbc.sqlserver.SQLServerDriver";String url ="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=db_database08";8-4 执行动态SQL语句的接口是什么?通过Statement接口的executeUpdate()或executeQuery()方法,可以执行SQL语句,同时将返回执行结果。Prepared Statement8-5 Statement实例又可以分为哪3种类型?功能分别是什么?(1)Statement状态集:能用来执行静态的SQL 语句;(2)PreparedStatement预编译状态集:增加了执行动态SQL语句的功能;(3)CallableStatement存储过程状态集:增加了执行数据库存储过程的功能。8-6 JDBC中提供的两种实现数据查询的方法是什么?如果执行的是

executeUpdate()方法,将返回一个int型数值,代表影响数据库记录的条数,即插入、修改或删除记录的条数;如果执行的是executeQuery()方法,将返回一个ResultSet型的结果集,其中不仅包含所有满足查询条件的记录还包含相应数据表的相关信息,例如,列的名称、类型和列的数量等。8-7 简述数据库连接池的优缺点。使用连接池的优点:(1)节省时间:创建一个新的数据库连接所耗费的时间主要取决于网络的速度以及应用程序和数据库服务器的(网络)距离,而且这个过程通常是一个很耗时的过程,而采用数据库连接池后,数据库连接请求则可以直接通过连接池满足,而不需要为该请求重新连接、认证到数据库服务器,从而节省了时间;(2)提高了数据库连接的重复使用率;(3)解决了数据库对连接数量的限制。使用连接池的缺点:(1)连接池中可能存在多个与数据库保持连接但未被使用的连接,在一定程度上浪费了资源(2)要求开发人员和使用者准确估算系统需要提供的最大数据库连接的数量。

A8-2请为下面的代码片段增加注释

// ①(1)加载JDBC驱动程序

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

// ②(2)创建Connection对象的实例

Connection conn = DriverManager.getConnection("jdbc:odbc:db","","");

// ③(3)创建状态集

Statement stmt = conn.createStatement();

// ④(4)执行SQL语句

ResultSet rs = stmt.executeQuery("select * from tabs");

// ⑤(5)获得查询结果

while(rs.next()){

System.out.println(rs.getString(1));

}rs.close();stmt.close();conn.close();

1.JDBC-ODBC Bridge通过本地的ODBC Driver连接到RDBMS上。这种连接方式必须将ODBC二进制代码(许多情况下还包括数据库客户机代码)加载到使用该驱动程序的每个客户机上,因此,这种类型的驱动程序最适合于企业网,或者是利用Java编写的3层结构的应用程序服务器代码。2.JDBC-Native API Bridge

通过调用本地的程序实现数据库连接,这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其他DBMS的调用。需要注意的是,和JDBC-ODBC Bridge驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上。3.JDBC-middleware是一种完全利用Java编写的JDBC驱动,将JDBC转换为与DBMS无关的网络协议,然后将这种协议通过网络服务器转换为DBMS协议,这种网络服务器中间件能够将纯Java客户机连接到多种不同的数据库上,使用的具体协议取决于提供者。通常情况下,这是最为灵活的JDBC驱动程序,有可能所有这种解决方案的提供者都提供适合于Intranet用的产品。为了使这些产品也支持Internet访问,它们必须处理Web所提出的安全性、通过防火墙的访问等方面的额外要求。4.Pure JDBC Driver是一种完全利用Java编写的JDBC驱动,这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。这将允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。由于许多这样的协议都是专用的,因此数据库提供者自己将是主要来源,而且主流的数据库目前基本都提供了针对自身数据库的这种驱动。A8-7 为什么传统的JDBC连接方式在连接过于频繁的情况下会造成数据库的不稳定?传统没有使用连接池,连接没有上下限控制连接数据库占用资源较高

补充程序

Xample5_2.jsp

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

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

<% Connection con;

Statement sql;

ResultSet rs;

try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }

catch(ClassNotFoundException e){}

try {con=DriverManager.getConnection("jdbc:odbc:sun","sa","");

sql=con.createStatement();

rs=sql.executeQuery("SELECT * FROM students WHERE 英语成绩>= 80 "); out.print("

");

out.print("

");

out.print("

");

while(rs.next())

out.print("

");

out.print("

");

out.print("

") ; }out.print("
"+"姓名");

out.print("

"+"英语成绩");

out.print("

"+rs.getString(2)+""+rs.getInt("英语成绩")+"
");

con.close();}

catch(SQLException e1) {}%>

Xample5_1.jsp

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

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

<% Connection con;

Statement sql;

ResultSet rs;

try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }

catch(ClassNotFoundException e){}

try { con=DriverManager.getConnection("jdbc:odbc:sun","sa","");

sql=con.createStatement();

rs=sql.executeQuery("SELECT * FROM students");

out.print("

");

out.print("

");

out.print("

");

while(rs.next())

{ out.print("

");

out.print("

");

out.print("

");

out.print("

");

out.print("

");

out.print("

");

out.print("

") ; }

out.print("

"+"学号");

out.print("

"+"数学成绩");

out.print("

"+"英语成绩");

out.print("

"+"物理成绩");

out.print("

"+rs.getString(1)+""+rs.getString(2)+""+rs.getInt("数学成绩")+""+rs.getInt("英语成绩")+""+rs.getInt("物理成绩")+"
");

con.close();}

catch(SQLException e1) {} %>

1.<%@pagecontentType="text/html;charset=gbk"%>

<%request.setCharacterEncoding("gbk";

String strUserName="";

String strUserPWD="";

strUserName=request.getParameter("UserID");

strUserPWD=request.getParameter("UserPWD");%>

姓名:<%=strUserName%>

密码:<%=strUserPWD%>

(2)

姓名:

name="UserID">

密码:

2、(1)<%@ page contentType="text/html;charset=gbk"%>

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

<%String current_param="";

request.setCharacterEncoding("gbk");

Enumeration params=request.getParameterNames();

while(params.hasMoreElements()){

current_param=(String)params.nextElement();

out.println("Name:"+current_param+"
");

out.println("Values:"+request.getParameter(current_param)+"
");}%> (2)

姓名:

name="UserID">

密码:

3、使用response对象的常用方法制作界面

(1)<%@page contentType="text/html;chatset=gbk"%> <% response.sendRedirect("out.jsp");%>

(2)<%@page contentType="text/html;charset=gbk"%> <%@ page import="java.util.*"%>

现在的时间是:

<% out.println(""+new Date());

response.setHeader("Refresh","5");%>

Example2_2.jsp

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

<%! int number=0;

synchronized void countPeople()

{ number++; } %>

<% countPeople(); //在程序片中调用方法%>

您是第<%=number%>

个访问本站的客户。

Example2_3.jsp

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

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

<%! int number=0;

File file=new File("count.txt") ;

synchronized void countPeople()//计算访问次数的同步方法

{ if(!file.exists())

{ number++;

try { file.createNewFile();

FileOutputStream out=new FileOutputStream("count.txt"); DataOutputStream dataOut=new DataOutputStream(out); dataOut.writeInt(number);

out.close();

dataOut.close();}

catch(IOException ee){} }

else { try{

FileInputStream in=new FileInputStream("count.txt");

DataInputStream dataIn=new DataInputStream(in);

number=dataIn.readInt();

number++;

in.close();

dataIn.close();

FileOutputStream out=new FileOutputStream("count.txt"); DataOutputStream dataOut=new DataOutputStream(out); dataOut.writeInt(number);

out.close();

dataOut.close();}

catch(IOException ee){} }}%>

<% countPeople();%>

您是第

<%=number%>

个访问本站的客户。

Example2_4.jsp

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

请输入圆的半径:


<%! public class Circle

{ double r;

Circle(double r)

{ this.r=r; }

double 求面积()

{ return Math.PI*r*r; }

double 求周长()

{ return Math.PI*2*r; } } %>

<% String str=request.getParameter("cat");

double r;

if(str!=null)

{ r=Double.parseDouble(str); }

else { r=1; }

Circle circle=new Circle(r); //创建对象。%>

圆的面积是:


<%=circle.求面积()%>

圆的周长是:


<%=circle.求周长()%>

Example2_5.jsp

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

<%! long continueSum(int n)

{ int sum=0;

for(int i=1;i<=n;i++)

{ sum=sum+i; }

return sum; } %>

1到100的连续和:

<% long sum;

sum=continueSum(100);

out.print(""+sum); %>

Tom.jsp

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

<% String str=request.getParameter("computer"); //获取值。int n=Integer.parseInt(str);

int sum=0;

for(int i=1;i<=n;i++)

{ sum=sum+i; } %>

从1到<%=n%>的连续和是:


<%=sum%>

Name.jsp

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

输入你的姓名:

点击送出按钮:


login.jsp

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

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

<%! Hashtable hashtable=new Hashtable();

public synchronized void putName(String s)

{ hashtable.put(s,s); } %>

<% String name=request.getParameter("name");

if(name==null)

{ name=""; }

byte b[]=name.getBytes("ISO-8859-1");

name=new String(b);

if(!(hashtable.containsKey(name)))

{ putName(name);

out.print("
"+"您已经注册成功");

out.print("
"+"您注册的名字是"+name); }

else

{ out.print("
"+"该名字已经存在,请您换个名字"); } %>

Radio.jsp

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

诗人李白是中国历史上哪个朝代的人:

宋朝

唐朝

明朝

元朝


小说红楼梦的作者是:


曹雪芹

罗贯中

李白

司马迁


Answer.jsp

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

<% int n=0;

String s1=request.getParameter("R");

String s2=request.getParameter("P");

if(s1==null)

{s1="";}

if(s2==null)

{s2="";}

if(s1.equals("b"))

{ n++;}

if(s2.equals("a"))

{ n++;}%>

您得了<%=n%>分

Example2_12.jsp

<%@ page contentType="text/html;charset=GB2312" %> <%@ page import="java.util.*" %>

现在的时间是:

<% out.println(""+new Date());

response.setHeader("Refresh","5"); %>

JSP期末考试题复习题

针对以下题目请选择正确的答案(每道题目有一个或多哥正确的答案)。每一道题目,所有答案都选对,则该题加分,所选答案错误或不能选出所有正确答案,则该题不得分。 1)在JSP中,要定义一个方法,需要用到以下()元素。(选择一项) a) <%= %> b) <% %> c) <%! %> d) <%@ %> 2)JSP页面经过编译之后,将创建一个()。(选择一项) a) applet b) servlet c) application d) exe文件 3)当JSP页面执行自定义标签,遇到结束标签时将调用()方法执行处理。(选择一项) a) doStartTag() b) doEndTag() c) doInitBody() d) doAfterBody() 4) 在J2EE中,test.jsp文件中有如下一行代码:(选择一项) 要使user对象中一直存在于对话中,直至其终止或被删除为止,下划线中应填入()。 a) page b) request c) session d) application 5) 在J2EE中,以下不是JSP隐式对象的是()。(选择一项) a) pageContext b) context c) application d) out 6) Servlet中,HttpServletResponse的()方法用来把一个Http请求重定向到另外的URL。(选择一项) a) sendURL() b) redirectURL() c) sendRedirect() d) redirectResponse() 7) 在JSP中,page指令的()属性用来引入需要的包或类。(选择一项) a) extends b) import c) languge d) contentType 8) 在Servlet过滤器的生命周期方法中,每当传递请求或响应时,web容器会调用()方法。(选择一项) a) init b) service c) doFilter d) destroy 9) 在JSP中,只有一行代码:<%=’A’+’B’%>,运行将输出()。(选择一项) a) A+B b) AB c) 131 d) 错误信息,因为表达式是错误的 10)给定一个Servlet的代码片段如下: Public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ ______ out.println(“hi kitty!”); out.close(); } 运行次Servlet时输出如下: hi kitty! 则应在此Servle t下划线处填充如下代码。(选项一项) a) PrintWriter out = response.getWriter(); b) PrintWriter out = request.getWriter(); c) OutputStream out = response.getOutputStream(); d) OutputStream out = request.getWriter(); 11)给定如下JSP代码,假定在浏览器中输入URL:http://localhost:8080/web/jsp1.jsp,可以调用这个JSP,那么这个

JSP试题及答案

第一章 一.选择题 1.早期的动态网站开发技术主要使用的是()技术。该技术的基本原理是将浏览器提交至Web服务器的数据通过环境变量传递给其他外部程序,经外部程序处理后,再把处理结果传送给Web服务器,最后由Web服务器把处理结果返回浏览器。 A.JSP B.ASP C.PHP D.CGI 2.JSP页面的代码由两个部分组成,它们是()和()。 A.javascript代码 B.vbscript代码 C.HTML代码 D.JSP代码 3.JSP在服务器中进行编译时,将首先被转译成() A.JA V A语言 B.HTML代码 C.servlet D.以上都是 4.在一个JSP页面代码中一定没有的部分是() A.javascript代码 B.JSP指令 C.JSP动作 D.HTML代码 二.问答题 1.简述JSP的基本运行原理。 2.列举出JSP具有的一些特点。

参考答案 一.选择题 1. D 2. C D 3. C 4. A 二.问答题 1.答:首先由浏览器向Web服务器提出访问JSP页面的请求(Request),然后由JSP容器负责将JSP转换成Servlet,产生的Servlet经过编译后生成类文件,然后再把类文件加载到内存进行执行。最后由Web服务器将执行结果响应(Response)给客户端浏览器。 2.答:1. 一次编写,随处运行 2. 可重用组件技术 3. 标记化页面开发 4. 对大型复杂Web应用支持良好 第二章习题 三.选择题 1.下列不是JSP开发工具的是() A.JBuilder B.IBM WebSphere C.MyEclipse D.Firework 2.要建构JSP的开发环境,除了需要安装以上的JSP开发工具外,还必须安装()和() A.JDK B.Dreamweaver MX C.Flash MX D.Tomcat 3.JSP隶属Java家族,下列不属于JA V A家族的是() A.servlet B.javabean C.java D.javascript 4.web应用程序体系结构最多可分为三层,不属于这三层的是() A.表示层 B.业务层 C.数据访问层 D.网络链接层

jsp-servlet题库(附答案)

1.B 编写一个Filter,需要() A. 继承Filter 类 B. 实现Filter 接口 C. 继承HttpFilter 类 D. 实现HttpFilter接口 2.D 自定义标签的配置文件放在________ A. WebRoot B. lib C. classes D. WEB-INF 3. ABC 有关会话跟踪技术描述正确的是( )(多选) A. Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端。 B. 关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期。 C. 在禁用Cookie时可以使用URL重写技术跟踪会话。 D. 隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示。 4.C 在J2EE中,重定向到另一个页面,以下()语句是正确的 A. request . sendRedirect(“http :// www . svse . com . cn”); B. request . sendRedirect(); C. response . sendRedirect(“http: // www . svse . com . cn”); D. response .sendRedirect(); 5.B EL表达式,${10 mod 3},执行结果为( ) A. 10 mod 3 B. 1 C. 3 D. null 6. C 自定义标签的作用是( ) A. 编写和使用方便 B. 规定是这样的,如果不用,别人会说我们不专业 C. 可以减少jsp中的java代码,将代码与界面标签分离,简化前台开发 D. 连数据库 7.B request.getRequestDispatcher().forward(request,response)称之为( ) A. 流转 B. 转发 C. 重定向 D. 导航 8. BCD 有关Servlet的生命周期说法正确的有( ) (多选) A. Servlet的生命周期由Servlet实例控制。 B. init()方法在创建完Servlet实例后对其进行初始化,传递的参数为实现ServletContext 接口的对象。 C. service()方法响应客户端发出的请求。 D. destroy()方法释放Servlet实例。 9.B 在J2EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是()。(选择一项) Public class Servlet1 extends HttpServlet{ public void init() throws ServletException{ } public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("hello!"); } A. 编译该文件时会提示缺少doGet()或者dopost()方法,编译不能够成功通过 B. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到输出文字:hello!

JSP期末考试复习题

J S P期末考试复习题文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

一、填空(共10分,每空1分) 1. JSP 是_____ Sun Microsystems ___ 公司倡导,由多家公司参与一起建立的一种动态网页技术标准,主要用于开发动态网页。 2. 在Tomcat服务器中部署Web应用程序时,可以直接将Web程序归档文件WAR存放到t o m c a t服务的_______________w e b a p p s________目录中。 3. 在Servlet中用来接收客户表单数据的两个常用方法为____ get _________、 _____post _________。 4. 在一个应用程序中不同的页面共享数据时,最好的JSP内置对象为 __________application /session _______。 5. 假设有一个JavaScript函数为 show() ,如果要求在页面加载时就执行,最好使用标记的_____event/onload _________什么事件。 6. 在删除数据时要求用户确认是否真的删除数据,如果使用JavaScript实现,应 用使用______onclick/confirm __________对话框。 7. JDBC中_________DriverManager/Connection _接口用于连接数据库。 8. Resulset接口的_________next()_方法可以使结果集指针指向下行数据。 9. 如果要获取请求客户端的IP地址,应使用______象。 二、单选选择 (60分,每题分) 1.在JSP中如果要导入 .* 包,应该使用_________A______指令。 A. page B. taglib C. include D. forward 2.如果当前JSP页面出现异常时需要转到一个异常页,需要设置page 指令的 __D______属性。

java ee 期末试题 (1)要点

1、下列哪一项不是Java EE的常用技术(D) A、JSP B、Hibernate C、Spring D、JNDB 2、servlet与一般Java类的相同点是什么?(D) A、 B、Servlet是运行在Web服务器的一个Web组件 C、Servlet通常是通过HTTP协议回复Web客户端的请求 D、Servlet是运行在Web容器的Java类 3、以下哪一个是市场上流行的Java EE服务器(A) A、Apache B、tomcat C、glassfish D、netbeans 4、EJB的作用是(C) A、Servlet组件和JSP组件 B、用于丰富客户端图形界面显示 C、通过RMI/IIOP协议与EJB容器通信远处电泳EJB的功能方法,进而完成业务处理。 D、GUI交互界面的开发,负责与系统用户的交互 5、分析以下程序: public class x{ public static void main(String[]args){ String ol=new String("ABV"); String o2=new String("ABV"); if(o1.equals(o2)){ System.out.println("Equal"); } }该程序的执行结果是( B )。 A. 程序执行后无输出 B. 程序执行后输出“Equal” C. 程序在第5行出现编译错误 D. 程序执行后出现异常 6、执行完下面的程序片段后,下面哪些结论是正确的?(B) int a,b,c; a=1; b=2; c=(a+b>3?a++:++b); A. a的值是2,b的值是3 B. a的值是1,b的值是3 C.a的值是1,b的值是2 D.c的值是false 6、Struts框架的控制器主要由(C )负责。 A. EJB

JSP试题及答案

第1章WEB开发环境 (1)下列关于WEB开发说法正确的是。 A)Web是图形化的和易于导航的B)Web与平台无关 C)Web是分布式的D)Web 是动态的E)Web 是静态的 (2)下列关于Tomcat说法正确的是。 A)Tomcat是一种编程语言B)Tomcat是一种开发工具C)Tomcat是一种编程思想 D)Tomcat是一种开编程规范E)Tomcat是一个免费的开源的Serlvet容器 (3)下列关于Tomcat个目录说法错误的是。 A)bin目录--包含启动/关闭脚本B)conf目录——包含不同的配置文件 C)Lib目录--包含Tomcat使用的JAR文件 D)webapps目录--包含web项目示例,发布web应用时,默认情况下web文件夹放于此目录下E)work目录--包含web项目示例,当发布web应用时,默认情况下把web文件夹放于此目录下 (4)下列关于HTTP协议说法正确的是。 A)HTTP是一种请求/响应式的协议 B)HTTP请求消息中Accept表示浏览器可接受的MIME类型 C)HTTP请求消息中Accept-Encoding表示浏览器能够进行解码的数据编码方式 D)HTTP请求消息中Accept-Language表示浏览器所希望的语言种类 E)HTTP请求消息中Host表示初始URL中的主机和端口。 (5)下列对于JSP说法中正确的是。 A)JSP是Sun公司推出的新一代站点开发语言B)JSP采用标识简化页面开发 C)JSP完全解决了目前ASP、PHP的一个通病——脚本级执行 D)JSP将内容的生成和显示进行分离E)JSP强调可重用的组件 第2章JSP编译指令 (1)下列关于JSP编译指令说法错误的是。 A)编译指令用于从JSP发送一个信息到容器上 B)编译指令用来设置全局变量、声明类要实现的方法和输出内容的类型等 C)编译指令向客户端产生任何输出D)编译指令所有的指令都在整个JSP页面内有效 E)编译指令元素为编译阶段提供了全局信息 (2)下面关于page指令说法中错误的是。 A)page指令用来定义JSP页面中的全局属性B)一个JSP页面只能包含一个page指令 C)除了import外,其他page指令定义的属性/值只能出现一次。 D)language属性用来指示所使用的语言E)“java”是当前唯一可用的JSP语言 (3)下面关于page指令的属性说法错误的是。 A)import属性用于指定导入哪些包 B)contenttype属性用来指定JSP页面的字符编码和响应的mime类型

JSP复习题1

选择题(没有注明多选,则为单选) 1.下面哪个不是Form的元素? ( D) A.Input B: textarea C: select D: table 2. HTML页面中,下面哪个表示空格( B ) A.& B.  C.© D.< 3.中的align属性是什么含义? ( C ) A.加粗 B 斜体 C 对齐方式 D 边框样式 4.单选按钮是下列哪一个? ( D ) A. B. C. D. 5.下边哪个不是JSP内置对象? ( C ) A.Session B request C cook D out 6.下边哪个是JSP指令标记( C ) A.<%……%> B. <%!……%> C. <%@……%> D.<%=……%> 7.当在JSP文件中要使用到ArrayList对象时,应在JSP文件中加入以下哪个语句?( C ) A. B. C. <%@ page import=”java.util.*” /> D.<%@ page include=”java.util.*” /> 8.关于JavaBean的说法,哪个是正确的?( D ) A.JavaBean的具体类可以不是public的 B.JavaBean可以只提供一个带参数的构造器 C.JavaBean可以象Html标记一样不关闭 D.JavaBean可以保存状态 9. JavaBean的生命周期中,哪个是用来跟踪用户会话的( A ) A.session B.request C.page D.application 10.要在session对象中保存属性,可以使用以下哪个语句( B ) A.session.getAttribute(“key”,”value”) B.session.setAttribute(“key”,”value”) C.session.setAttribute(“key”) D.session.getAttribute(“key”) 11.Jsp:forward 和sendredirect 都是用来做页面跳转的,描述错误的是?(D) A.forward之后可以使用原来的request对象,而且效率更高。 B.sendredirect之后不可以使用原来的request对象,而且效率低。 C.forward地址栏不变化,只能在web应用程序内的页面间跳转。 D.forward地址栏变化,可以跳转到任何页面和机器。

Javaweb练习题1(含答案)模板

Javaweb ?选择题 o 1. 页面中需要增加链接,正确的HTML代码是_A_____。 A. 百度 B. 百度 C. https://www.doczj.com/doc/2817800915.html, D. 百度 o 2. 以下选项中,哪个全部都是表格标签___ B___。 A.

B.
C.
D.