单选题
1、
Servlet程序的入口点是()
2分
-
A、A、init()
-
B、B、main()
-
C、C、service()
-
D、D、doGet()
参考答案 :
A
答案说明 :
当客户端向Servlet容器发出HTTP请求访问Servlet时,Servlet容器首先会解析请求,检查内存中是否已经有了该Servlet对象,如果有,直接使用该Servlet对象;如果没有,就创建Servlet实例对象,然后通过调用init()方法完成Servlet的初始化。需要注意的是,在Servlet的整个生命周期内,它的init()方法只被调用一次。
2、
ServletRequest接口中用于获取请求客户端的IP地址的方法是()
2分
-
A、A、getRemoteAddr()
-
B、B、getRemoteHost()
-
C、C、getRemotePort()
-
D、D、getLocalAddr()
参考答案 :
A
答案说明 :
B选项是获取请求客户端的完整主机名;C是获取请求客户端网络连接的端口号;D是获取获取Web服务器上接收当前网络连接的IP地址
3、
下面选项中,与web应用具有相同的生命周期的对象是()
2分
-
A、A、Servlet
-
B、B、ServletConfig
-
C、C、GenericServlet
-
D、D、ServletContext
参考答案 :
D
答案说明 :
无
4、
request对象的哪个方法是根据组件名称获取提交数据的()
2分
-
A、A、getParameterValues()
-
B、B、getParameter()
-
C、C、getHeaderNames()
-
D、D、getRequestURI()
参考答案 :
B
答案说明 :
无
5、
下面选项中, 用于实现一个Web应用中的所有Servlet共享数据的对象是()
2分
-
A、A、HttpSession
-
B、B、ServletContext
-
C、C、ServletConfig
-
D、D、ServletRequest
参考答案 :
B
答案说明 :
当Servlet容器启动时,会为每个Web应用创建一个唯一的ServletContext对象代表当前Web应用。ServletContext对象不仅封装了当前Web应用的所有信息,而且实现了多个Servlet之间数据的共享。
6、
给定Servlet程序的代码如下所示: public class Servlet1 extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response) Throws ServletException IOException{ System.out.println(“get”); } public void doPost(HttpServletRequest request.HttpServletResponse response) Throws ServletException,IOException{ System.out.println(“post”); doGet(reauest,response); } } 通过GET方式请求访问Servlet1时,控制台上显示的结果是()
2分
-
A、A、get
-
B、B、post
-
C、C、get post
-
D、D、post get
参考答案 :
A
答案说明 :
无
7、
下列关于ServletContext的说法中,错误的是()
2分
-
A、A、ServletContext对象用来保存当前Web应用中的所有信息
-
B、B、在一个Web应用中可以有多个ServletContext对象
-
C、C、ServletContext接口封装了获取当前Web应用中资源文件的方法
-
D、D、ServletContext对象中保存的属性可以被Web应用中的所有Servlet访问
参考答案 :
B
答案说明 :
当Servlet容器启动时,会为每个Web应用创建一个唯一的ServletContext对象代表当前Web应用。ServletContext对象不仅封装了当前Web应用的所有信息,而且实现了多个Servlet之间数据的共享。
8、
下列选项关于Servlet的作用说法正确的是()
2分
-
A、A、处理客户端请求并做出响应
-
B、B、打开并显示网页内容
-
C、C、连接数据库
-
D、D、页面跳转
参考答案 :
A
答案说明 :
无
9、
下面关于Servlet的技术特点,正确的是()
2分
-
A、A、功能强大
-
B、B、不可移植
-
C、C、安全性不高
-
D、D、不可扩展
参考答案 :
A
答案说明 :
Servlet的技术特点主要表现在以下几个方面:功能强大、可移植、性能高效、安全性高、可扩展。
10、
下列关于Servlet接口的说法中,正确的是()
2分
-
A、A、Servlet接口中只有一个默认的实现类HttpServlet
-
B、B、Servlet接口中定义了4个抽象方法
-
C、C、Servlet接口的抽象方法中,init()、service()和destroy()方法可以表现Servlet的生命周期
-
D、D、GenericServlet类不是Servlet接口的实现类
参考答案 :
C
答案说明 :
Servlet接口中定义了5个抽象方法,分别是init()、getServletConfig()、getServletInfo()、service()和destroy()。
11、
HttpServlet类中,用来处理POST请求的方法是()
2分
-
A、A、doHead
-
B、B、doGet
-
C、C、doPost
-
D、D、doPut
参考答案 :
C
答案说明 :
无
12、
关于servlet生命周期描述错误的是()
2分
-
A、A、Servlet的每一次访问请求,Servlet容器都会调用一次Servlet的service( )方法
-
B、B、服务器启动时就会创建Servlet
-
C、C、Servlet的生命周期可以由init,service,destory 3个方法体现
-
D、D、每请求一次Servlet就会调用一次service方法,但init方法只会调用一次
参考答案 :
B
答案说明 :
无
13、
下列哪一个方法用于设置HttpServletResponse的响应内容类型()
2分
-
A、A、setParameter()
-
B、B、setContentType()
-
C、C、setAttribute()
-
D、D、doPost()
参考答案 :
B
答案说明 :
无
14、
Servlet接口中的service()方法,说法错误的是()
2分
-
A、A、当容器接收到客户端访问Servlet对象的请求时,就会调用此方法
-
B、B、服务器请求一次,service方法就被调用一次
-
C、C、service方法有两个参数,request和response
-
D、D、request负责响应信息,response负责接收参数
参考答案 :
D
答案说明 :
在service()方法中,可以通过ServletRequest对象得到客户端的相关信息和请求信息,在对请求进行处理后,调用ServletResponse对象的方法设置响应信息
15、
下列选择中,用于封装HTTP请求消息的是()
2分
-
A、A、HttpServlet类
-
B、B、HttpServletRequest接口
-
C、C、HttpServletResponse接口
-
D、D、ServletContext接口
参考答案 :
B
答案说明 :
无
16、
从以下哪一个选项中可以获得Servlet的初始化参数()
2分
-
A、A、Servlet
-
B、B、ServletContext
-
C、C、ServletConfig
-
D、D、GenericServlet
参考答案 :
C
答案说明 :
无
17、
程序中创建了一个Servlet,该Servlet重写了其父类的doGet()和doPost()方法,那么其父类可能是 ()
2分
-
A、A、RequestDispatcher
-
B、B、HttpServletResponse
-
C、C、HttpServletRequest
-
D、D、HttpServlet
参考答案 :
D
答案说明 :
无
18、
以下哪一个方法可以解决post请求时传递的中文参数乱码问题()
2分
-
A、A、req.setCharacterEncoding(“utf-8”);
-
B、B、new String( req.getParameter(key).getBytes() , “utf-8” );
-
C、C、resp.setContentType(“text/html;charset=utf-8”);
-
D、D、resp.getOutputStream( )
参考答案 :
A
答案说明 :
无
19、
关于ServletRequest对象的setAttribute()方法,说法正确的是()
2分
-
A、A、如果ServletRequest对象中已经存在指定名称的属性,setAttribute()方法将会先删除原来的属性,然后再添加新的属性
-
B、B、如果ServletRequest对象中已经存在指定名称的属性,setAttribute()方法将会将新添加的属性直接覆盖原来的属性
-
C、C、如果ServletRequest对象中已经存在指定名称的属性,setAttribute()方法会直接在原来的属性后面追加上新的属性
-
D、D、以上说法都不正确
参考答案 :
A
答案说明 :
无
20、
关于getParameter(String name)获取请求参数方法的说法中,正确的是()
2分
-
A、A、如果请求消息中没有包含指定名称的参数,getParameter()方法返回空字符串
-
B、B、如果请求消息中没有包含指定名称的参数,getParameter()方法返回null
-
C、C、如果请求消息中包含多个指定名称的参数,getParameter()方法返回最后一个出现的参数值
-
D、D、如果请求消息中包含多个指定名称的参数,getParameter()方法返回任意一个参数
参考答案 :
B
答案说明 :
如果请求消息中包含多个指定名称的参数,getParameter()方法返回第一个出现的参数。
21、
LoginServlet是一个Servlet类,代码如下 public class LoginServlet extends ___________ { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { … } public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { … } }在下划线处应填写()
2分
-
A、A、Servlet
-
B、B、HttpServlet
-
C、C、GenericServlet
-
D、D、Cookie
参考答案 :
B
答案说明 :
HttpServlet是GenericServlet的子类,它继承了GenericServlet的所有方法,并且为HTTP请求中的POST、GET等类型提供了具体的操作方法。通常情况下,编写的Servlet类都继承自HttpServlet。
判断题
22、
在getIntHeader(String name)方法中,如果指定的头字段不存在,返回值为0。
2分
-
-
参考答案 :
错
答案说明 :
返回值应该为-1。
23、
设置request对象的解码方式,可以使用setCharacterEncoding()方法。
2分
-
-
参考答案 :
对
答案说明 :
无
24、
Servlet 对象主要封装了对HTTP请求的处理,并且它的运行需要Servlet容器的支持。
2分
-
-
参考答案 :
对
答案说明 :
Servlet是运行在Web服务器端的Java应用程序,它使用Java语言编写。与Java程序的区别是,Servlet 对象主要封装了对HTTP请求的处理,并且它的运行需要Servlet容器的支持。
25、
WEB-INF目录中的内容对RequestDispatcher对象是可见的。
2分
-
-
参考答案 :
对
答案说明 :
无
26、
Servlet主要用于服务器端。
2分
-
-
参考答案 :
对
答案说明 :
无
27、
如果发送到客户端的内容是jpeg格式的图像数据,就需要将响应头字段的类型设置为“image/jpeg”。
2分
-
-
参考答案 :
对
答案说明 :
无
28、
HTTP请求消息中可以有多个相同名称的参数。
2分
-
-
参考答案 :
对
答案说明 :
无
29、
一个Servlet可以匹配多个URL。
2分
-
-
参考答案 :
对
答案说明 :
urlPatterns属性值用于指定一组Servlet的URL的匹配模式,等价于<url-pattern>标签。
30、
在多数情况下,一个头字段在请求消息中只出现一次,但有时候可能出现多次。
2分
-
-
参考答案 :
对
答案说明 :
无
31、
ServletConfig对象是由Web容器(或Tomcat)创建出来的。
2分
-
-
参考答案 :
对
答案说明 :
当Tomcat初始化一个Servlet时,会将该Servlet的配置信息封装到一个ServletConfig对象中,通过调用init(ServletConfig config)方法将ServletConfig对象传递给Servlet。
32、
当Tomcat初始化一个Servlet时,会将该Servlet的配置信息封装到一个ServletConfig对象。
2分
-
-
参考答案 :
对
答案说明 :
当Tomcat初始化一个Servlet时,会将该Servlet的配置信息封装到一个ServletConfig对象中,通过调用init(ServletConfig config)方法将ServletConfig对象传递给Servlet。
33、
创建好的Servlet,客户端可以对其进行直接访问。
2分
-
-
参考答案 :
错
答案说明 :
Servlet的请求首先会被HTTP服务器(如Apache)接收,HTTP服务器只负责静态HTML页面的解析,对于Servlet的请求转交给Servlet容器,Servlet容器会根据web.xml文件中的映射关系,调用相应的Servlet,Servlet将处理的结果返回给Servlet容器,并通过HTTP服务器将响应传输给客户端。
34、
在Servlet的整个生命周期中,destroy()方法会被调用多次。
2分
-
-
参考答案 :
错
答案说明 :
当服务器关闭或web应用被移除出容器时,Servlet随着web应用的销毁而销毁。在销毁Servlet之前,Servlet容器会调用Servlet的destroy()方法,以便让Servlet对象释放它所占用的资源。在Servlet的整个生命周期中,destroy()方法也只被调用一次。
35、
HttpServletResponse接口的sendError(int sc)方法会向客户端发出一条错误信息。
2分
-
-
参考答案 :
错
答案说明 :
该方法只用于发送表示错误信息的状态码。例如,404状态码表示找不到客户端请求的资源。
36、
Servlet不需要部署就可以直接使用。
2分
-
-
参考答案 :
错
答案说明 :
Servlet是运行在Web服务器端的Java应用程序,它使用Java语言编写。与Java程序的区别是,Servlet 对象主要封装了对HTTP请求的处理,并且它的运行需要Servlet容器的支持。
37、
Web服务器接收到客户端的请求后,可能由于某些条件限制,不能访问当前请求URL所指向的Web资源,而是指定了一个新的资源路径,让客户端重新发送请求,这就是请求重定向。
2分
-
-
参考答案 :
对
答案说明 :
无
38、
定义@WebServlet 注解时,value 或者 urlPatterns 属性通常是必需的,但二者不能共存。
2分
-
-
参考答案 :
对
答案说明 :
定义@WebServlet 注解时,value 或者 urlPatterns 通常是必需的,但二者不能共存,如果同时指定,通常是忽略value的取值。
39、
ServletRequest接口的setAttribute()方法用于将一个对象与一个name关联后存储进ServletRequest对象中。
2分
-
-
参考答案 :
对
答案说明 :
无
40、
Response对象的getOutputStream()和getWriter()方法可以同时发送响应消息体。
2分
-
-
参考答案 :
错
答案说明 :
getOutputStream( )方法所获取的字节输出流对象为ServletOutputStream类型。它可以直接输出字节数组中的二进制数据。 getWriter( )方法所获取的字符输出流对象为PrintWriter类型,PrintWriter类型的对象可以直接输出字符文本内容。
41、
getOutputStream()方法所获取的字节输出流对象为ServletOutputStream类型。
2分
-
-
参考答案 :
对
答案说明 :
无
42、
Servlet对象一旦创建就会驻留在内存中等待客户端的访问,直到服务器关闭,或Web应用被移除出容器时Servlet对象才会被销毁。
2分
-
-
参考答案 :
对
答案说明 :
无
填空题
43、
为了实现请求,HttpServletResponse接口定义了一个sendRedirect( )方法。
2分
参考答案 :
【重定向】
答案说明 :
无
44、
对象可以实现多个Servlet数据的共享。
2分
参考答案 :
【ServletContext】
答案说明 :
无
45、
Servlet接口有两个默认的接口实现类,分别是和HttpServlet类。
2分
参考答案 :
【GenericServlet】
答案说明 :
无
46、
ServletContext接口可以获取Web应用程序的参数。
2分
参考答案 :
【初始化】
答案说明 :
无
47、
Servlet的配置主要有两种方式,分别是通过Web应用的配置文件来完成配置和使用@WebServlet注解的方式完成。
2分
参考答案 :
【web.xml】
答案说明 :
若想让Servlet正确地运行在服务器中并处理请求信息,必须进行适当的配置,关于Servlet的配置主要有两种方式,分别是通过Web应用的配置文件web.xml来完成配置和使用@WebServlet注解的方式完成。
48、
Servlet API中,专门用来封装HTTP响应消息的接口是。
2分
参考答案 :
【HttpServletResponse】
答案说明 :
无
49、
Servlet的生命周期大致可以分为三个阶段,分别是初始化阶段、运行阶段和。
2分
参考答案 :
【销毁阶段】
答案说明 :
无
50、
如果当前Web资源不想处理请求,RequestDispatcher接口提供了一个forward()方法,该方法可以将当前请求传递给其他Web资源对这些信息进行处理并响应给客户端,这种方式称为。
2分
参考答案 :
【请求转发】
答案说明 :
无