资源描述
JavaWeb应用开发期末试卷及答案AB卷2套
一、选择题(共20题,总计40分,每小题2分)
1.在jsp中,要使用一个表达式,需要用到以下( )元素。
A、<%= %> B、 <% %> C、 <%! %> D、<%@ %>
2.在客户端浏览器的源代码中可以看到( )
A、JSP注释 B、HTML注释 C、JSP注释和HTML注释 D、JAVA注释
3.以下哪个包是page指令默认导入的( )
A、java.lang.* B、java.util.* C、javax.servlet.* D、javax.servlet.jsp.*
4.page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不正确的是( )
A、<%@ page %>作用于整个JSP页面。
B、可以在一个页面中使用多个<%@ page %>指令。
C、为增强程序的可读性,建议将<%@ page %>指令放在JSP文件的开头,但不是必须的。
D、<%@ page %>指令中的属性只能出现一次。
5.在JSP中调用JavaBean时不会用到的标记是( )
A、<java:bean> B、<jsp:useBean>
C、<jsp:setProperty> D、<jsp:getProperty>
6.Tomcat服务默认情况下使用的端口号是( )
A、8000 B、8080 C、8888 D、80
7.使用request对象的getParameter()方法可以读取一个输入控件的哪个属性值( )
A、type B、value C、size D、name
8.page指令的import属性的作用是( )
A、定义JSP页面响应的MIME类型
B、定义JSP页面使用的脚本语言
C、为JSP页面引入JAVA包中的类
D、定义JSP页面字符的编码
9.如果某个类要成为Servlet,则它应该继承如下哪个类( )
A、HttpServletRequest B、HttpServlet
C、HttpServletResponse D、GenericServlet
10.表单标记中的action属性的作用是( )
A、为表单命名
B、调用客户端验证方法
C、指明表单信息发送的目的地址
D、声明表单的提交方式
11.MVC中V指的是( )。
A、视图层 B、控制层 C、模型层 D、持久化层
12.以下对象中的( )不是JSP的内置对象。
A、request B、session C、application D、bean
13.下述选项中不属于JDBC基本功能的是( )
A、与数据库建立连接 B、提交SQL语句
C、处理查询结果 D、数据库维护管理
14.在JSP中,内置对象( )封装了用户提交的信息,使用该对象可以获取用户提交的信息。
A、session B、request C、response D、out
15.要在session对象中保存属性,可以使用以下哪个语句?( )
A、session.getAttribute("key","value"); B、session.setAttribute("key","value");
C、session.setAtrribute("key"); D、session.getAttribute("key");
16.以下关于JavaBean的描述错误的是( )
A、JavaBean是一个公有java类
B、JavaBean提供给外界使用的方法是公有类型的
C、JavaBean必须有一个带参构造方法
D、在JSP中使用的JavaBean必须放在一个有名包中
17.关于get和post两种请求,下列说法正确的是( )
A、get请求是默认的。
B、get请求处理的数据量大小不受到限制。
C、post请求地址栏里是能看到数据的。
D、post请求可以由doGet方法处理。
18.下列哪个不是Servlet接口的方法( )
A、doGet方法 B、doPost方法 C、init方法 D、forward方法
19.Servlet 使用( )接口的 forward和 include方法进行通信。
A、ServletContext B、ServletConfig
C、RequestDispatcher D、HttpSession
20.使用 response 对象进行重定向时,使用的是( )方法。
A、getAttribute B、setContentType
C、sendRedirect D、setAttribute
二、简答题(4题,每题10分,共40分)
1.include指令标签和include动作标签有什么区别?
2.请写出JSP中5个内置对象。
3.<jsp:setProperty> 动作标签有哪四种格式?
4.请写出Servlet API包中5个类或接口。
三、编程程题(共1题,总计20分)
1. 请编写猜数字功能程序。要求:
(1)编写猜数字界面:guess.jsp ( 3分)
功能:1)在页面中设置一个10以内的随机数,并保存到session中。
2)编写输入猜数的表单(action提交给guessControl)。
(2)编写猜数的JavaBean:NumberBean.java (5分)
功能:1)一个属性num:int类型;
2)一个构造方法(无参数);
3)一个set属性方法与一个get属性方法;
4)一个比较方法:int compare(int digit)
如果输入的digit大于num则返回1;
如果输入的digit小于num则返回-1;
如果输入的digit等于num则返回0;
(3)编写一个控制端Servlet:GuessControl.java(10分)
功能:1)获取输入的数字;
2)获取session的数字;
3)创建NumberBean对象;
4)调用nuberBean对象方法比较;
5)保存比较结果到会话中;
6)转到猜数字结果页面;
(4)编写猜数字结果页面:guessResult.jsp (2分)
功能:1)取出会话中的比较结果信息;
2)打印出猜数字结果。
猜数字运行界面如下图所示:
图1 猜数字页面 图2 输入数字大的结果页面
图3 输入数字小的结果页面 图4 猜中的结果页面
阅卷人
得分
答 题 卡
一、选择题(共20题,总计40分,每小题2分)
题号
1
2
3
4
5
6
7
8
9
10
答案
A
B
A
D
A
B
D
C
B
C
题号
11
12
13
14
15
16
17
18
19
20
答案
A
D
D
B
B
C
A
D
C
C
阅卷人
得分
二、简答题(4题,每题10分,共40分)
1.include指令标签和include动作标签有什么区别?
(1).形式不同:
include 静态标签语法格式为:
<%@ include file=“文件的名字” %>
<jsp:include page=“文件的名字”>
</jsp:include>
(2).作用不同:
如果一个Jsp页面使用include指令插入另一个Jsp文件,被插入的这个Jsp页面中有一个设置页面ContentType属性的page指令。
include 动作标签告诉jsp页面包含一个文件。当Jsp引擎把Jsp页面转译成Java文件时候,告诉Java解释器,这个文件在Jsp运行时候才能包含进来。
2. 请写出JSP中5个内置对象。
request、response、session、application、out、page、pageContext、exception
3.<jsp:setProperty> 动作标签有哪四种格式?
① <jsp:setProperty name=”myBean” property=”*” />
由窗体表单传来的参数值,通过自省机制,设定所有的属性值;
② <jsp:setProperty name=”myBean” property=”myProperty ” />
也是通过自省机制,不过只设定一个myProperty的属性值;
③ <jsp:setProperty name=”myBean” property=”myProperty” param=”ParamName” />
由窗体传来的参数名称为ParamName的值,传给属性名称为myProperty;
④ <jsp:setProperty name=”myBean” property=”myProperty” value=”MyValue” >
它弹性最大,它可以通过value,动态设定JavaBean的属性。
4.请写出Servlet API包中5个类或接口。
Servlet 、ServletContext、RequestDispatcher、ServletConfig、ServeletRequest、ServletResponse、HttpServlet、HttpSession、HttpServletRequest、HttpServletResponse
阅卷人
得分
三、编程题(共1题,总计20分)
1. 请编写猜数字功能程序。要求:
(1)编写猜数字界面:guess.jsp ( 3分)
<body>
<%!
int num=0;
%>
<%
String numStr=(String)session.getAttribute("num");
if(numStr==null){
//第一次产生一个随机数
num=(int)(Math.random()*10);
session.setAttribute("num",""+num);
}
%>
<h3>请输入数字</h3>
<form action="guessControl">
<input type="text" name="num" />
<input type="submit" value="提交"/>
</form>
</body>
(2)编写猜数的JavaBean:NumberBean.java (5分)
package com.my.test;
public class NumberBean {
private int num;
public NumberBean(){
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public int compare(int input){
int result=0;
if(input>this.getNum()){
result=1;
}else if(input<this.getNum()){
result=-1;
}else{
result=0;
}
return result;
}
}
(3)编写一个控制端Servlet:GuessControl.java(10分)
public class GuessControl extends HttpServlet {
private NumberBean numberBean;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
//获取数据
String numStr=request.getParameter("num");
if(numStr==null){
numStr="0";
}
int num=Integer.parseInt(numStr);
System.out.println("num="+num);
//创建numberBean对象
numberBean=new NumberBean();
//获取Session中的num
HttpSession session=request.getSession();
String snumStr=(String)session.getAttribute("num");
if(snumStr==null){
snumStr="0";
}
int snum=Integer.parseInt(snumStr);
//设置numberBean的属性num
numberBean.setNum(snum);
//输入的值与session中的值进行比较
int result=numberBpare(num);
String resultStr="";
if(result>0){
session.setAttribute("result", "输入的数大了,请重新输入");
}
if(result<0){
session.setAttribute("result", "输入的数小了,请重新输入");
}
if(result==0){
session.setAttribute("result", "恭喜你猜中啦!");
}
//转到结果页面
RequestDispatcher rd=request.getRequestDispatcher("guessResult.jsp");
rd.forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
(4)编写猜数字结果页面:guessResult.jsp (2分)
<h3>猜数结果是:</h3>
<%
String resultStr=(String)session.getAttribute("result");
if(resultStr==null){
resultStr="出错啦";
}
out.println(resultStr);
%>
<br>
<a href="guess.jsp">返回</a>
一、选择题(共20题,总计40分,每小题2分)
1.下列哪一个不是JSP静态指令( )。
A、page B、forward C、include D、taglib
2.一个JSP网页可以使用exception对象,但是必须使用isErrorPage设为( )。
A、null B、none C、false D、true
3.在当前页面中包含a.htm的正确语句是( )。
A、<%@ include=“a.htm”%>
B、<jsp:include file=”a.htm”/>
C、<%@ include page=“a.htm”%>
D、<%@ include file=“a.htm”%>
4.下列动作标签中哪一个是用于重定向一个HTML文件( )。
A、<jsp:useBean> B、<jsp:include> C、<jsp:forword> D、<jsp:plugin>
5.useBean标签中scope有四中不同取值,下列哪一个scope取值是JSP引擎为每一个客户分配一个共享的beans( )。
A、 request B、 application C、 session D、 page
6.page指令中的哪一个属性用来定义JSP页面的MIME类型和JSP字符的编码 ( )。
A、contnetType B、import C、 language D、session
7.使用request对象的getParameter()方法可以读取一个输入控件的哪个属性值( )
A、type B、value C、size D、name
8.以下脚本元素中有语法错误的是( )。
A、<%! int i=0;%>
B、<% int i=0;%>
C、<%=i;%>
D、<%i++;%>
9.以下哪个方法不是Servlet的生命周期接口定义的?( )
A、init()
B、service()
C、destroy()
D、create()
10.JDBC API中,可通过( )对象执行SQL语句。
A、java.sql.ResultSet B、java.sql.Connection
C、java.sql.Statement D、java.sql.DriverManager
11.MVC中C指的是( )。
A、视图层 B、控制层 C、模型层 D、持久化层
12.MVC架构中使用HTML界面、JSP界面实现用户界面,使用( )实现控制逻辑,使用JavaBean实现模型层。
A、JSP B、 Servlet C.、JavaScript D.、EJB
13、JSP页面组成包括:HTML标记符、脚本元素、( )、动作标签、注释。
A、声明元素
B、指令标签
C、表达式元素
D、Java程序片
14、给定程序片段:
<%--在此处插入代码--%>
<html>
<body>
Today is: <%= new Date() %>
</body>
</html>
为了能够让程序正确运行需要在第一行添加以下那条语句?
A、<%@ page import=“java.util.Date” %>
B、<%@ import class=“java.util.Date”%>
C、<%@ include file=“java.util.Date”%>
D、<%@ include class=“java.util.Date”%>
15、以下哪一个是HttpSession的方法、并能实现在session中存放数据( )
A、get(String name,Object value)
B、set(String name, Object value)
C、setAttribute(String name,Object value)
D、getAttribute(String name, Object value)
16、以下关于JavaBean的描述错误的是( )
A、JavaBean是一个公有java类
B、JavaBean提供给外界使用的方法是公有类型的
C、JavaBean必须有一个带参构造方法
D、在JSP中使用的JavaBean必须放在一个有名包中
17、下列注释当中为JSP注释的是( )
A、(!--注释内容--) B、 <%--注释内容--%>
C、 /*注释内容*/ D、 /**注释内容*/
18、session对象中invalidate方法的含义是( )
A、 使用session无效
B、 获得session对象的生存时间
C、 获得当前session对象最后一次被操作时间
D、 以上都不对
19、在JSP中调用JavaBean时不会用到的标记是( )
A、<javabean> B、<jsp:useBean>
C、<jsp:setProperty> D、<jsp:getProperty>
20、用HttpServlet类的方法时,必须带两个参数,它们是( )
A、HttpServletRequest, HttpServletResponse
B、ServletRequest, ServletResponse
C、ServletIntputStream, ServletOutputStream
D、Request, Response
二、填空题(共5空,总计10分,每空2分)
1.客户端向服务器端提交数据的方式通常有两种:一种是post方式;另一种是 ___________提交方式。
2.JSP和___________相结合,可以实现表现层和业务逻辑层的分离。
3.Tomcat服务器的默认端口是___________。
4.Servlet接口的______________________方法在服务器装入 Servlet时执行,在 Servlet 的生命周期中仅仅执行一次。
5.在数据库编程中,需求通过Statement的___________方法来执行insert语句。
三、简单题(2题,每题10分,共20分)
1. 请说出常用的JSP内置对象,并简述它们的功能。(列举4个以上)
2. 使用forward和sendRedirect进行重定向有什么区别?
四、编程题(共1题,总计30分)
1. 运用JSP Model 2设计用户登录的功能模块,如果用户名和密码都正确则在success.jsp中打印出用户登录成功、并打印出用户名和密码。如果登录失败则返回登录界面要求重新登录。
已知:
(1) 用户信息表为:tb_user
(2) 连接数据库的类DBCon.java已经提供,可以通过下列语句得到数据库连接:
DBCon db=new DBCon();
Connection con=db.getConnection();
序号
说明
文件名
1
用户登录页面
login.jsp
2
用户实体类
User.java
3
用户信息模型接口
UserDAO.java
4
用户信息模型类(实现接口3)
UserDAOImpl.java
5
用户登录控制Servlet
LoginServlet.java
6
成功页面
success.jsp
(3)应用程序的目录及文件名的说明为:
要求:
(1) 设计用户登录页面:login.jsp。(4分)
(2) 设计用户实体类:User.java。(4分)
(3) 设计用户信息模型接口:UserDAO和模型类:UserDAOImpl.java,该接口和类中包含一个用户登录的方法: public boolean userLogin(User user);。(8分)
(4) 设计用户登录控制Servlet:LoginServlet.java,使用Servlet实现。(8分)
实现步骤:
①首先获取用户登录的信息,如用户名和密码;
②创建用户对象。
③创建用户信息模型类(UserDAOImpl.java)对象,调用用户登录方法。
④根据结果判断,如果用户名和密码匹配则到success.jsp,如果失败,则返回到用户登录页面。
(5) 设计成功页面:success.jsp,打印用户登录成功信息,并打印出用户名和密码信息
(6分)
(1)设计用户登录页面:login.jsp
<%@ page language="java" pageEncoding="gb2312"%>
<html>
<head>
<title>用户登录页面</title>
</head>
<body>
<h5 align="center">用户登录 </h5>
< --表单递交 -->
</body>
</html>
(2) 设计用户实体类:User.java。
public class User {//实体类
}
(3) 设计用户信息模型类:UserDAOImpl.java,该接口和类中包含一个用户登录的方法: public boolean userLogin(User user) ;
//导入相应的Java包
public class UserDAOImpl implements UserDAO {
private Connection con;
private PreparedStatement pstmt;
private DBCon db;
public UserDAOImpl()
{
db=new DBCon();
}
//判断用户登录是否成功
public boolean userLogin(User user) {
boolean result=false;
try{
}catch(SQLException e){
e.printStackTrace();
}
return result;
}
}
}
(4) 设计用户登录控制类:LoginServlet.java,使用Servlet实现。
//导入相应的Java包
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
//1)首先获取用户登录的信息;
//2)创建用户类对象。
// 3)创建用户模型类(UserDAOImpl.java)对象,调用用户登录的方法。
// 4)根据结果判断,如果正确就到success.jsp,如果失败就返回到login.jsp。
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
(5)成功页面:success.jsp ,打印用户登录成功信息,并打印出用户名和密码信息。
success.jsp:
<%@ page language="java" pageEncoding="gb2312"%>
<html>
<body>
//显示用户登录成功信息
//显示用户的用户名和密码
</body>
</html>
答 题 卡
阅卷人
得分
一、选择题(共20题,总计40分,每小题2分)
题号
1
2
3
4
5
6
7
8
9
10
答案
B
D
D
C
B
A
D
C
D
C
题号
11
12
13
14
15
16
17
18
19
20
答案
B
B
B
A
C
C
B
A
A
A
阅卷人
得分
二、填空题(共5空,总计10分,每空2分)
1. get
2. JavaBean
3. 8080
阅卷人
得分
4. init()
5. executeUpdate()
三、简单题(2题,每题10分,共20分)
1. 请说出常用的JSP内置对象,并简述它们的功能。
(列举4个以上)
答:(1)request表示HttpServletRequest对象。它包含了有关浏览器请求的信息;(2) response表示HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等);(3)out对象提供了几个方法使你能用于向浏览器回送输出结果;(4)pageContext提供了用于方便存取各种范围的名字空间、servlet相关的对象的API;(5)session表示一个请求的javax.servlet.http.HttpSession对象,存贮用户的状态信息;(6)application 表示一个javax.servle.ServletContext对象,提供查找有关servlet引擎和servlet环境的信息的方法;(7) config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。(8)page表示从该页面产生的一个servlet实例 ;(9)exception异常对象
2. 使用forward和sendRedirect进行重定向有什么区别?
答:(1)sendRedirect()
(1) ServletResqonse接口中的方法,用于响应重定向
(2) 跳转后浏览器地址栏变化
(3) 可以请求其他服务器资源
(4) 参数可以指定为相对路径(没有以”/”开始)、 绝对路径(以“/”开始)或其它Web应用
(5) 传值只能在url中带parameter或者放在session中,无法使用request.setAttribute来传递。
(2)forward()
(1) RequestDispatcher接口中的方法,用于请求跳转
(2) 跳转后浏览器地址栏不会变化
(3) 只能在应用程序内部转发
(4) 参数
A. ServletRequest获取的,参数可以指定为相对路径(没有以”/”开始)、绝对路径(以“/”开始)
B. ServletContext获取的,参数只能指定为绝对路径
(5) 传值可以使用三种方法:url中带parameter,session,request.setAttribut
阅卷人
得分
四、编程题(共1题,总计30分)
(5) 设计用户登录页面:login.jsp。(4分)
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<html>
<head>
<title>用户登录页面</title>
</head>
<body>
<form action="LoginServlet" method="post">
用户登录<br>
姓名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>
(6) 设计用户实体类:User.java。(4分)
Class User{
private int id;
private String username;
private String password;
setter和getter
}
(7) 设计用户信息模型接口:UserDAO和模型类:UserDAOImpl.java,该接口和类中包含一个用户登录的方法: public boolean userLogin(User user);。(8分)
//导入相应的Java包
public class UserDAOImpl implements UserDAO {
private Connection con;
private PreparedSt
展开阅读全文