javaWeb面试题(易错题)

2021/7/4 12:21:17

本文主要是介绍javaWeb面试题(易错题),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

3. 在mvc框架中担任展示层的是

A: dao
B: jsp
C: javaBean
D: servlet

参考答案:
B
解析:

jsp作为展示层 与用户进行交互。

6. 当应用程序为B/S结构时,程序部署在()上,并通过()和()进行通信。在客户机上无需安装任何软件,系统界面是通过浏览器来展现的

A:数据库服务器、应用服务器、数据库服务器
B:应用服务器、应用服务器、数据库服务器
C:数据库服务器、数据库服务器、应用服务器
D:应用服务器、数据库服务器、应用服务器

参考答案:
B
解析:

B/S架构的程序部署在应用服务器上,通过应用服务器和数据库服务器进行通信。

8. 下列关于HTTP响应中状态码的描述,错误的是( )

A:3表示重定向,表示需要客户端采取进一步的操作才能完成请求
B:2
表示成功,表示请求已被成功接收、理解、接受
C:4表示客户端错误,请求有语法错误或请求无法实现
D:5
表示服务器端错误,服务器未能实现合法的请求

参考答案:
D
解析:

5**:这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生;

11. 以下page指令的描述中,正确的是?

A:可以通过<%@page import=”java.util.*”%>导入java.util下所有的类
B:可以通过<%@page include=”java.util.Date;java.util”%>导入java.util下所有的类
C:可以通过<%@page contentType=”text/html;charset=UTF-8”%>设置页面编码为UTF-8
D:可以通过<%@page version=”1.6”%>指定采用什么版本的jdk编译页面

参考答案:
A
解析:

B.JSP导入包用page指令的import属性,并且不同的包之间用逗号隔开; C.page指令的contentType 属性设置
Content-Type 响应报头,标明即将发送到客户程序的文档的 MIME 类型;设置页面编码使用pageEncoding属性;
D.page指令没有version属性

17. JSP页面可以在以下哪个( )标记之间插入变量与方法声明?( )

A:<% 和 %>
B:<%! 和 %>
C:</ 和 %>
D:<% 和 !>

参考答案:
B
解析:

<%! %>中声明的是全局变量或方法
<% %>中声明的是局部变量,不能声明方法。
<%=%>一般表达式,输出某一变量的值

19. 以下哪个标签不属于jsp动作元素

A:jsp:useBean
B:jsp:getProperty
C: jsp:forward
D:jsp:getAttribute

参考答案:
D
解析:

JSP规范定义了一系列的标准动作,它用JSP作为前缀,其中包括jsp:attribute,不包括jsp:getAttribute.

21. 在Java中,Statement接口中包含很多基本的数据库操作方法,以下说法错误的是()

A:ResultSet executeQuery(String sql):可以执行SQL语句并获取ResultSet对象
B:boolean executeUpdate(String sql):可以执行插入、删除、更新等操作
C:boolean execute(String sql):可以执行任意SQL语句,表示SQL语句是否执行成功
D:int executeUpdate(String sql):可以执行插入、删除、更新等操作

参考答案:
B
解析:

executeUpdate(String sql)指定的返回值类型是int类型,不是boolean类型的返回值

25. 在Ajax中,下列XMLHttpRequest类的哪个方法的作用是与服务器建立连接的?

A:send(content)
B:open(method,URL,async)
C:setRequestHeader(header,value)
D:Onreadystatechange()

参考答案:
B
解析:

A.发送http请求
B.与服务器建立连接
C.设置请求头信息,如果请求方式是get方式时,不需要设置
D.指定XMLHttpRequest对象的回调函数。每当readyState的属性值改变时,此回调函数就会被调用一次

27. 在JSP中要使用user包中的User类,则以写法正确的是( )

A:<jsp:useBean id=“user” class=" user.User" scope=“page” />
B:<jsp:useBean class=“user.Use.class”/>
C:<jsp:useBean name=“user” class=“user.User”/>
D:<jsp:useBeam id=“user” class=“user” import="user.* " />
E:id

参考答案:
A
解析:

id为这个bean声明一个名字 class指引入哪个包下的哪个类
scope属性的各个设置值的意义和作用:page表示将JavaBean实例对象存储在PageContext对象中,作用范围是当前JSP页面有效。

