Java Web测试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
翰子昂阶段性测试_S2考试试卷
科目:JavaWeb
一.选择题,共40道,每题1分
1. JSP页面的page 指令主要用于设置该页面的各种属性,page指令的language 属性的作用是( B)。
(选择一项)
a) 将需要的包或类引入到JSP页面中
b) 指定JSP页面使用的脚本语言,默认为Java
c) 指定JSP页面采用的编码方式,默认为text/html
d) 服务器所在国家
2. 使用JSP开发Web项目时,web.xml文件一般位于目录结构中的(D )下。
(选择一项)
a) src目录
b) 文档根目录或其子文件夹
c) META-INF目录
d) WEB-INF目录
3. 在用户登陆的JSP页面上,包含如下代码所示的表单,当用户填写信息后点击“登录”按钮时,将产生的结果是( A)。
(选择一项)
<form action=“loginAction.jsp”name=“loginForm”method=“get”>用户名:<input type=“text”name=“pwd”/>
密码:<input type=“password”name“pwd”/d>
<input type=“submit”value=“登录”/>
</form>
a) 表单提交到loginAction.jsp,用户可以在浏览器的地址栏看到提交的参数
b) 表单提交到loginAction.jsp,用户不能在浏览器的地址栏看到提交的参数
c) 表单提交到loginForm,用户可以在浏览器的地址看到提交的参数
d) 表单提交到loginForm,用户不能在浏览器的地址栏看到提交的参数
4. 在Java中JDBC API定义了一组用于与数据库进行通信的接口和类,它们包括在(B )包中。
(选择一项)
a) ng
b) java.sql
c) java.util
d) java.math
5. JSP文件test.jsp内容如下所示,则试图运行时,将发生( B )。
(选择一项)<html>
<%{%>
<%String str;%>
<%}%>
Str is <% = str%>
</html>
a) 翻译期错误
b) 编译Java源码时发生错误
c) 执行编译后的字节码时发生错误
d) 运行后,浏览器上显示:str is null
6. 在JDBC应用程序中,使用Statement接口的( D)方法,执行查询语句,并
可返回结果集。
(选择一项)
a) execute()
b) close()
c) executeUpdate()
d) executeQuery()
7. 在Java中,下列接口或类不包括在java.sql包中的是( A )。
(选择一项)
a) ArrayList
b) Connection
c) Statement
d) DriverManager
8. 在Java Web应用程序中,运行a.jsp后,浏览器上显示如下表格,在a,jsp 上进行选择后将页面提交到b.jsp中要获得选中的复选框的值(假定复选框的名称均为id),应该编写下列( D )代码段。
(选择一项)
a) <%
String ids=request.getParameter(“id”);
if(ids != null&& ids.length !=0){
for(int i=0;<ids.length;i++){
out.println(ids.charAt[i]);
}
}
%>
b) <%
String ids[]=request.getParameter(“id”);
if(ids != null&& ids.length!=0){
for(int i=0;<ids.length;i++){
out.println(ids[i]);
}
}
%>
c) <%
String ids=request.getParameterValues(“id”); if(ids != null&& ids.length!=0){
for(int i=0;<ids.length;i++){
out.println(ids.charAt[i]);
}
}
%>
d) <%
String ids[]=request.getParameterValues(“id”); if(ids != null&& ids.length!=0){
for(int i=0;<ids.length;i++){
out.println(ids[i]);
}
}
%>
9. 项中对JSP内置对象描述正确的是( CD )。
(选择两项)
a) session对象应用于整个应用程序。
b) application对象存储有关用户的会话状况
c) request对象用于客户端的请求处理
d) out对象用于客户端输出数据
10. 使用Java代码实现从表table中取出所有数据信息,代码如下(假设可以直接调用数据库连接conn),下面对代码描述正确的是( C )。
(选择一项)
public List getInfo(){
List list=new ArrayList();
String sql=“select * from table1”;
PrearedStatement pst=conn.prepareStatement();
Result rs=pst.executeQuery();
If(rs.next()){
list.add(rs.get(1));
}
return list;
}
a) 返回list集合,包含一条信息
b) 返回list集合,包含所有数据信息
c) 程序发生编译错误,无法运行
d) 编译通过,运行时出错
11. JSP文件test.jsp代码如下所示,则试图运行时,将发生( D )。
(选择一项)<html>
<%String str=null;%>
Str is <%=str%>
</html>
a) 翻译期错误
b) 编译JAVA源码时发生错误
c) 执行编译后的字节码时发生错误
d) 运行时,浏览器上显示:str is null
12. 在Java中使用JDBC时,对于多次调用同一条SQL语句的情况,使用( C )通常会提高效率。
(选择一项)
a) Statement
b) CallableStatement
c) PrepareStatement
d) ParameterStatement
13. 给定JSP程序代码如下所示,则该JSP运行后输出的结果是( B )。
(选择一项)
<html>
<%int Count=1;%>
Count:<%=++Count%>
</html>
a) Count:1
b) Count:2
c) 1:2
d) Count
14. JSP的页面构成包含了多种元素,在下列选项中,属于JSP指令的是(B )。
(选择一项)
a) out
b) page
c) forward
d) import
15. 在Java中,LinkedList类和ArrayList类同属于集合框架,下列( D )选项中的方法是这两个类都有的。
(选择一项)
a) addFirst(Object o)
b) getFrist()
c) removeFirst()
d) add(Object o)
D )。
(选择一项)
a) 这个集合中的元素是无序的
b) 可以通过键来获取这个集合中的元素
c) 可以通过addFirst( )方法,在列表的首部插入元素
d) 在对这个集合的元素执行遍历操作时,效率比较高
17. 在JSP的内置对象中,( C )内置对象表示客户端的请求,包含了所有的请求信息。
(选择一项)
a) application
b) out
c) request
d) response
18. JSP文件test.jsp 文件如下所示,运行时,将发生( C )。
(选择一项)
<html>
<%
j
buffer.append(“ABC”);
%>
buffer is<%=buffer%>
</html>
a) 翻译期错误
b) 编译Java源码时发生错误
c) 执行编译后的字节码时发生错误
d) 运行后,浏览器上显示:buffer is ABC
19. 在使用JSP开发的Web应用程序中,home目录与images目录为同级目录,现在要在home目录下的index.jsp中访问images目录下的图片1.jpg,以下代码片段正确的是(A )。
(选择一项)
a) <img src=”../images/1.jpg” width=”100” height=”20”:>
b) <img src=”//images/1.jpg” width=”100” height=”20”:>
c) <img src=”/images/1.jpg” width=”100” height=”20”:>
d) <img src=”images/1.jpg” width=”100” height=”20”:>
20. 在Java JDBC编程中,可以使用PreparedStatement接口为特定的SQL命令指定多个参数,此时需要在创建SQL语句时为每个参数各用一个( C )符号为占位符。
(选择一项)
a) *
b) _
c) ?
d) %
21. 在JSP页面上进行访问控制时,一般会使用JSP的(C )内置对象存储用户信息。
(选择一项)
a) request
b) response
c) session
d) application
22. 在JSP的小脚本中,使用以下( C )语句可以使浏览器重定向到另一个页面(选择一项)
b) request.sendRedirect();
d) response.sendRedirect();
23. 在JSP中,以下代码功能是保存已注册用户到session后,进入某网页首页index.jsp页面,否则跳到login.jsp页面完成此功能,下划线处可填入的正确代码应是(C )(选择一项)。
<%
…….
If(rs.next()){ //如果是已注册用户
User loginUser=new User(name,pass);
___________________
____________________
}else{
Response.sendRedirect(“login.jsp”);
}
%>(选择一项)
a) sesstion.save(“login_user”,loginUser);
Response.sendRedirect(“index.jsp”);
b) sesstion.setAttribute(“login_user”,loginUser);
Response.foward (“index.jsp”);
c) sesstion. setAttribute (“login_user”,loginUser);
Response.sendRedirect(“index.jsp”);
d) sesstion.save(“login_user”,loginUser);
Response. foward (“index.jsp”);
24. 编写JSP小脚本,实现访问该JSP时,在会话对象中保存int型变量i的有效语句是( D )。
(选择一项)
a) session.setAttribute(i,”I”);
b) se ssion.setParameter(“I”,i);
c) session.setAttribute(new Integer(i),”I”);
d) session.setAttribute(“I”,new Integer(i));
25. 给定如下Java代码片段,已知查询语句是:select id from title,并且已经获得了相应的结果集对象res。
现在要在控制台上输出title表中id 列(存储类型为int)的值,可以填入下划线处的代码是( AC )。
(选择两项)
while(res.next()){
Int id = ______
}
a) res.getInt(“id”);
b) res.getInt(0);
c) res.getInt(1);
d) res.getInt(id);
26. JSP页面包含如下代码,则访问此JSP页面时将输出( B )。
(选择一项) <%=2+3 %>
a) 2+3
b) 5
c) 23
d) 不会输出,因为表达式是错误的
27. 用户登录的JSP页面上,包含如下代码所示的表单,用户希望提交表单时在地址栏上显示提交的信息,则应该在下划线处填写的代码是(AC)。
(选择两项)<form action=”loginAtion.jsp” name -‘longinForm”method=”_”>
用户名:<input type=”text”name=”name”/><br>
密码:<input type=”password”name=”pwd”/>
<input type=”submit”value=”登录“/>
</form>
a) get
b) post
c) 不填写任何内容
d) 以上选项均可
28. B/S结构是随着Internet技术的兴起,对C/S结构的一种改进,而非C/S结构的替代品,B/S结构相比C/S结构也存在一些劣势,体现在(D)。
(选择一项)
a) 维护和升级方式复杂
b) 可访问用户范围小
c) 程序开发复杂
d) 很难有丰富界面效果
29. 要运行一个有JSP开发的Web项目,如果正确的URL是
http://localhost:8080/news/index.jsp,而运行时在浏览器中输入了
http://localhost:8080/newws/index.jsp,会出现以下( A )结果。
(选择一项)
a) 将在IE中提示404错误
b) 将在IE中提示500错误
c) 将在IE中显示空白页
d) 将在IE中提示“系统无法显示网页”
30. 在JSP中,page指令的(B )属性用来引入需要的包或类。
(选择一项)
a) extends
b) import
c) language
d) contentType
31. 在JSP中需要将1.jsp的请求数据通过2.jsp转发给3.jsp,应该在2.jsp 中采用( C )方式实现。
(选择一项)
a) <%request.sendRedirect(“3.jsp”)%>
b) <%response.sendRedirect(“3.jsp”)%>
c)
<%request.getRequestDispatcher(“3.jsp”).forward(request,response)%>
d) <%response.sentRedirect(“32.jsp”).forward(request,response)%>
32. HTML表单的首要标记是<FORM>,<FORM>标记的参数method表示表单发送的方法,可能为GET或POST下列关于和的描述正确的是( B )。
(选择一项)
a) GET方法传递的数据对客户端是不可见的
b) GET方法以查询字符串的形式发送,查询字符串长度没有大小限制
c) GET方法对发送数据的数量限制在255个字符之内
d) POST方法传递的数据对客户端是可见的
33. 在用户登录JSP页面上,编写了脚本将已登录的用户信息存放到session中,代码
如下所示,那么在其他页面上进行访问控制的代码应是( D )。
(选择一项)//name和pwd为String类型的数据
Session.setAttribute(“username”,name);
Session.setAttribute(“password”,pwd);
a) if(username==null){
Response.sendRedirect(“login.html”);
}
b) if(username.equals(“”)){
Response.sendRedirect(“login.thml”);
}
c) String name=(String)session.getAttribute(“username”);
If(name.equals(“”)){
Response.sendRedirect(“login.html”);
}
d) String name=(String)session.getAttribute(“username”);
If(name==null){
Response.sendRedirect(“login.html”);
}
34. 在设计Web项目的目录结构时,src目录一般放( D )文件。
(选择一项)
a) html
b) jsp
c) web.xml
d) Java源文件
35. 在JSP页面上,以下( C
(选择一项)
36. 使用JDBC链接数据库,假定已经获得一个数据库链接,使用变量con来表示,
下列语句中能够正确获得结果集的是( AD )。
(选择两项)
a) Statement stmt=con.createStatement0;
ResultSet rs=stmt.executeQuery(“SELECT*FROM Tablel”);
b) Statement stmt=con.createStatement(“SELECT*FROM Tablel”);
ResultSet rs=stmt.executeQuery0;
c) PreparedStatement stmt=con.prepateStatement0;
ResultSet rs=stmt.executeQuery(“SELECT*FROM Tablel”);
d) PreparedStatement stmt=con.prepateStatement(“SELECT*FROM Tablel”);
ResultSet rs=stmt.executeQuery0;
37. 在JAVA中ArrayList类实现了可变大小的数组,便于遍历元素和随机访问元素,已知获得了ArrayList类的对象bookTypleList,则下列语句中能够实现向列表中添加字符串“小说”的是( C )。
(选择一项)
a) bookTypleList.contains(“小说”);
b) bookTypleList.get(“小说”);
c) bookTypleList.add(“小说”);
d) bookTypleList.remove(“小说”);
38. 在Web应用系统中,编写了公共的处理页面为manage.jsp,该页面包含在Web 根目录下,那么在Web根目录下的其他页面上引用该页面的代码正确的是( C )(选择一项)
a) <%include file = “manage.jsp”%>
b) <%!include file = “manage.jsp”%>
c) < %@include file = “manage.jsp”%>
d) <include file = “manage.jsp”>
39. 在JSP页面中,下列( A )代码能够正确的声明计算乘法的方法。
(选择一项)
a) <%!
Public int mul(int x,int y){
Return x*y ;
}
%>
b) <%=public int mul(int x,int y){
Return x*y ;
}
%>
c) <%public int mul(int x,int y){%>
<% returnx*y ;%>
<%}%>
d) <%
Public int mul(int x,int y){
Return x*y ;
}
%>
40. 在Java中,较为常用的JDBC驱动方式是( A )和( D )。
(选择两项)
a) JDBC-ODBC桥连
b) mssqlserver 驱动程序
c) 纯ODBC驱动程序
d) 纯Java驱动程序
二.问答题,共10道,每道4分
1. 简述JSP工作原理?
JSP本质就是Servlet。
a.第一次访问jsp时该jsp被进行翻译,将jsp转换为servlet的java源代码
b.对servlet源码进行编译,生成class字节码
c.执行serlvet.service() /doGet()/doPost()方法
d.Jsp所产生的servlet在java web应用中全局有且只有唯一的对象,servlet是
单例多线程的,因此servlet中不允许出现状态(即绝对不允许出现属性)。
JSP/Servlet对象在web应用关闭或重置的时候被销毁。
2. jsp主要内置对象有哪几种?
Request
Response
Session
Application
pageContext
page
out
exception
config
3. 在Servlet里,如果从session的“list”属性中获取属性值,请写出代码?
Object list = “list”);
4. 请简要说明Servlet对象的生命周期?
a. 加载,在第一次请求的时候servlet被加载
b. 在第一次请求加载后,调用init()方法对servlet进行初始化
c. 根据客户请求的类型不同,调用doGet/doPost方法处理客户的请求
d. 销毁,web应用关闭或者重启的时候,servlet被销毁,调用destroy()方法
5. 请简述<jsp:include>标签与 <%@ include%> 指令的区别?
前者为动态引用,后者为静态引用。
<jsp:include>是动态引用,例如a.jsp include b.jsp ,web容器会分别将a.jsp 和b.jsp翻译成servlet并执行,将输出的字符流进行合并,jsp:include是将两个jsp运行后的输出流进行合并,其中不产生任何额外的java文件。
a.jsp <html><jsp:include file=”
b.jsp”><html>
b.jsp <b>你好</b>
执行后的结果是: <html><b>你好</b></html>
<%@include%> 静态引用则是将b.jsp所生成的servlet的源码合并到a.jsp的源码中,然后运行合并后的servlet文件输出结果。
在日常的项目应用中,我建议使用<jsp:include> ,jsp:include不存在编码不同的问题。
6. 请列举至少三种EL表达式的内置对象,并说明其作用?
requestScope 从request中取值
sessionScope 从session中取值
applicationScope …你懂得
pageScope
param
paramValues
7. 列举至少三种JSTL核心库标签,并说明其作用?
<c:out>
<c:set>
<c:remove>
<c:catch>
<c:if>
<c:choose> <c:when> <c:otherwise>
<c:forEach>
<c:forTokens>
<c:import>
<c:redirect>
<c:url>
8. 请简述HttpServletRequest 、HttpSession 、ServletContext 三个对象何时被创建、销毁?
HttpServletRequest 从浏览器发起一个新的请求时,request对象被创建,当服务器返回response响应的时候请求被销毁。
HttpSession,某个浏览器窗口第一次发送请求的时候session就会被创建,sessionId,session在过期后被销毁(tomcat默认30分钟)或者在程序中调用sesssion.invalidate()销毁当前会话,再或者web应用关闭或重启的时候。
servletContext即application对象,在web应用启动的时候被创建,在web应用关闭或重启的时候被销毁。
9. 简述request.getRequestDispatcher(“...”).forward() 方法与response.sendRedirect()方法的区别?
我们可以在b.jsp中使用request.getAttribute(“abc”)获取当前请求中的属性值。
sendRedirect它会发起两次请求,也就是意味着b.jsp永远无法获取到第一次请求的内容
10. 什么是MVC,MVC的优点?
MVC : MVC的根本目的是让软件架构层面上进行“解耦”
Model:模型层:包含两部分只能:1业务逻辑的运算职能 2. 数据的持久化View:视图层(表示层),接收用户输入、展现数据的结果
Controller :控制层,它作为view和model的枢纽存在,它的作用是承上启下:Struts2中使用Action所谓控制层,Action的具体职能是:
1.接收来自于客户端的数据
2.调用Model层(Service类或者DAO类)将数据进行处理
3.跳转界面,显示处理结果。
三.程序题 20分
类代码,要求用户通过Get方式访问该Servlet对象后,HelloServlet向浏览器输出“中国,您好!”这句中文,并将这句话保存在session的“title”属性中以备日后使用。
P
Public class HelloServlet extends HttpServlet{
Public void doGet(HttpServletRequest request , HttpServletResponse response) throws IOException{
String msg = “中国,你好!”;
HttpSession session = request.getSession();
Session.setAttribute(“title” , msg);
Response.setContentType(“text/html;charset=utf-8”);
Response.setCharacterEncoding(“UTF-8”);
PrintWriter out = Response.getWrite();
out.println(msg);
out.flush();
}
Public void doPost(HttpServletRequest request , HttpServletResponse response) throws IOException{
This.doGet(request , response);
}。