JSP Servlet笔试题 期末试题 含答案

  1. 通过response的(A)方法可以设置响应所采用的字符编码类型。
    A:setCharacterEncoding(String charset)
    B:setCharacterEncode(String charset)
    C:setCharSet(String charset)
    D:setPageEncoding(String charset)

  2. 以下关于http://localhost:8080/bookStore/index.jsp的说法错误的是(D )。
    A:http指定了使用的传输协议
    B:localhost代表着服务器的地址
    C:8080为端口号
    D:此URL中localhost可以省略不写

  3. 可以通过修改( )文件的( A)节点来配置Tomcat端口号。
    A:server.xml
    B:web.xml
    C:server.xml
    D:web.xml

  4. 以下关于Web应用的目录结构说法错误的是( D)。
    A:/WEB-INF用来存放应用程序所使用的各种资源,其中包括web.xml
    B:/WEB-INF/classes用来存放应用的所有class文件
    C:/WEB-INF/lib用来存放Web应用使用的JAR文件
    D:/WEB-INF目录及其子目录对客户端是可访问的,一般我们将JSP页面放在这个目录下

  5. 以下横线处填充( C)能获得名称为jdbc/books的数据源。
    Context ctx=new InitialContext();
    DataSource ds=(DataSource)ctx.lookup(________);
    A:“jdbc/books”
    B:“java:comp/jdbc/books”
    C:“java:comp/env/jdbc/books”
    D:“java:comp/env/naming/jdbc/books”

  6. 在JSP中,如果需要实现文件上传,需要在表单属性中添加( C)。
    A:enctype=“form-data”
    B:enctype=“multipart-form-data”
    C:enctype=“multipart/form-data”
    D:enctype=“multipart/data”

  7. 在JSP的web.xml文件中包含如下的初始化参数配置信息,则下列的选项中能够正确读取初始化参数的是(B )。

<init-param>
		<param-name>keyWordparam-name>
		<param-value>goodparam-value>
init-param>

A:String init=getInit(“good”);
B:String init=getInitParameter(“keyWord”);
C:String init=initParameter(“keyWord”);
D:String init=getParameter(“good”);

  1. 关于JSP中session说法错误的( D)。
    A:session在使用时遵守session机制,session机制是一种服务器端的机制,在服务器端使用类似于散列表的结构来保存信息
    B:判断session是否创建是通过一个唯一的标识sessionid来实现的
    C:sessionid会返回到客户端保存
    D:通过session对象的invalidate()方法可以设置session的id

  2. 以下关于JavaBean的说法错误的是(D )。
    A:JavaBean是Java中开发的可以跨平台的重用组件
    B:JavaBean在JSP程序中常用来封装业务逻辑、数据库操作等
    C:JavaBean组件本质上就是一个Java类
    D:JavaBean一般设置为私有类,但是属性设置为公有

  3. 以下关于JSP内置对象response的说法错误的是(D )。
    A:response对象用于响应客户请求并向客户端输出信息
    B:response对象的setCharacterEncoding()方法可以设置响应所采用的字符编码类型
    C:response对象的sendRedirect()方法可以将请求重新定位到一个不同的URL上
    D:response对象的getRequestDispatcher().forward()方法可以将请求转发到一个不同的URL上

  4. 在JSP中,下面(C )不是JSP页面page指令的属性。
    A:language=“java”
    B:import=“java.util.*”
    C:http-equiv=“keywords”
    D:contentType=“text/html; charset=UTF-8”

  5. 在JSP在下面的选项中,关于FileItem接口相关说法错误的是(CD )。
    A:FileItem用于封装单个表单字段元素的数据
    B:在表单中的每一个元素均对应一个FileItem对象
    C:FileItem接口的实现类是FileItemFactory类
    D:当表单提交后,通过调用isFormField()方法判断是普通表单,还是文件表单所有的表单数据都会被封装到一个List集合中保存

  6. 在JSP中,以下关于Servlet生命周期说法错误的是( )。C
    A:Servlet容器根据Servlet类的位置加载Servlet类,成功加载后,由容器创建Servlet的实例
    B:对于每一个Servlet实例,init()方法只被调用一次
    C:当Servlet容器接收到客户端请求时,调用Servlet的service()方法以及destroy()方法处理客户端请求
    D:Servlet的实例是由Servlet容器创建的,所以实例的销毁也由容器来完成

  7. 在JSP中,下列代码片段实现了使用Cookie在客户端保存信息,横线处应该填写(B)用于设置Cookie失效前时间为2分钟。

