首页 > 试题广场 >

常用的servlet包的名称是?

[不定项选择题]
常用的servlet包的名称是?
  • java.servlet
  • javax.servlet
  • servlet.http
  • javax.servlet.http

使用 Java 技术开发 WEB 应用程序 , 深入了解 Servlet 的机制对应用的开发将有重要的推动作用 . 而想深入了解 Servlet 的机制就不得不了解 javax.servlet .

 

javax.servlet 包中包含了 7 个接口 ,3 个类和 2 个异常类 , 它们分别是 :

 

接口 :RequestDispatcher,Servlet,ServletConfig,ServletContext,ServletRequest,ServletResponse SingleThreadModel

 

:GenericServlet,ServletInputStream ServletOutputStream

 

异常类 :ServletException UnavailableException

 

Servlet 的生命周期

 

Servlet 的接口中定义了一个 Servlet 的生命周期方法 , 分别是 Init,Service Destroy

 

演示了 Servlet 生命周期方法的简单 Servlet:

 

import javax.servlet.*;

import java.io.IOException;

 

public class PrimitiveServlet implements Servlet {

 

  public void init(ServletConfig config) throws ServletException {

    System.out.println("init");

  }

 

  public void service(ServletRequest request, ServletResponse response)

    throws ServletException, IOException {

    System.out.println("service");

  }  

  public void destroy() {

    System.out.println("destroy");

  }

 

  public String getServletInfo() {

    return null;

  }

  public ServletConfig getServletConfig() {

    return null;

  }

 

}

 

Servlet 中如何获取 ServletConfig 对象 ?

 

Servlet Init 方法中 ,Servlet Container 将会传入一个 ServletConfig 对象 , 开发人员可以通过这个对象获取在 web.xml 文件中定义的 Servlet 初始化参数 .

 

下面是一个获取 Servlet 初始参数的示例 :

 

import javax.servlet.*;

import java.util.Enumeration;

import java.io.IOException;

 

public class ConfigDemoServlet implements Servlet {

 

  public void init(ServletConfig config) throws ServletException {

    Enumeration parameters = config.getInitParameterNames();

    while (parameters.hasMoreElements()) {

      String parameter = (String) parameters.nextElement();

      System.out.println("Parameter name : " + parameter);

      System.out.println("Parameter value : " +

        config.getInitParameter(parameter));

    }

  }

 

  public void destroy() {

  }

 

  public void service(ServletRequest request, ServletResponse response)

    throws ServletException, IOException {

  }

 

  public String getServletInfo() {

    return null;

  }

 

  public ServletConfig getServletConfig() {

    return null;

  }

}

如何获取 ServletContext 对象 ?

可以通过 ServletConfig 对象的 getServletContext 方法获取 ServletContext 对象

import javax.servlet.*;

import java.util.Enumeration;

import java.io.IOException;

 

public class ContextDemoServlet implements Servlet {

  ServletConfig servletConfig;

 

  public void init(ServletConfig config) throws ServletException {

    servletConfig = config;

  }

 

  public void destroy() {

  }

 

  public void service(ServletRequest request, ServletResponse response)

    throws ServletException, IOException { 

    ServletContext servletContext = servletConfig.getServletContext();

    Enumeration attributes = servletContext.getAttributeNames();

    while (attributes.hasMoreElements()) {

      String attribute = (String) attributes.nextElement();

      System.out.println("Attribute name : " + attribute);

      System.out.println("Attribute value : " +

        servletContext.getAttribute(attribute));

    }

 

    System.out.println("Major version : " +

servletContext.getMajorVersion());

    System.out.println("Minor version : " +

servletContext.getMinorVersion());

    System.out.println("Server info : " + servletContext.getServerInfo());

  }

 

  public String getServletInfo() {

    return null;

  }

  public ServletConfig getServletConfig() {

    return null;

  }

 

}

如何在 Servlet 之间共享信息 ?

