Servlet面试题

Servlet面试题
Servlet面试题

1.销毁一个session对象,应当调用下面哪一个方法()

A. session.invalidate()

B. session.expunge()

C. session.destroy()

D. session.end()

2.以下哪个说法是正确的?(多选)( )

A. 每个Http请求对应一个单独的ActionServlet实例

B. 对于每个请求访问HelloAction的Http请求,struts框架只创建一个单独的HelloAction实例

C. 每个子应用对应一个单独的RequestProcessor实例

D. 每个子应用对应一个单独的web.xml文件

3. 在J2EE中,Servlet从实例化到消亡是一个生命周期。下列描述不正确的是()。

A. 在典型的Servlet生命周期模型中,每次Web请求就会创建一个Servlet实例,请求结束 Servlet就消亡了

B. init()方法是容器调用的Servlet实例的第一个方法

C. 在包容器把请求传送给Servlet之后,和在调用Servlet实例的doGet或者doPost

方法之前,包容器不会调用Servlet实例的其他方法

D. 在Servlet实例消亡之前,包容器调用Servlet实例的destroy()方法

4. 编写Servlet 的doPost方法时,需要抛出异常为()。

A. ServletException, IOException

B. ServletException, RemoteException

C. HttpServletException, IOException

D. HttpServletException, RemoteException

5. 在Servlet里,能实现重定向的两个方法是()。

A. 运用javax.servlet.http.HttpServletRequest接口的sendRedirect方法

B. 运用javax.servlet.http.HttpServletResponse接口的sendRedirect方法

C. 运用javax.servlet.RequestDispatcher接口的forward方法

D. 运用javax.servlet.ResponseDispatcher接口的forward方法

6. HTTP协议的全称是()。

A. Hyper Transport Text Protocol

B. Hyper text Transport Protocol

C. Hyper Transfer Text Protocol

D. Hyper text Transfer Protocol

7. MVC设计模式包含模型层、视图层和控制器层,在下列组件中扮演控制器角色的是()。

A. Servlet

B. JSP

C. JavaBean

D. HTML

8. 在javax.servlet.http.*API中,HttpServlet的()方法用来处理客户端的请求。

A. Init()

B. doPost()

C. doGet()

D. destroy()

9. 在JavaEE中,HttpServletRequest对象是由()创建的。

A. 由Servlet容器负责创建,对于每个HTTP请求,Servlet容器都会创建一个HttpServletRequest对象

B. 由JavaWeb应用的Servlet或JSP组件负责创建,当Servlet或JSP组件响应HTTP请求时,先创建HttpServletRequest对象

C. 由程序员通过编码形式创建,以传递请求数据

D. 以上都不对

10. HttpServlet中,用来处理GET请求的方法是。( )

A. doHead

B. doGet

C. doPost

D. doPut

11. 下面哪一个标记与Servlet的配置无关 ( )

A. servlet-mapping

B. servlet-class

C. url-pattern

D. Tag

12. 用于调用存储过程的对象是。( )

A. ResultSet

B. DriverManager

C. CallableStatemet

D. PreparedStatement

13. 在Servlet处理请求的方式为。 ( )

A. 以进程的方式

B. 以程序的方式

C. 以线程的方式

D. 以响应的方式

14. 从以下哪一个选项中可以获得Servlet的初始化参数。 ( )

A. Servlet

B. ServletContext

C. ServletConfig

D. GenericServlet

15. 在J2EE中,对于在Servlet如何获得会话,描述正确的是()。(选择两项)

A. HttpServletRequest类的getSession方法有两个:带参数的getSession方法和不带参数的getSession方法

B. 在servlet中,可以使用HttpSession session =new HttpSession()创建s ession对象

C. 如果HttpServletRequest类的getSession方法的参数为false,表示如果没有与当前的请求相联系的会话对象时,该方法返回null

D. 如果HttpServletRequest类的getSession方法的参数为true,表示如果没有与当前的请求相联系的会话对象时,该方法返回null

16. 在J2EE中,对于HttpServlet类的描述,不正确的是 ( ).

A. 我们自己编写的Servlet继承了HttpServlet类,一般只需覆盖doPost或者doGet方法,不必覆盖sevrvice( )方法.因为一个sevrvice( )方法是空的