Cookie cook=new Cookie("name","lucy");
__________________________
response.addCookie(cook);
response.sendRedirect("info.jsp");

A:cook.setMaxAge(2);
B:cook.setMaxAge(120);
C:cook.setMaxTime(2);
D:cook.setMaxTime(120);

  1. 在实现JSP分页显示数据时,能够正确计算出需要划分的总页数的语句是(D)。
    A:totalPages =(count/pageSize == 0)?(count%pageSize):(count%pageSize+1);
    B:totalPages =(count/pageSize == 0)?(count/pageSize):(count/pageSize+1);
    C:totalPages =(count%pageSize == 0)? (count%pageSize):(count%pageSize+1);
    D:totalPages =(count%pageSize == 0)?(count/pageSize):(count/pageSize+1);

  2. 参照下列JSP代码,在index.jsp中点击“登录”按钮以后的页面运行效果为(A)。
    index.jsp的代码如下:

<form action="welcome.jsp">
  <input type="text" name="loginName" value="admin"/>
  <input type="submit" value="登录"/>
form>

welcome.jsp的代码如下:

<% 
request.getRequestDispatcher("loginSuccess.jsp").forward(request,response) ;
%>
loginSuccess.jsp的代码如下:
<%=request.getParameter("loginName")%>

A:admin
B:null
C:loginName
D:text

  1. 以下JSP代码片段中,横线处填写(D )可以将数组中的元素正确的显示在页面上。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
     int[]nums={25,26,27,28};
     request.setAttribute("nums", nums);
%>
<c:forEach var="num" items="____①____">
      <c:out value="____②____"></c:out><br/>
</c:forEach>

A:

①处:nums
②处:num

B:

①处:${num}
②处:${ nums}

C:

①处:${sessionScope.nums}
②处:${ num}

D:

①处:${requestScope.nums}
②处:${ num}
  1. 已知User类是封装用户信息的JavaBean,其属性包括用户ID(uid)、用户名(uname)。则以下JSP关键代码的运行效果为(C)。
<%
	User user=new User();
	user.setUid(1);
	user.setUname("admin");
%>
${user.uname}

A:页面输出:null
B:页面输出:admin
C:页面正常运行,但是什么也不输出
D:页面运行错误

  1. 在JSP中,关于转发和重定向的说法错误的是(A)。
    A:请求被重定向以后还能访问request范围中的数据
    B:请求被重定向以后,会引发浏览器重新发送一次请求
    C:请求被转发到新页面后,新页面仍能取得客户端提交的数据
    D:转发请求不会导致服务器多发送一次响应

  2. 在doLogin.jsp中,实现了用户登录的验证,如果用户输入用户名是“admin”,密码是“0000”,则验证通过,并通过“session.setAttribute(“login”,“admin”);”将用户名存储到session中 ,现要创建loginControl.jsp文件用来实现权限控制,以下选项(C)可以填入loginControl.jsp实现此功能。
    A:

<%
  	String login=session.getAttribute("login");
  	if(login==null||!"admin".equals(login))
  		response.sendRedirect("login.jsp");
%>

B:

<%
  	String login=(String)session.getAttribute("admin");
  	if(login==null||!"admin".equals(login))
  		response.sendRedirect("login.jsp");
%>

C:

<%
  	String login=(String)session.getAttribute("login");
  	if(login==null||!"admin".equals(login))
  		response.sendRedirect("login.jsp");
%>

D:

<%
  	String login=(String) request.getAttribute("login");
  	if(login==null||!"admin".equals(login))
  		response.sendRedirect("login.jsp");
%>
  1. 以下关于Java中数据源的说法错误的是(D)。
    A:可以通过如下代码获得数据源:
    Context ctx=new InitialContext();
    DataSource ds=(DataSource)ctx.lookup(“java:comp/env/数据源名称”);
    B:得到DataSource对象后,可以通过其getConnection()方法来获得数据库连接对象Connection
    C:当程序结束数据库访问后,应调用Connection的close()方法及时将Connection返回给数据库连接池
    D:DataSource对象可以在程序中采用创建一个实例的方式来生成,即:DataSource ds=new DataSource();

  2. 在JSP中,以下代码编译错误的是(B)。
    A:

<%! String print( ){return "*****";} %>
<%= print( ) %>

B:

<% String print( ){return "*****";} %>
<%= print( ) %>

C:

<% int num=10; %>
<%= num %>

D:

<%! int num=10; %>
<%= num %>
  1. 以下关于“http://localhost:8080/news/index.jsp”这个 URL的说法错误的是(D)。
    A:URL中的第一部分指定使用的传输协议,例如这里的http就代表HTTP协议
    B:URL中的第二部分指请求的服务器的IP地址,例如这里的localhost,有时包含端口号,例如这里的8080
    C:URL中的第三部分指请求资源的路径,由零或多个“/”符号隔开。例如这里的news/index.jsp
    D:URL中的第二部分和第三部分都可以省略,第一部分不可缺少

  2. 通过修改web.xml文件可以实现对Web应用的配置,以下代码横线处填写(A)可以将welcome.jsp设置为欢迎页面。

<welcome-file-list>
   ______________________________
</welcome-file-list>

A:welcome.jsp
B:welcome.jsp
C:welcome.jsp
D:welcome.jsp

  1. 以下代码中,横线处填写(C)可以构成标准的JavaBean。
private class User implements Serializable {
	private int id;
	______________
}

A:

public int getId() {
	return id;
}
public void setId(int id) {
	System.out.println(id);
}

B:

private int getId() {
	return id;
}
private void setId(int id) {
	this.id = id;
}

C:

public int getId() {
	return id;
}
public void setId(int id) {
	this.id = id;
}

D:以上选项都不正确

  1. 在JSP中,以下关于Session的描述错误的是(B)。
    A:Session对象允许用户存储和提取会话状态信息
    B:Session机制是一种客户端的机制
    C:在客户端保存用户信息的是Cookie,因此保存sessionId的方式也是使用Cookie实现的
    D:可以通过Session对象的getId()方法获取sessionId

  2. 以下JSP关键代码的功能为输出“姓名:陈小斌”,横线处应填写(AC)。

<%
	Map stus=new HashMap();
	stus.put("stu1", "王晓");
	stus.put("stu2", "黄青");
	stus.put("stu3", "陈小斌");
	request.setAttribute("stuList", stus);
%>
姓名: _________
A:${stuList.stu3 }
B:${stuList[stu3]}
C:${stuList["stu3"]}
D:${stuList. "stu3" }
  1. 在JSP中在使用数据源访问数据库时,遇到错误:Name jdbc is not bound in this Context。则可能的错误原因是(AB)。
    A:在使用lookup()查找数据源时,数据源名称与配置文件中的名称不一致
    B:在使用lookup()查找数据源时,没有使用前缀(java:comp/env/)+数据源名称
    C:没有把JDBC驱动程序的JAR文件复制到Tomcat的lib目录下
    D:数据库驱动错误

  2. 在JSP中实现数据分页的关键是编写SQL语句,对于以下SQL Server中实现新闻表(news)中数据分页显示的SQL代码描述正确的是(B)。
    SELECT top 5 * FROM news where NID not in (SELECT top 10 NID from news )
    A:该SQL语句的作用是显示news表中第6-10行记录
    B:该SQL语句的作用是显示news表中第11-15行记录
    C:该SQL语句的作用是显示news表中除第6-10行记录之外的其他行记录
    D:该SQL语句的作用是显示news表中除第11-15行记录之外的其他行记录

  3. 以下Servlet代码中,横线处应该填写(C)可以解决中文乱码问题。