27. 在JSP中要使用user包中的User类,则以写法正确的是( )

A:<jsp:useBean id=“user” class=" user.User" scope=“page” />
B:<jsp:useBean class=“user.Use.class”/>
C:<jsp:useBean name=“user” class=“user.User”/>
D:<jsp:useBeam id=“user” class=“user” import="user.* " />
E:id

参考答案:
A
解析:

id为这个bean声明一个名字 class指引入哪个包下的哪个类
scope属性的各个设置值的意义和作用:
page表示将JavaBean实例对象存储在PageContext对象中,作用范围是当前JSP页面有效。

30. 在JSP中想要使用JavaBean:mypackage.mybean,则以下写法正确的是()

A:<jsp:usebean id=”mybean” scope=”pageContext” class=”mypackage.mybean”/>
B:<jsp:useBean class=”mypackage.mybean.class”/>
C:<jsp:usebean id=”mybean” class=” mypackage.mybean.java”>
D:<jsp:useBean id=”mybean” class=” mypackage.mybean”/>

参考答案:
D
解析:
jsp:useBean里必须指定的属性是id和class,scope可以省略
id相当于实例化对象的名
class指定类的路径
scope属性用于指定JavaBean实例对象所存储的域范围,其取值只能是page、request、session和application四个值中的一个,其默认值是page

32. 在JSP文件中,有如下代码:

<%
    List list = new ArrayList();
    for(int i = 0; i < 10; i++)
        list.add("" + i);
    session.setAttribute("numbers", list);
%>
\<body>
    <c:set var="numbers" value="test"/>
    <c:forEach var="number" items="${numbers}">
        <c:out value="${number}" />
    </c:forEach> 
\</body>

页面显示的内容是()

A:0 1 2 3 4 5 6 7 8 9
B:test
C:0 1 2 3 4 5 6 7 8 9 test
D:test 0 1 2 3 4 5 6 7 8 9

参考答案:
B
解析:

set和foreach不指定作用域时,访问数据顺序应遵循从小范围到大范围(page、request、session、application)的原
则,所以题目中相当于在page范围内访问数据,number的值在page作用域内被set成了“test”,foreach默认作用域取得的
number的值是page页面的“test”。

33. 下面是Servlet调用的一种典型代码:

<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
\<html>
    \<body bgcolor=cyan>
        \<a href="helpHello">访问FirstServlet</a>
    \</body>
\</html>

该调用属于下述哪种。( )
A:url直接调用
B:超级链接调用
C:表单提交调用
D:jsp:forward调用

参考答案:
B
解析:

标签的 href 属性用于指定超链接目标的 URL。

35. 关于session的说法正确的是:

A: 每个session都有自己的sessionID
B: session和cookie都是存在客户端的
C: session的默认过期时间是100分钟
D: 浏览器关闭后session就会立即消失

参考答案:
A
解析:

Session的实现一般基于Cookie。每一个session,都一个ID,这个ID是不会重复的。session的默认过期时间是30分钟。

38. 如果使用标记: <jsp:getProperty name=”bean Name” property=”property Name”/>准备取出 bean的属性的值,但 property Name 属性在 beanName 中不存在,也就是说在 beanName 中没有这样的属性名:property Name,也没有 getPropertyName()方法,那么会在浏览器中显示( )

A:错误页面
B:null
C:0
D:什么也没有

参考答案:
A
解析:

亲测,这种情况会出现页面错误

40. 在 myjsp.jsp 中,关于下面的代码说法错误的是: ( ) <%@ page language=“java” import=“java.util.*” errorPage=“error.jsp” isErrorPage=“false” %>

A:该页面可以使用 exception 对象
B:该页面发生异常会转向 error.jsp
C:存在 errorPage 属性时,isErrorPage 是默认为 false
D:error.jsp 页面一定要有isErrorPage 属性且值为 true

参考答案:
A
解析:

exception是JSP九大内置对象之一,其实例代表其他页面的异常和错误。只有当页面是错误处理页面时,即isErroePage为
true时,该对象才可以使用。对于C项,errorPage的实质就是JSP的异常处理机制,发生异常时才会跳转到
errorPage指定的页面,没必要给errorPage再设置一个errorPage。所以当errorPage属性存在时,
isErrorPage属性值为false

43. 与el表达式${param.name}的含义相同的是:

