答案 选择题 1 B 11 D 21 A 31 B 41 B 51 C 61 C
2 C 12 B 22 D 32 B 42 D 52 B 62 D 3 C 13 A 23 C 33 A 43 C 53 A 63 4 A 14 D 24 A 34 B 44 C 54 B 5 B 15 B 25 B 35 B 45 B 55 C 65 6 B 16 B 26 C 36 D 46 B 56 D 66 7 A 17 D 27 C 37 A 47 B 57 D 67 8 D 18 C 28 D 38 D 48 C 58 B 68 9 B 19 D 29 A 39 B 49 A 59 D 69 10 C 20 A 30 A 40 D 50 D 60 A 70
一、填空题
1. 一个用户在不同的web 服务目录中的sesson 对象是相同的吗?不同 2. 一个用户在同一个web服务目录中的不同的JSP页面的session对象有可能是相同的吗?可能 3. 用户关闭浏览器后用户的sesson对象一定消失吗?是
4. 如果用户长时间不关闭浏览器,用户的ssession对象会消失吗?是 5. JSP中request内置对象使用_getParameter__方法获取表单数据。 6. JSP中使用response的__sendRedirect___方法实现页面的重定向。 7. 使用session对象的_setAttribute____方法, 在session对象中添加的对象,并指定索引关键字。 8. 使用session对象的_getAttribute______方法提取session中存储的对象。 9. JSP中的response内置对象使用__setContentType___方法来动态改变响应的MIME类型。
10. 13.JSP中的response内在对象使用__setHeader__方法动态添加相应头和值。 11. JSP中的response内在对象使用__setStatus__方法设置相应状态行。 12. 使用application对象的 _setAttribute_方法提取application中存储的对象。 13. 使用application对象的 _getAttribute_______方法提取application中存储的对象。 14. JSP中的out内置对象使用_print 或 _println____方法来输出各种数据。
二、简答题
1. 简述JSP页面的运行原理。
(1)如果是HTML标记,直接发送给用户浏览器。
(2)如果是JSP标记,则处理此标记,并将有关的结果发给用户浏览器。 (3)执行“<% %>”、“<%= %>”之间的java程序片,并将执行结果交给用户浏览器。
(4)当多个用户请求一个JSP页面时,tomcat服务器为每一用户启动一个线程来响应请求。
2. 简述web服务目录中WIB-INF下各子目录的作用?
WEB-INF下的classes目录下,存放web程序所使用的字节码文件(.class)比如java bean, servlet 等等,依据类所属包名,在classes目录下建立相应的子目录。
WEB-INF下的lib目录下,存放Web所用的jar包,比如数据库的jdbc驱动jar文件。如果为所有web所共用jar包,可直接放入到tomcat的lib目录中。
WEB-INF下的tags目录下,存放Web定义的标签库。
3. 在“<%! %>”之间声明的变量和在“<% %>”之间声明的变量有什么不同?
JSP引擎把JSP页面译成一个特殊的Servlet类,并将“<%!”和“%>”之间的部分翻译成类的成员部分。故(1)<%!”和“%>”之间声明的变量为JSP页面的成员变量,在整个JSP页面内有效,(2)与标记符号<%! %>所在的位置无关。多个用户请求一个JSP页面时,JSP引擎为每一个用户启动一个线程,且(3)这些线程共享JSP页面的成员变量。
“<%”和“%>”之间声明的变量称为(1)局部变量,局部变量(2)在JSP页面的声明处的上下文内的程序片以及表达式部分有效。(3)运行在不同线程中的Java程序片的局部变量相互隔离、互不干扰。
4. 指令<%@ page contentType=”application/msword” %>功用?指令<%@ page contentType=”text/html;charset=GB2312” %>功用
在<%@ page contentType =... %> 指令中,contentType属性指定JSP页面响应的MIME类型和及其字符编码集。当contentType设定为”application/msword”时,JSP引擎告知用户浏览器启动本地的MSWORD程序来处理收到的信息; 当contentType设定为”text/html;charset=GB2312”时,JSP引擎告知用户浏览器在收到响应后,启用HTML解析器来执行所收到的信息,页面显示时字符编码为”GB2312”。
5. 一个用户在某个Web服务目录的Session 对象生存周期与哪些因素有关? 用户第一次请求时,服务器生成一个session,并以cookie方式回传客户机。Session的消亡与三个因素有关:
其一,用户是否关闭了浏览器,如果浏览器关闭,则Session消失; 其二,session对象是否调用了invalidate()方法使session无效; 其三,sesson对象到达了最长发呆时间,如果是,则session对象消失。
6. 一个javabean类应遵守什么规则?
(1). 如果类的成员变量的名字是xxx,那么为了获取或更改成员变量的值,类
中必须提供两个方法 getXxx()
用来获取属性xxx及setXxx() 用来修改
属性xxx。 即方法的名字用get或set为前缀,后缀是首字母大写的成员变量名字。对于boolean类型的成员变量,允许使用“is”代替上面的“get”和“set”。
(2). 类中声明方法的访问属性都必须是public的。
(3). 如果Bean类存在构造方法,则类中必须有一个是public、无参数的构造
器。
7. 在JSP中如何使用javabean? 以bean:tom.jiafei.Circle为例.
(1).在使用bean的JSP页面中,使用page指令导入javaBean类 <%@ page import=\"tom.jiafei.Circle\" %>
(2).在JSP页面中再使用JSP动作标记:useBean,来加载使用bean。格式:
(3). 设置bean的指定的属性值
8. 重定向与转发有何区别?
重定向:使用response.sendRedirect(url)方法, 可以将用户重新定向到一个JSP页面或另一个Servlet。此时原请求对象request的内容全部无效,会依据.sendRedirect(url)参数发出请求。 转发:使用 RequestDispatcher对象,调用
void forward(ServletRequest request,ServletResponse response)
方法可以将用户对当前JSP页面或Servlet的请求转发给RequestDispatcher对象所指定的JSP页面或Servlet。
区别:重定向时原请求丢失;转发时原请求保留。
9. Servlet 生命周期?
(1) 初始化Servlet对象。Servlet对象第一次被请求加载时,服务器初始化这个Servlet对象,即创建一个Servlet对象,对象调用init()方法完成必要的初始化工作。 (2)诞生的Servlet对象再调用service()方法响应客户的请求。 (3)当服务器关闭时,调用destroy()方法,消灭Servlet对象。
编程题
1. 编写一段JSP代码,要求指明页面返回的MIME类型为HTML页面,字符集为GBK,同时导入java.util.Date 类。
<%@ page contentType=”text/html;charset=GBK” %> <%@ page import=”jav.util.Date” %>
2. 编写一个HTML表单,输入姓名,姓名的参数名为name,以post方式提交给 people.jsp
3. 编写一个超链,其提示登录,指向login.jsp 登录
4. 编写一段JSP代码,提取请求表单参数,参数名分别为a,b,c <%
String a = request.getParameter(“a”); String b = request.getParameter(“b”); String c = request.getParameter(“c”); %>
5. 编写一段JSP代码, 从会话中取出关键字”girl”的串对象,并输出到浏览器。 <%
String girl =(String)session.getAttribue(“girl”); out.println(girl); %>
6. 写一个javaBean类,表示圆对象,应有属性圆的半径r,周长length和面积area。 class Circle { private double r; Public Circle();
Public double getRadius() { return radius ;} Public double getArea() { return Math.PI*r*r ;}
Public double getLength() { return Math.PI*2*r ;} Public void setRadius(double r) { this.r = r; } }
7. 编写一段JSP代码,定义一个页面的成员方法cal计算一个数x的4次方。 <%!
double cal(x) { return x*x*x*x;} %>
8. 编写JSP代码,要求指明页面返回的MIME类型为plain,字符集为GBK,同时导入java.sql.Connection 类。
<%@ page contentType=”text/plain;charset=GBK” %> <%@ page import=”java.sql.Connection” %>
9. 编写一个HTML表单,输入用户名,密码姓名,参数名分别为username,password,以post方式提交给 login.jsp
10. 编写一个超链,其提示注册,指向reg.jsp 注册
11. 编写一段JSP代码,提取请求表单参数,参数名分别为username,password <%
String usename = request.getParameter(“username”); String password = request.getParameter(“password”); %>
12. 编写一段JSP代码, 从请求上下文中取出关键字”boy”的串对象,并输出到浏览器。 <%
String boy=(String)request.getAttribue(“boy”); out.println(boy); %>
13. 写一个javaBean类,表示矩形对象,应有属性长a和宽b,周长length和面积area。 class Rect{
private double a,b; Public Rect();
Public double getA() { return a;}
Public double getB() { return b;} Public double getArea() { return a*b;} Public double getLength() { return 2*(a+b);} Public void setA(double a) { this.a = a; }
Public void setB(double b) { this.b = b; } }
14. 编写一段JSP代码,定义一个页面的成员方法计算一个数x的3次方。 <%!
double cal(x) { return x*x*x;} %>