B. HttpServlet类扩展了GenericServlet类,实现了GenericServlet类的抽象方法sevrvice( )

C. HttpServlet类有两个sevrvice( )方法

D. 我们自己编写的Servlet继承了HttpServlet类,一般只需覆盖doPost或者doGet方法,不必覆盖sevrvice( )方法.因为一个sevrvice( )方法会调用doPo st或者doGet方法

17. 对于自己编写的Servlet1,以下对Servlet1的定义正确的是: ( )

A. class Servlet1 implements javax.servlet.Servlet

B. class Servlet1 extends javax.servlet.GenericServlet

C. class Servlet1 extends javax.servlet.http.HttpServlet

D. class Servlet1 extends javax.servlet.ServletRequest

18. 使用哪个方法,可以查看到用户在浏览html文件时选择的所有值。 ( )

A. getParameterValues方法

B. getParameter方法

C. getQueryString方法

D. getAttribute方法

19. 在Java Web应用程序中,给定某Servlet程序的代码如下所示:

public class Servlet1 extends HttpServlet{

public void doGet(HttpServletRequest request,HttpServletResponse resp onse)

throws ServletException,IOException{

System.out.printIn(“get”);

}

public void doPost(HttpServletRequest request,Http ServletResponse re sponse)

throws ServletException,IOException{

System.out.printIn(“post”);

doGet(request,response);

}}

用户在浏览器地址栏中键入正确的请求URL并回车后,在控制台上显示的结果是()。

A. get

B. post

C. get post

D.post get

20. 在Java Web应用程序中,包含两个名为Servlet1和Servlet2的HttpServ let,在web.xml中指定Servlet2的访问路径为“/Servlet2”,Servlet1的d oGet方法中的代码为:

PrintWriter out = response.getWriter();

out.print (“Servlet”);

RequestDispatcher dispatcher = request.getRequestDispatcher(“/servle t2”);

dispatcher.forward(request,response);

out.close();

Servlet2的doGet方法中的代码为:

PrintWriter out = response.getWriter();

out.print(“Servlet2”);

out.close();

如果用户在浏览器中访问Servlet1,则浏览器将()。

A. 显示“Servlet1”

B. 显示“Servlet2”

C. 显示“Servlet1 Servlet2”

D. 什么也不显示

二、填空题

1. 如何实现servlet 的单线程模式?<%@ page isThreadSafe=”false” %>

2. 页面间对象传递的方法为:request,session,application,cookie

3. 编写Servlet通常需要实现的两个方法是:doGet、doPost

4. Class.forName的作用是:

5. 两种跳转方式分别是:forward跳转和response跳转。

6. 对提交到同一个servlet类的多个业务请求,共享1个servlet对象。

三、问答题

1.说一说Servlet的生命周期

web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行s ervlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的d o***()方法。结束服务,web容器调用servlet的destroy()方法。

2.Servlet的基本架构

所有的Servlet都必须要实现的核心的接口是javax.servlet.Servlet。每一个Servlet都必须要直接或者是间接实现这个接口,或者是继乘

javax.servlet.GenericServlet或者javax.servlet.http.HTTPServlet。最后,Servlet使用多线程可以并行的为多个请求服务

3.JAVA SERVLET API中forward() 与redirect()的区别?

forward方式:

request.getRequestDispatcher("/somePage.jsp").forward(request,respons e);redirect方式:response.sendRedirect("/somePage.jsp");redirect() 会丢失request的所有信息它属于页面级的重定向,仅仅让你的浏览器重新访问一个新的url,作为浏览者,能很明显的看到浏览器url地址的变化,这和点击了一个普通的超链接的后果是一样的。而 RequestDispatcher 的forward() 方法,是转发,需要request 和 response最为参数,就是将用户的请求,连同请求信息等内容,一起转发到服务器的另外一个servlet去处理,它不会丢失request信息。这一过程是服务器内部完成的,作为访问者,是感觉不到了,或者说是透明的,因此访客浏览器的url 是不会发生变化的。

4、什么情况下调用doGet()和doPost()?

Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。

5、JSP的内置对象及方法。

request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。

response表示HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等)

out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。 session表示一个请求的

javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息

applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息

config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。

page表示从该页面产生的一个servlet实例

相关主题
相关文档
最新文档