A:response.getParameter(String name);
B:request.getParameter(String name);
C:response.getParameterValue(Sting name);
D:request.getAttribute(String name);

参考答案:
B
解析:

从请求参数中获取,request.getParameter(String name); 故选B

44. jsp九大内置对象中表示错误对象是::

A:request
B:cookie
C:response
D:exception

参考答案:
D
解析:

JSP中一共预先定义了9个内置对象,分别为:request、response、session、application、out、pagecontext、config、page、exception其中显示异常信息的是exception对象

47. 与page指令<%@ page import=“java.util.,java.text.” %>等价的是( )

A:<%@ page import="java.util.* " %>
<%@ page import=“java.text." %>
B:<%@ page import="java.util.
” import="java.text."%>
C:
<%@ page import="java.util.
" ;%>

<%@ page import=“java.text.*” ;%>

D:<%@ page import=“java.util.* ; java.text.*”%>

参考答案:
B
解析:

每个页面一般只出现一次page指令
每个page指令里可以有多个import属性
在一个import里可以导入多个包,多个包之间用逗号隔开

48. 在J2EE中,使用Servlet过滤器时,可以在web.xml文件的()元素中包括元素。 (选择一项)

A:
B:
C:
D:

参考答案:
A
解析:

元素配置在元素中。

49. 以下选项中,描述Web容嚣处理JSP文件请求三个阶段的先后顺序正确的是().

A:编译阶段、翻译阶段、执行阶段
B:翻译阶段、编译阶段、执行阶段
C:执行阶段、翻译阶段、编译阶段
D:执行阶段、编译阶段、翻译阶段

参考答案:
B
解析:

web处理jsp文件的三个阶段 翻译阶段(servlet) 编译阶段(class) 执行阶段(print页面标签) 推送html到浏览器

51. 关于JavaBean,下列的叙述哪一项是不正确的?( )

A:JavaBean的类必须是具体的和公共的,并且具有无参数的构造器
B:JavaBean的类属性是私有的,要通过公共方法进行访问
C:JavaBean和Servlet一样,使用之前必须在项目的web.xml中注册
D:JavaBean属性和表单控件名称能很好地吻合,得到表单提交的参数

参考答案:
C
解析:

JavaBean的基本条件:
1、类是公有的且是具体的,属性是私有的
2、有公有的无参构造方法
3、有能访问属性的公有的getter、setter方法

63. 下列选项中,( )不是HTTP协议的特点。

A:简单快速
B:支持C/S模式
C:持久连接
D:无状态

参考答案:
C
解析:

http协议的连接是无状态的

65. 关于部署到Tomcat服务器的Java Web应用程序,正确的选项有( )

A:Java Web应用程序总是打包成WAR形式部署到Tomcat服务器
B:Java Web应用程序应该部署到Tomcat服务器的server子目录中
C:每个Java Web应用程序都有一个web.xml文件
D:Java Web应用程序的根目录下不能存放任何文件,所有html、gif等文件必须存放到某一子目录中

参考答案:
C
解析:

A.部署到tomcat上的java web应用程序可以打包成war包或者直接不打包

B.java web应用程序应该部署到Tomcat服务器下的webapps文件夹里

70. 下面哪一项对Servlet描述错误?( )

A:Servlet是一个特殊的Java类,它必须直接或间接实现Servlet接口
B:Servlet接口定义了Servlet的生命周期方法
C:当多个客户请求一个Servlet时,服务器为每一个客户启动一个进程
D:Servlet客户线程调用service方法响应客户的请求

参考答案:
C
解析:

C:Servlet为每个用户启动的是线程,而不是进程

72. 在Java EE中,关于创建HttpServletRequest对象的说法正确的是( )

A:从request获取传入的参数,可以调用getParameter方法
B:由Java Web应用的Servlet或JSP组件负责创建,当Servlet或JSP组件响应HTTP请求时,先创建HttpServletRequest对象
C:由程序员通过编码形式创建,以传递请求数据
D:以上都不对

参考答案:
B
解析:

HttpServletRequest对象是由服务器创建的,对应的对象是request

73. 在web应用程序中有以下的程序代码,执行后转发至某个JSP网页:

Map<String,String> map=new HashMap<String,String>();
map.put("user","caterpillar");
map.put("role","admin");
request.setAttribute("login",map);