public void doGet(HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException {
	response.setContentType("__________①________");
	__________②________
	String name=request.getParameter("uname");
	… …
	PrintWriter out = response.getWriter();
	out.println("");
	out.flush();
	out.close();
}

A:

①处:text/html,encoding=utf-8
②处:request.setEncoding("utf-8");

B:

①处:text/html, charset=utf-8
②处:request.setCharacterEncoding("utf-8");

C:

①处:text/html;charset=utf-8
②处:request.setCharacterEncoding("utf-8");

D:

①处:charset=utf-8
②处:request.setCharacterEncoding("utf-8");
  1. 以下代码片段是使用cookie存储数据,横线处填写(C)可以在look.jsp页面显示“用户名:Jack”。
<%
response.addCookie(new Cookie("uname","Jack"));
_______________①______________
%>
look.jsp页面部分代码
<%
	Cookie[] cookies = _____②______
	String user="";
	if(cookies!=null){
		for(int i=0;i<cookies.length;i++){
		   if(cookies[i].getName().equals("uname"))
		       user = cookies[i].getValue();
		}
	}
	out.print("用户名:"+user);
%>

A:

:request.getRequestDispatcher("look.jsp")
.forward(request,response);: response.getCookies();

B:

:request.getRequestDispatcher("look.jsp")
.forward(request,response);:request.getCookies();

C:

:response.sendRedirect("look.jsp");:request.getCookies();

D:

:response.sendRedirect("look.jsp");:response.getCookies();
  1. 可以通过(AB)来重新设置字符编码,从而避免服务器的响应信息在浏览器显示为乱码。
A:response.setContentType( )
B:response.setCharacterEncoding( )
C:response.setPageCoding( )
D:response.setCharset( )
  1. 参照下列JSP代码,用户在index.jsp的文本框输入“test”并点击“提交”按钮以后的页面运行效果为(B)。
    index.jsp的代码如下:
<form action="loginDo.jsp">
  <input type="text" name="loginName" value="admin"/>
  <input type="submit" value="提交"/>
form>

loginDo.jsp的代码如下:

<% 
String name=request.getParameter("loginName");
if(name.equals("test")){
   request.getRequestDispatcher("loginSuccess.jsp").forward(request,response);
}
%>

loginSuccess.jsp的代码如下:

<%=request.getParameter("loginName")%>

A:admin
B:test
C:null
D:loginName

  1. 下列代码是实现分页时计算总页数的方法,横线处填写(D)可以正确实现。
public int getTotalPages(int count, int pageSize){
	int totalpages =0; 
    __________________
	return totalpages;
}

A:

totalpages =(count/pageSize == 0)?(count%pageSize)
:(count%pageSize+1);

B:

totalpages =(count/pageSize == 0)?(count/pageSize)
:(count/pageSize+1);

C:

totalpages =(count%pageSize == 0)? (count%pageSize)
:(count%pageSize+1);

D:

totalpages =(count%pageSize == 0)?(count/pageSize)
:(count/pageSize+1);
  1. 在JSP中,以下关于Servlet生命周期描述错误的是(D)。
    A:init( )方法只有在加载当前的Servlet时被执行,并且只执行一次
    B:destroy( )方法只有在服务器停止的时候或系统回收资源时才被执行
    C:Servlet生命周期过程:实例化 > init( ) > service( ) > destroy( )
    D:Servlet实例需手动创建

  2. 在JSP中,有如下的代码片段,则能够填写在横线处的选项是(B)。

<%
	.....省略代码
	boolean isMultipart = ServletFileUpload.isMultipartContent(request);
	String uploadFilePath = request.getSession().getServletContext()
	                           .getRealPath("upload/" );
	if (isMultipart) {
		                                   
		try {
			//解析form表单中所有文件
			List<FileItem> items = upload.parseRequest(request);
			Iterator<FileItem> iter = items.iterator();
			......省略代码
		}......省略代码
	}
%>

A:

FileItemFactory factory = new FileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);

B:

FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);

C:ServletFileUpload upload = new ServletFileUpload();
D:ServletFileUpload upload = new DiskFileItemFactory();

  1. 以下JSP代码,用户访问login.jsp页面并点击“登录”,在浏览器跳转页面成功后,刷新两次当前页面显示结果是(C)。
    login.jsp页面关键代码如下:
<form action="user.jsp">
  <input type="text" name="count" value="1"/>
  <input type="submit" value="登录"/>
form>

user.jsp页面代码如下:

<%!
     int i=1;
     int add(int j){
        i=i+j;
        return i;
     }
%>
<%=add(Integer.parseInt(request.getParameter("count")))%>
<%i++; %>

A:1
B:4
C:6
D:编译错误
38. 同路径下的index1.jsp和index2.jsp的关键代码分别如下,正确运行index2.jsp后的输出结果为( )。
index1.jsp代码:

<%
	String str="info";
	request.setAttribute("str", str);
	response.sendRedirect("index2.jsp");
%>

index2.jsp代码:

<%=request.getAttribute("str")%>

A:null
B:“str”
C:“”
D:info
39. 在JSP中,以下关于JavaBean描述正确的是(BC)。

A:JavaBean只能封装数据不能封装业务
B:JavaBean类中的属性私有,并提供公有访问属性的getter和setter方法
C:JavaBean类可以提供有参的公有构造方法
D:JavaBean是一个Java类,并且这个类不可以被实例化
40. 在Java Web应用中,以下存放web.xml的目录是(C)。

A:src目录
B:META-INF目录
C:WEB-INF目录
D:项目根目录
41. 以下(D)一般不属于JSP中实现数据分页显示的必要步骤。

