Servlet 基础练习题

Servlet 基础

点击蓝色字体跳转到Servlet的百度百科,了解更多的Servlet

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

一、单选题

1、ServletRequest接口中用于获取请求客户端的IP地址的方法是( A )
A、getRemoteAddr()
B、getRemoteHost()
C、getRemotePort()
D、getLocalAddr()
2、Servlet程序的入口点是( A )
A、init()
B、main()
C、service()
D、doGet()
3、下面选项中,与web应用具有相同的生命周期的对象是( D )
A、Servlet
B、ServletConfig
C、GenericServlet
D、ServletContext
4、下列关于ServletContext的说法中,错误的是( B )
A、ServletContext对象用来保存当前Web应用中的所有信息
B、在一个Web应用中可以有多个ServletContext对象
C、ServletContext接口封装了获取当前Web应用中资源文件的方法
D、ServletContext对象中保存的属性可以被Web应用中的所有Servlet访问
5、Servlet接口中的service()方法,说法错误的是( D )
A、当容器接收到客户端访问Servlet对象的请求时,就会调用此方法
B、服务器请求一次,service方法就被调用一次
C、service方法有两个参数,request和response
D、request负责响应信息,response负责接收参数
6、下列哪一个方法用于设置HttpServletResponse的响应内容类型(B)
A、setParameter()
B、setContentType()
C、setAttribute()
D、doPost()
7、关于servlet生命周期描述错误的是(B)
A、Servlet的每一次访问请求,Servlet容器都会调用一次Servlet的service( )方法
B、服务器启动时就会创建Servlet
C、Servlet的生命周期可以由init,service,destory 3个方法体现
D、每请求一次Servlet就会调用一次service方法,但init方法只会调用一次
8、HttpServlet类中,用来处理POST请求的方法是(C)
A、doHead
B、doGet
C、doPost
D、doPut
9、下列选择中,用于封装HTTP请求消息的是(B)
A、HttpServlet类
B、HttpServletRequest接口
C、HttpServletResponse接口
D、ServletContext接口
10、request对象的哪个方法是根据组件名称获取提交数据的(B)
A、getParameterValues()
B、getParameter()
C、getHeaderNames()
D、getRequestURI()
11、下面关于Servlet的技术特点,正确的是(A)
A、功能强大
B、不可移植
C、安全性不高
D、不可扩展
12、下面选项中, 用于实现一个Web应用中的所有Servlet共享数据的对象是(B)
A、HttpSession
B、ServletContext
C、ServletConfig
D、ServletRequest
13、下列关于Servlet接口的说法中,正确的是(C)
A、Servlet接口中只有一个默认的实现类HttpServlet
B、Servlet接口中定义了4个抽象方法
C、Servlet接口的抽象方法中,init()、service()和destroy()方法可以表现Servlet的生命周期
D、GenericServlet类不是Servlet接口的实现类
14、下列选项关于Servlet的作用说法正确的是(A)
A、处理客户端请求并做出响应
B、打开并显示网页内容
C、连接数据库
D、页面跳转
15、给定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时,控制台上显示的结果是(A)
A、get
B、post
C、get post
D、post get
16、关于getParameter(String name)获取请求参数方法的说法中,正确的是(B)
A、如果请求消息中没有包含指定名称的参数,getParameter()方法返回空字符串
B、如果请求消息中没有包含指定名称的参数,getParameter()方法返回null
C、如果请求消息中包含多个指定名称的参数,getParameter()方法返回最后一个出现的参数值
D、如果请求消息中包含多个指定名称的参数,getParameter()方法返回任意一个参数
17、关于ServletRequest对象的setAttribute()方法,说法正确的是(A)
A、如果ServletRequest对象中已经存在指定名称的属性,setAttribute()方法将会先删除原来的属性,然后再添加新的属性
B、如果ServletRequest对象中已经存在指定名称的属性,setAttribute()方法将会将新添加的属性直接覆盖原来的属性
C、如果ServletRequest对象中已经存在指定名称的属性,setAttribute()方法会直接在原来的属性后面追加上新的属性
D、以上说法都不正确
18、从以下哪一个选项中可以获得Servlet的初始化参数(C)
A、Servlet
B、ServletContext
C、ServletConfig
D、GenericServlet
19、程序中创建了一个Servlet,该Servlet重写了其父类的doGet()和doPost()方法,那么其父类可能是 (D)
A、RequestDispatcher
B、HttpServletResponse
C、HttpServletRequest
D、HttpServlet
20、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 { … } }
在下划线处应填写(B)
A、Servlet
B、HttpServlet
C、GenericServlet
D、Cookie
21、以下哪一个方法可以解决post请求时传递的中文参数乱码问题( A )
A、req.setCharacterEncoding(“utf-8”);
B、new String( req.getParameter(key).getBytes() , “utf-8” );
C、resp.setContentType(“text/html;charset=utf-8”);
D、resp.getOutputStream()