以下选项()可以正确地使用EL取得map中的值
A: m a p . u s e r B : {map.user} B: map.userB:{map[“role”]}
C: l o g i n . u s e r D : {login.user} D: login.userD:{login[role]}

参考答案:
C
解析:

这里给出正确运用EL表达式的两种方式: ${login.user} ${login[“role”]}

注意操作符左侧写的是request对象里的属性名

77. 下列方法中,哪个不是Servlet接口中的方法( )

A:init()
B:service()
C:getServlet()
D:getServletInfo ()

参考答案:
C
解析:

Servlet接口的方法:
init() 初始化Servlet类
destroy() 销毁Servlet实例以便回收占有的资源
service() 响应客户端请求
getServletConfig() 获取Servlet的配置信息
getServletInfo()获取Servlet的文本

82. 以下关于JDBC说法正确的是()

A:使用class.forName()方法将给定的JDBC驱动类先加载到Java虚拟机中
B:DriverManager类调用getConn()方法,创建连接对象并返回引用
C:PreparedStatement使用预编译语句,传入的任何数据都不会和已经预编译的SQL语句进行拼接,避免了SQL注入攻击
D:释放资源时,要按先Connection,后Statement,最后ResultSet结果集的顺序关闭资源

参考答案:
C
解析:

A.使用Class.forName()方法将给定的JDBC驱动类先加载到Java虚拟机中;注意不是class.forName()
B.DriverManager类调用getConnection()方法,创建连接对象并返回引用;注意不是getConn()方法
D.释放资源时,要按先ResultSet,后Statement,最后Connection结果集的顺序关闭资源

85. Servlet可以在服务器端处理客户请求,当用户提交请求后可以借助HttpServletRequest对象的( )方法获取客户端请求数据

A:setAttribute()
B:getAttribute()
C:setParameter()
D:getParameterValues()

参考答案:
D
解析:
getParameterValues()可以获得客户端请求的多个同名的数据;

getParameter()获得客户端请求的指定名的单个数据。

86. 在login.html中存在如下代码:

<form action =”/LoginServlet” method=”post”>
    username:<input type=”text” name = “userName” id=”myName” value=”yourName”>
</form>

当表单提交时,下列选项中,能够获取到文本框中值的是( )
A:request.getAttribute(“userName”);
B:request.getParameter(“myName”);
C:request.getParameter(“userName”);
D:request.getAttribute(“myName”);

参考答案:
C
解析:

getAttribute()用来获得通过setAttribute()设置的参数值
getParameter()用来获得请求体里指定名的参数值,表单中的id是前端控件的唯一标识,name才会被表单发送至服务器

92. 在Java EE中,在web.xml中有如下代码段:

<servlet>
<init-param>
<param-name>listOrders</param-name>
<param-value>com.mycompany.myactions.ListOrdersAction</Param-value>
</init-Param>
</servlet>

其中,省略号表示省略了一些代码。在Servlet中( )把初始化参数listOrders的值:com.mycompany.myactions.ListOrdersAction取出来
A:使用Servlet的getInitParameter(“listOrders”)方法
B:使用ServletContext的getInitParameter(“listOrders”)方法
C:使用ServletConfig的getInitParameter(“listOrders”)方法
D:使用ServletRequest的getInitParameter(“listOrders”)方法

参考答案:
C
解析:

getServletConfig()方法定义在Servlet接口中,返回ServletConfig接口的引用。所有的servlet都继承了该方法。

容器实例化一个servlet之前,会从web.xml中读取这个servlet的初始化参数,并把这些参数交给ServletConfig,然后在调用
init()方法时,容器会传送这个ServletConfig的引用到每一个servlet。一旦有了ServletConfig的引用就可以调用其
getInitParameter()方法来取得我们在servlet中设置的初始化参数。

94. 假设在helloapp应用中有一个HelloServlet类,它在web.xml文件中的配置如下:D

<servlet>
  <servlet-name> HelloServlet </servlet-name>
  <servlet-class>org.javathinker.HelloServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name> HelloServlet </servlet-name>
  <url-pattern>/hello</url-pattern>
</servlet-mapping>

那么在浏览器端访问HelloServlet的URL是什么?
A:http://localhost:8080/HelloServlet