A:确定每页显示的数据数量
B:确定分页显示所需的总页数
C:编写SQL查询语句,实现数据查询
D:将分页查询条件在页面中使用下拉列表实现
42. 以下JSP代码的执行效果为(D)。

<%int num=5;%>
<%=num++; %>

A:输出:5
B:输出:6
C:输出:num++
D:编译出错
43. 有以下JSP代码,用户访问login.jsp页面,重定向到welcome.jsp后的显示结果是(A)。
login.jsp的代码如下:

<%
  	String loginName="admin";
  	request.setAttribute("login",loginName);
  	session.setAttribute("login",loginName);
  	response.sendRedirect("welcome.jsp");	
%>

welcome.jsp的代码如下:

<%=request.getAttribute("login") %><br>
<%=session.getAttribute("login") %>

A:null
admin
B:null
null
C:admin
admin
D:admin
null

  1. 以下关于B/S、C/S说法正确的是(D)。
    A:B/S架构比C/S架构更优秀
    B:B/S架构是C/S架构的替代品
    C:B/S是指客户端/服务器,C/S是指浏览器/服务器
    D:B/S架构比C/S架构的维护和升级方式简单
  2. 有如下 JSP代码,为了获取session中存储的用户名,请问在下划线处应插入以下(D )代码。
<hlml>
<head><title>session示例</title></head>
<bodv>
<% session.setAttribute(''username'',"lemon"); %>
<%                        %>
</body>	
</html>

(选择一项)

a)	String name- session.getParameter("usernarne”);
b)	String name- session.getAttribute(“username”);
c)	String name= (String)session.getParameter(“username");
d)	String name= (String)session.getAttribute("usemame”);
  1. 在使用 JDBC APl实现査询数据时,执行过程中以下接口或类的使用顺序正确的是( C)
    (1) Connection
    (2) DriverManager
    (3) ResuItSet
    (4) Statement(选择一项)
    a) (1)(2) (3) (4)
    b) (2)(1) (3) (4)
    c) (2)(1) (4) (3)
    d) (3)(2) (1) (4)
  2. 在 JSP页面上进行访问控制时, 一般会使用JSP的( C)内置对象存储用户信息。(选择一项)
    a) request
    b) response
    c) session
    d) application
  3. 假设在 Tomcat6.0中已完成配置数据源(goods),下面选项中能等正确实现数据源连接的是(C )。(选择一项)
    a)
Context source= new InitalContext( );
Connection conn= source.getConnection( );

b)

	DataSource source= new DataSource( ) ;
Connection conn= source.getConnection( );

c)

	Context ctx = new lnitialContext( );
DataSource ds= (DataSource) ctx.lookup(java:comp/env/goods”); 
Connection conn=ds.getConnection( );

d)

Context ctx= new InitialContext( );
DataSource ds= ctx.lookup("goods”);
Connection conn= ds.getConnection( );
  1. 在JSP中,下列代码片段实现了使用 cookie在客户端保存信息,横线处应该填写( )用于设置Cookie失效前时间为2分钟。
Cookie cook=new Cookie(''name","lucy'');
                        
response.addCookie(cook);
response.sendRedirect(''info.jsp'');

(选择一项)B
a) cook.setMaxAge(2);
b) cook.setMaxAge(120);
c) cook.setMaxTime(2);
d) cook.setMaxTime(120);
50. 在 Java Web应用程序中,运行a.jsp后,浏览器上显示如下表格,在a.jsp上进
行选样后将页面提交到 b.jsp,要在 b.jsp中要获得选中的复选框的值(假定复选
框的名称均为id,应该编写下列( )代码段。(选择一项)

a)

<%
String ids=request.getParameter("id”);
if(ids!= null && ids.length() !=0) {
for(int i=0;i<ids.length;i++){
out.println(ids.charAt[i]);
}
}
%>

b)

<%
String ids[]=request.getParameter("id”);
if(ids!= null && ids.length() !=0) {
for(int i=0;i<ids.length;i++){
out.println(ids[i]);
}
}
%>

c)

<%
String ids=request.getParameterValues("id”);
if(ids!= null && ids.length() !=0) {
for(int i=0;i<ids.length;i++){
out.println(ids.charAt[i]);
}
}
%>

d)

<%
String ids[]=request.getParameterValues("id”);
if(ids!= null && ids.length() !=0) {
for(int i=0;i<ids.length;i++){
out.println(ids[i]);
}
}
%>

你可能感兴趣的:(面试基础,servlet,java,tomcat)