我们可以通过 ServletContext 来维护在不同 Servlet 之间共享的信息 .

如何解决 Servlet 的多 Thread 问题 ?

如果 Servlet 需要读写外部资源 , 我们需要考虑 Thread 的问题 , 我们可以使用声明性接口 SingleThreadModel 来避免多 Thread 之间的资源冲突问题 . 但是需要注意的是 , 如果 Servlet 仅仅只是读外部资源的话 , 我们通常不应该实现这个接口 . 如果实现这个接口 ,Servlet 在同一时刻只能服务一个用户请求 , 后至的用户请求必须在队列中等待

发表于 2015-12-21 09:15:55 回复(20)
更多回答
JEE5.0中的Servlet相关的就下面这几个包:
javax.servlet
javax.servlet.jsp
java.servlet.jsp.el
java.servlet.jsp.tagext
而最用得多的就是
javax.servlet
javax.servlet.http
这两个包了.
发表于 2017-03-23 21:50:54 回复(1)
JavaSE API里没有关于Servlet的包,JavaEE API里关于Servlet的全部包如图所示:

发表于 2017-09-27 16:41:02 回复(0)
答案:BD
javax是Sun公司提供的一个扩展包,算是对原 JAVA 包的一些优化处理,现在已经有很多都是基于JAVAX的程序开发而不是java包。
发表于 2015-11-04 17:24:25 回复(0)
javax.servlet 不是包含 javax.servlet.hrrppttp吗。。。为什么选这两个
发表于 2017-04-05 14:38:35 回复(3)
JEE5.0中的Servlet相关的就下面这几个包:
javax.servlet
javax.servlet.jsp
java.servlet.jsp.el
java.servlet.jsp.tagext
而最用得多的就是
javax.servlet
javax.servlet.http
这两个包了.
发表于 2019-06-02 10:25:09 回复(0)
javax是Sun公司提供的一个扩展包,算是对原 JAVA 包的一些优化处理,现在已经有很多都是基于JAVAX的程序开发而不是java包,就像 netbeans 里的图形处理都是使用jabax包
发表于 2015-06-23 16:07:08 回复(0)

javax.servlet

javax.servlet.http

发表于 2014-11-21 20:36:35 回复(0)
JEE5.0中的Servlet相关的就下面这几个包:
javax.servlet
javax.servlet.jsp
java.servlet.jsp.el
java.servlet.jsp.tagext
而最用得多的就是
javax.servlet
javax.servlet.http
这两个包了.
发表于 2021-10-17 23:26:05 回复(0)
<p>servlet在包javax.servlet.*下面</p>
发表于 2020-11-23 19:41:14 回复(0)
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; 

发表于 2018-07-24 19:29:28 回复(1)
不能从servlet开头吗?
发表于 2023-02-17 14:33:19 回复(0)
现在变成了Jakarta了

发表于 2022-10-02 13:13:04 回复(0)
居然是多选。
发表于 2022-09-08 13:58:56 回复(0)
完美的错过了所有正确答案
发表于 2022-08-24 21:30:47 回复(0)
javax.servlet, 好吧,原来servlet包下居然是kavax开头的。 个人觉得应该屏蔽掉
编辑于 2021-12-09 08:16:14 回复(0)
JEE5.0中的Servlet相关的就下面这几个包: javax.servlet javax.servlet.jsp java.servlet.jsp.el java.servlet.jsp.tagext 而最用得多的就是 javax.servlet javax.servlet.http 这两个包了.
发表于 2019-10-13 06:57:18 回复(0)
javax.servlet.*
发表于 2019-05-08 10:14:47 回复(0)
Java Servlet开发工具提供了多个软件包,在编写Servlet时候需要用到这些包,其中包括两个用于所有Servlet的基本软件包: javax. Servlet和javax. Servlet. http
发表于 2018-09-25 13:59:41 回复(0)
javax.servlet和javax.servlet.http
选择B,D
发表于 2018-04-26 21:22:15 回复(0)