B: http://localhost:8080/helloapp/HelloServlet
C:http://localhost:8080/helloapp/org/javathinker/hello
D: http://localhost:8080/helloapp/hello

参考答案:
D
解析:

servlet的访问路径由配置中的元素指定,所以访问应该是D

97. JSP分页代码中,哪个步骤次序是正确的?

A:
先取总记录数,得到总页数,再取所有的记录,最后显示本页的数据。

B:
先取所有的记录,得到总页数,再取总记录数,最后显示本页的数据。

C:
先取总页数,得到总记录数,再取所有的记录,最后显示本页的数据。

D:
先取本页的数据,得到总页数,再取总记录数,最后显示所有的记录。

参考答案:
A
解析:

1、count(*)得到总记录数2、计算总页数3、获取所有记录(个人感觉这一步不需要,可以直接获取指定页数数据)4、过滤显示本页数据

98. 使用response 对象进行重定向时,使用的是()方法

A:getRequestDispatcher()
B:forward()
C:sendRedirect()
D:setRequestDispatcher()

参考答案:
C
解析:

response.sendRedirect(url);告诉浏览器重新请求指定的url地址。

99. 在使用JDBC API实现查询数据时,执行过程中以下接口或类的使用顺序正确的是()。

(1)Connection
(2)DriverManager
(3)ResultSet
(4)Statement
A:(1)(2)(3)(4)
B:(2)(1)(3)(4)
C:(2)(1)(4)(3)
D:(3)(2)(1)(4)

参考答案:
C
解析:

使用JDBC API实现查询数据时的步骤是:

1加载数据库驱动
2获得数据库连接
3 获得执行SQL语句的PreparedStatement或者Statement
4处理ResultSet结果集

107. 下列( )层是数据库厂商提供的资源,而非Java平台提供

A:Java应用程序
B:
JDBC API

C:JDBC Driver Manager
D:JDBC驱动

参考答案:
D
解析:

java应用程序当然是自己写的啦; JDBC
API由SUN公司提供,其中包含了Java应用程序与各种不同数据库交互的标准接口,如Connection连接接口、Statement操作接口、
ResultSet结果集接口、PreparedStatement预处理操作接口等。我们可以使用这些JDBC接口来操作各种数据库; JDBC
Driver Manager也是由SUN公司提供,负责管理各种不同数据库的JDBC驱动;

JDBC驱动由各个数据库厂商或第三方厂商提供,负责连接各种不同的数据库。

111. 以下关于JavaBean的描述,错误的是()

A:JavaBean是公有的Java类,它可以重用
B:JavaBean按功能可分为两类:封装数据和封装业务
C:一个应用程序中只能有两个JavaBean
D:JavaBean的属性私有,但具有公有的访问属性的getter和setter方法

参考答案:
C
解析:

应用程序的javaBean个数没有限制

113. jsp的哪个指令允许页面使用者自定义标签库?( )

A:include指令
B:taglib指令
C:page指令
D:plugin指令

参考答案:
B
解析:

include指令:是将其他完整的JSP页面加入到当前jsp页面中来,好处是便于JSP的模块化设计,比如页眉、页脚分别用两个JSP页面展示。
page指令:<%@ page 属性1="…" 属性2="…"
…%>,应用于整个JSP页面,定义JSP页面的一些属性和属性值; taglib指令:用来声明页面中使用的自定义的标签库。
plugin指令:主要用于下载服务器端的 JavaBean 或 Applet 到客户端执行。由于程序在客户端执行,因此客户端必须安装虚拟机。

114. 在Servlet过滤器的生命周期方法中,每当传递请求或响应时,web容器会调用()方法

A: init
B: service
C: doFilter
D: destroy

参考答案:
C
解析:

过滤器的生命周期:
(1)、启动服务器时加载过滤器的实例,并调用init()方法来初始化实例;
(2)、每一次请求时都只调用方法doFilter()进行处理;
(3)、停止服务器时调用destroy()方法,销毁实例。

115. 下面关于JSP作用域对象的说法错误的是( )。

A:request对象可以得到请求中的参数
B:session对象可以保存用户信息
C:application对象可以被多个应用共享
D:作用域范围从小到大是request、session、application

参考答案:
C
解析:

application是对每一个用户都可见,但只能被本应用所享有



这篇关于javaWeb面试题(易错题)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程