二、多选题

22、下面关于Servlet的描述正确的是(C D)
A、在浏览器的地址栏直接输入要请求的Servlet,该Servlet默认会使用doPost方法处理请求
B、Servlet是运行在客户端的程序
C、Servlet的生命周期包括创建、初始化、服务、销毁
D、Servlet可以直接向浏览器发送HTML标签

三、判断题

23、Servlet 对象主要封装了对HTTP请求的处理,并且它的运行需要Servlet容器的支持。

24、设置request对象的解码方式,可以使用setCharacterEncoding()方法。

25、在getIntHeader(String name)方法中,如果指定的头字段不存在,返回值为0。

26、在Servlet的整个生命周期中,destroy()方法会被调用多次。

27、Servlet主要用于服务器端。

28、一个Servlet可以匹配多个URL。

29、创建好的Servlet,客户端可以对其进行直接访问。

30、在多数情况下,一个头字段在请求消息中只出现一次,但有时候可能出现多次。

31、Web服务器接收到客户端的请求后,可能由于某些条件限制,不能访问当前请求URL所指向的Web资源,而是指定了一个新的资源路径,让客户端重新发送请求,这就是请求重定向。

32、ServletConfig对象是由Web容器(或Tomcat)创建出来的。

33、如果发送到客户端的内容是jpeg格式的图像数据,就需要将响应头字段的类型设置为“image/jpeg”。

34、WEB-INF目录中的内容对RequestDispatcher对象是可见的。

35、HTTP请求消息中可以有多个相同名称的参数。

36、HttpServletResponse接口的sendError(int sc)方法会向客户端发出一条错误信息。

37、当Tomcat初始化一个Servlet时,会将该Servlet的配置信息封装到一个ServletConfig对象。

38、Servlet不需要部署就可以直接使用。

39、getOutputStream()方法所获取的字节输出流对象为ServletOutputStream类型。

40、ServletRequest接口的setAttribute()方法用于将一个对象与一个name关联后存储进ServletRequest对象中。

41、定义@WebServlet 注解时,value 或者 urlPatterns 属性通常是必需的,但二者不能共存。

42、Response对象的getOutputStream()和getWriter()方法可以同时发送响应消息体。

43、Servlet对象一旦创建就会驻留在内存中等待客户端的访问,直到服务器关闭,或Web应用被移除出容器时Servlet对象才会被销毁。

四、填空题

44、ServletContext对象可以实现多个Servlet数据的共享。

45、为了实现请求重定向,HttpServletResponse接口定义了一个sendRedirect( )方法。

46、Servlet的生命周期大致可以分为三个阶段,分别是初始化阶段、运行阶段和销毁阶段。

47、ServletContext接口可以获取Web应用程序的初始化参数。

48、Servlet接口有两个默认的接口实现类,分别是GenericServlet和HttpServlet类。

49、Servlet的配置主要有两种方式,分别是通过Web应用的配置文件web.xml来完成配置和使用@WebServlet注解的方式完成。

50、如果当前Web资源不想处理请求,RequestDispatcher接口提供了一个forward()方法,该方法可以将当前请求传递给其他Web资源对这些信息进行处理并响应给客户端,这种方式称为请求转发。

51、Servlet API中,专门用来封装HTTP响应消息的接口是HttpServletResponse。

猜你喜欢

转载自blog.csdn.net/weixin_48053866/article/details/124229711