当前位置: 首页 > news >正文

怎么做网站备份做外贸的网站开店流程

怎么做网站备份,做外贸的网站开店流程,为什么做网站的会弄友情链接,水平优化servlet面试常问问题Servlet是Java EE的一个非常重要的主题#xff0c;所有Web应用程序框架#xff08;例如Spring和Struts#xff09;都建立在它之上。 这使servlet成为Java访谈中的热门话题。 在这里#xff0c;我提供了50个servlet面试问题的列表#xff0c;并提供了答… servlet面试常问问题 Servlet是Java EE的一个非常重要的主题所有Web应用程序框架例如Spring和Struts都建立在它之上。 这使servlet成为Java访谈中的热门话题。 在这里我提供了50个servlet面试问题的列表并提供了答案以帮助您解决与Java中servlet和Web应用程序有关的大多数面试问题。 Web服务器和应用程序服务器之间有什么区别 哪种HTTP方法不是幂等的 GET和POST方法有什么区别 什么是MIME类型 什么是Web应用程序它的目录结构是什么 什么是servlet Servlet比CGI有什么优势 Servlet容器执行哪些常见任务 什么是ServletConfig对象 什么是ServletContext对象 ServletConfig和ServletContext有什么区别 什么是请求分派器 PrintWriter和ServletOutputStream有什么区别 我们可以同时在Servlet中获得PrintWriter和ServletOutputStream吗 我们如何在servlet中创建死锁情况 servlet包装器类有什么用 什么是SingleThreadModel接口 我们需要重写service方法吗 创建servlet构造函数是个好主意吗 GenericServlet和HttpServlet有什么区别 servlet间的通信是什么 Servlet线程安全吗 如何在servlet中实现线程安全 什么是servlet属性及其范围 我们如何从另一个servlet调用一个servlet 我们如何在不同的应用程序中调用另一个servlet ServletResponse sendRedirect和RequestDispatcher forward方法之间有什么区别 为什么HttpServlet类被声明为抽象的 Servlet生命周期的哪些阶段 Servlet的生命周期方法是什么 为什么我们应该只覆盖no-agrs init方法。 什么是网址编码 Servlet中的会话管理有哪些不同的方法 什么是URL重写 Cookies如何在Servlet中工作 当会话无效或超时时如何在会话中通知对象 encodeRedirectUrl和encodeURL有什么区别 为什么我们有servlet过滤器 确保仅当用户具有有效会话时才可访问所有servlet的有效方法是什么 为什么我们有servlet侦听器 如何处理应用程序使用另一个Servlet引发的异常 什么是部署描述符 如何确保在应用程序启动时加载了servlet 如何获取服务器中servlet的实际路径 如何在servlet中获取服务器信息 编写一个Servlet以在服务器上上传文件。 我们如何进行servlet中的数据库连接和log4j集成 如何在servlet中获取客户端的IP地址 Servlet 3的重要功能是什么 servlet身份验证有哪些不同的方法 我们如何为我们的Web应用程序实现传输层安全性 Web服务器和应用程序服务器之间有什么区别 Web服务器的职责是处理来自客户端浏览器的HTTP请求并以HTML响应进行响应。 Web服务器可以理解HTTP语言并可以在HTTP协议上运行。 Apache Web Server是一种Web服务器然后我们有可以执行servlet和JSP称为servlet容器的特定容器例如Tomcat。 Application Server提供了其他功能例如Enterprise JavaBeans支持JMS Messaging支持事务管理等。因此可以说Application Server是一个Web服务器具有其他功能来帮助开发人员使用企业应用程序。 哪种HTTP方法不是幂等的 如果HTTP方法每次返回相同的结果则称它是幂等的。 HTTP方法GETPUTDELETEHEAD和OPTIONS是幂等方法我们应该实现应用程序以确保这些方法始终返回相同的结果。 HTTP方法POST是非幂等方法在实现随每个请求更改的内容时我们应该使用post方法。 例如要访问HTML页面或图像我们应该使用GET因为它将始终返回相同的对象但是如果我们必须将客户信息保存到数据库中则应该使用POST方法。 幂等方法也称为安全方法我们不在乎客户端对安全方法的重复请求。 GET和POST方法有什么区别 GET是一种安全方法幂等其中POST是非幂等方法。 我们可以使用GET方法发送有限的数据并将其发送到标头请求URL中而我们可以使用POST发送大量数据因为它是正文的一部分。 GET方法是不安全的因为数据在URL中公开我们可以轻松为其添加书签并再次发送类似的请求而POST是安全的因为数据是在请求正文中发送的因此我们无法对其添加书签。 GET是默认的HTTP方法而我们需要将方法指定为POST才能使用POST方法发送请求。 页面中的超链接使用GET方法。 什么是MIME类型 “ Content-Type”响应头被称为MIME类型。 服务器将MIME类型发送给客户端以使客户端知道其发送的数据类型。 它可以帮助客户端为用户呈现数据。 一些最常用的mime类型是text / htmltext / xmlapplication / xml等。 我们可以使用ServletContext getMimeType方法来获取文件的正确MIME类型并使用它来设置响应内容类型。 在通过servlet从服务器下载文件时非常有用。 什么是Web应用程序它的目录结构是什么 Web应用程序是在服务器上运行的模块用于向客户端浏览器提供静态和动态内容。 Apache Web服务器支持PHP我们可以使用PHP创建Web应用程序。 Java通过可在Servlet容器中运行并向客户端浏览器提供动态内容的Servlet和JSP提供Web应用程序支持。 Java Web应用程序打包为Web存档WAR并且具有如下图所示的已定义结构。 在Java Web Application上了解有关Web应用程序的更多信息。 什么是servlet Java Servlet是服务器端技术通过提供对动态响应和数据持久性的支持来扩展Web服务器的功能。 javax.servlet和javax.servlet.http包提供用于编写​​我们自己的servlet的接口和类。 所有servlet必须实现javax.servlet.Servlet接口该接口定义了servlet生命周期方法。 在实现通用服务时我们可以扩展Java Servlet API随附的GenericServlet类。 HttpServlet类提供用于处理特定于HTTP的服务的方法例如doGet和doPost。 大多数时候使用HTTP协议访问Web应用程序这就是为什么我们主要扩展HttpServlet类的原因。 Servlet API层次结构如下图所示。 在Servlet教程中内容。 Servlet比CGI有什么优势 引入Servlet技术是为了克服CGI技术的缺点。 Servlet在处理时间内存利用率方面提供了比CGI更好的性能因为Servlet利用了多线程的优势并且为每个请求创建了一个新线程这比为CGI为每个请求加载创建新对象要快。 用Servlet开发的Web应用程序与Servlet和平台和系统无关可以在任何标准的Web容器上运行例如TomcatJBossGlassfish服务器以及在WindowsLinuxUnixSolarisMac等操作系统上。 Servlet的功能强大因为容器负责Servlet的生命周期因此我们无需担心内存泄漏安全性垃圾回收等问题。 Servlet是可维护的学习曲线很小因为我们需要注意的是应用程序的业务逻辑。 Servlet容器执行哪些常见任务 Servlet容器也称为Web容器例如Tomcat。 Servlet容器的一些重要任务是 通讯支持 Servlet容器提供了Web客户端浏览器与Servlet和JSP之间的简便通讯方式。 由于容器的原因我们不需要构建服务器套接字来侦听来自Web客户端的任何请求解析请求并生成响应。 所有这些重要而复杂的任务都是由容器完成的我们需要关注的只是应用程序的业务逻辑。 生命周期和资源管理 Servlet容器负责管理 Servlet的生命周期。 从将servlet加载到内存中初始化servlet调用servlet方法并销毁它们。 容器还提供实用程序如JNDI来进行资源池和管理。 多线程支持 容器为对Servlet的每个请求创建新线程并为它们提供请求和响应对象以进行处理。 因此不必为每个请求初始化servlet这样可以节省时间和内存。 JSP支持 JSP看起来不像普通的Java类但是应用程序中的每个JSP都由容器编译并转换为Servlet然后容器像其他Servlet一样管理它们。 杂项任务 Servlet容器管理资源池执行内存优化执行垃圾收集器提供安全配置支持多个应用程序热部署以及其他一些后台任务这些任务使开发人员的工作变得更轻松。 什么是ServletConfig对象 javax.servlet.ServletConfig用于将配置信息传递给Servlet。 每个servlet都有自己的ServletConfig对象并且servlet容器负责实例化此对象。 我们可以在web.xml文件中或通过使用WebInitParam批注提供servlet初始化参数。 我们可以使用getServletConfig方法来获取Servlet的ServletConfig对象。 什么是ServletContext对象 javax.servlet.ServletContext接口提供对servlet的Web应用程序参数的访问。 ServletContext是唯一的对象可用于Web应用程序中的所有Servlet。 当我们希望某些初始化参数可用于Web应用程序中的多个或所有servlet时我们可以使用ServletContext对象并使用context-param元素在web.xml中定义参数。 我们可以通过ServletConfig的getServletContext方法获取ServletContext对象。 Servlet容器还可以提供一组Servlet唯一的上下文对象并且该上下文对象与主机的URL路径名称空间的特定部分相关联。 ServletSpec 3中增强了ServletContext以引入一些方法通过这些方法我们可以以编程方式向应用程序添加侦听器过滤器和Servlet。 它还提供了一些实用的方法例如getMimeType getResourceAsStream等。 ServletConfig和ServletContext有什么区别 ServletConfig和ServletContext之间的一些区别是 ServletConfig是每个Servlet的唯一对象而ServletContext是完整应用程序的唯一对象。 ServletConfig用于向Servlet提供初始化参数而ServletContext用于提供所有其他Servlet可以使用的应用程序级初始化参数。 我们不能在ServletConfig对象中设置属性而可以在ServletContext中设置其他servlet可以在其​​实现中使用的属性。 什么是请求分派器 RequestDispatcher接口用于将请求转发到另一个资源该资源可以是HTMLJSP或同一应用程序中的另一个servlet。 我们还可以使用它来将另一个资源的内容包括到响应中。 此接口用于同一上下文中的servlet间通信。 此接口中定义了两种方法 void forwardServletRequest请求ServletResponse响应–将请求从Servlet转发到服务器上的另一个资源ServletJSP文件或HTML文件。 void includeServletRequest requestServletResponse response–在响应中包含资源的内容ServletJSP页面HTML文件。 我们可以使用ServletContext的getRequestDispatcherString path方法在Servlet中获取RequestDispatcher。 该路径必须以/开头并被解释为相对于当前上下文根。 PrintWriter和ServletOutputStream有什么区别 PrintWriter是字符流类而ServletOutputStream是字节流类。 我们可以使用PrintWriter将基于字符的信息例如字符数组和String写入响应而我们可以使用ServletOutputStream将字节数组数据写入响应。 我们可以使用ServletResponse getWriter获取PrintWriter实例而我们可以使用ServletResponse getOutputStream方法获取ServletOutputStream对象引用。 您可以在Java IO教程中阅读有关Java的更多信息。 我们可以同时在Servlet中获得PrintWriter和ServletOutputStream吗 如果我们同时调用两个方法则无法在单个Servlet方法中获得PrintWriter和ServletOutputStream的实例。 响应时为getWriter和getOutputStream 我们将在运行时通过消息获取java.lang.IllegalStateException 因为已经为此响应调用了其他方法。 我们如何在servlet中创建死锁情况 我们可以通过循环调用方法来在Servlet中创建死锁只需从doGet方法和doGet方法中的doPost方法调用doPost方法即可在Servlet中创建死锁情况。 在Java Deadlock Example中阅读有关多线程中死锁的更多信息。 servlet包装器类有什么用 Servlet HTTP API提供了两个包装器类– HttpServletRequestWrapper和HttpServletResponseWrapper 。 提供这些包装器类可帮助开发人员自定义实现Servlet请求和响应类型。 我们可以扩展这些类并仅覆盖为自定义请求和响应对象需要实现的特定方法。 在普通的servlet编程中不使用这些类。 什么是SingleThreadModel接口 提供SingleThreadModel接口是为了确保线程安全它确保在servlet的service方法中不会同时执行两个线程。 但是SingleThreadModel不能解决所有线程安全问题。 例如即使使用SingleThreadModel servlet会话属性和静态变量仍然可以同时被多个线程上的多个请求访问。 此外它还充分利用了Servlet的多线程支持的所有优点这就是Servlet 2.4中不推荐使用此接口的原因。 我们需要重写service方法吗 当Servlet容器接收到客户端请求时它会调用service方法该方法又会基于请求的HTTP方法来调用doGet和doPost方法。 我看不到要覆盖service方法的任何用例。 service方法的全部目的是转发请求到相应的HTTP方法实现。 如果必须对请求进行一些预处理则可以始终使用servlet过滤器和侦听器。 创建servlet构造函数是个好主意吗 我们可以为servlet定义一个构造函数但是我认为它没有任何用处因为除非容器初始化了servlet否则我们将无法访问ServletConfig对象。 理想情况下如果我们必须为Servlet初始化任何资源则应该重写init方法在此我们可以使用ServletConfig对象访问servlet的初始化参数。 GenericServlet和HttpServlet有什么区别 GenericServlet是Servlet接口的协议独立实现而HttpServlet是HTTP协议特定的实现。 大多数时候我们使用servlet来创建Web应用程序这就是我们扩展HttpServlet类的原因。 HttpServlet类扩展了GenericServlet还提供了一些其他特定于HTTP协议的方法。 servlet间的通信是什么 当我们想从servlet服务方法中调用另一个servlet时我们使用servlet间通信机制。 我们可以使用RequestDispatcher forward和include方法调用另一个servlet并在请求中提供其他属性以供其他servlet使用。 如何在servlet中实现线程安全 HttpServlet的init方法和destroy方法在servlet生命周期中仅被调用一次因此我们不必担心它们的同步。 但是在每个客户端请求中都会调用诸如doGet或doPost之类的服务方法并且由于servlet使用多线程因此我们应该在这些方法中提供线程安全性。 如果服务方法中有任何局部变量我们不必担心它们的线程安全性因为它们特定于每个线程但是如果我们拥有共享资源则在使用共享时我们可以使用同步来实现Servlet中的线程安全性。资源。 线程安全性机制类似于独立Java应用程序中的线程安全性请在Thread Safety in Java中阅读有关它们的更多信息。 什么是servlet属性及其范围 Servlet属性用于Servlet间的通信我们可以在Web应用程序中设置获取和删除属性。 servlet属性有三个范围-请求范围会话范围和应用程序范围。 ServletRequestHttpSession和ServletContext接口分别提供了从请求会话和应用程序范围获取/设置/删除属性的方法。 Servlet属性与web.xml中为ServletConfig或ServletContext定义的初始化参数不同。 我们如何从另一个servlet调用一个servlet 我们可以使用RequestDispatcher forward方法将请求的处理转发到另一个servlet。 如果要在响应中包含另一个servlet输出则可以使用RequestDispatcher include方法。 我们如何在不同的应用程序中调用另一个servlet 我们不能使用RequestDispatcher从另一个应用程序调用servlet因为它是特定于该应用程序的。 如果必须将请求转发到另一个应用程序中的资源则可以使用ServletResponse sendRedirect方法并提供另一个Servlet的完整URL。 这会将响应发送给客户端响应代码为302以将请求转发到另一个URL。 如果还必须发送一些数据则可以使用cookie它将作为servlet响应的一部分并将请求发送到另一个servlet。 ServletResponse sendRedirect和RequestDispatcher forward方法之间有什么区别 RequestDispatcher forward用于将同一请求转发到另一个资源而ServletResponse sendRedirect是一个两步过程。 在sendRedirect中Web应用程序使用状态码302重定向和URL将响应返回给客户端以发送请求。 发送的请求是一个全新的请求。 forward由容器内部处理而sednRedirect由浏览器处理。 访问同一应用程序中的资源时我们应该使用forward因为它比需要额外网络调用的sendRedirect方法要快。 在forward中浏览器不了解实际的处理资源并且地址栏中的URL保持不变而在sendRedirect中地址栏中的URL更改为转发的资源。 forward不能用于在另一个上下文中调用servlet在这种情况下我们只能使用sendRedirect。 为什么HttpServlet类被声明为抽象的 HttpServlet类提供Servlet的HTTP协议实现但由于在诸如getGet和doPost之类的服务方法中没有实现逻辑因此它仍然是抽象的我们应该重写至少一个服务方法。 这就是为什么拥有HttpServlet实例并被声明为抽象类毫无意义的原因。 阅读有关抽象类的更多信息。 Servlet生命周期的哪些阶段 我们知道Servlet容器管理Servlet的生命周期Servlet生命周期分为四个阶段。 Servlet类加载–当容器收到对Servlet的请求时它首先将类加载到内存中并调用其默认的no-args构造函数。 Servlet类初始化–加载Servlet类后容器将为Servlet初始化ServletContext对象然后通过传递servlet配置对象来调用它的init方法。 这是servlet类从普通类转换为servlet的地方。 请求处理–初始化Servlet之后就可以处理客户端请求了。 对于每个客户端请求servlet容器都会生成一个新线程并通过传递请求和响应对象引用来调用service方法。 从服务中删除–当容器停止或我们停止应用程序时servlet容器通过调用它的destroy方法来破坏该servlet类。 Servlet的生命周期方法是什么 Servlet生命周期包含三种方法 public void initServletConfig config–容器使用此方法初始化servlet此方法在servlet的生命周期中仅被调用一次。 公共无效服务ServletRequest请求ServletResponse响应–每个请求都调用一次此方法除非执行init方法否则容器无法调用service方法。 public void destroy–当从内存中卸载servlet时将调用此方法一次。 为什么我们应该只覆盖no-agrs init方法。 如果要在我们的servlet处理客户端请求之前必须初始化一些资源则应重写init方法。 如果我们重写initServletConfig config方法则第一个语句应为superconfig以确保首先调用超类initServletConfig config方法。 这就是为什么GenericServlet提供了另一个帮助程序init方法该方法没有在initServletConfig config方法末尾调用的参数。 我们应该始终利用此方法来覆盖init方法以避免出现任何问题因为我们可能会忘记在使用ServletConfig参数的覆盖init方法中添加super调用。 什么是网址编码 URL编码是将数据转换为CGI格式的过程以便它可以毫无问题地跨网络传输。 URL编码去除空格并用转义符替换特殊字符。 我们可以使用java.net.URLEncoder.encodeString strString unicode对String进行编码。 URL解码是编码的反向过程我们可以使用java.net.URLDecoder.decodeString strString unicode对编码的字符串进行解码。 例如“ Pankaj的数据”被编码为“ Pankaj27s Data”。 Servlet中的会话管理有哪些不同的方法 会话是客户端和服务器之间的转换状态它可以包含客户端和服务器之间的多个请求和响应。 由于HTTP和Web Server都是无状态的因此维护会话的唯一方法是在每次请求和响应中在服务器和客户端之间传递有关会话的某些唯一信息会话ID时。 Servlet中会话管理的一些常见方法是 用户认证 HTML隐藏字段 饼干 URL重写 会话管理API 在Servlet会话管理教程中详细了解有关这些会话管理方法的更多信息。 什么是URL重写 我们可以在servlet中使用HttpSession进行会话管理但是它可以与Cookies一起使用并且可以在客户端浏览器中禁用cookie。 Servlet API提供了对URL重写的支持在这种情况下我们可以使用它来管理会话。 从编码的角度来看最好的部分是它非常易于使用并且涉及一个步骤-编码URL。 Servlet URL编码的另一个好处是它是一种后备方法只有在禁用浏览器cookie的情况下它才能启动。 我们可以使用HttpServletResponse encodeURL方法对URL进行编码如果必须将请求重定向到另一个资源并且想要提供会话信息则可以使用encodeRedirectURL方法。 在Servlet URL Rewriting上内容。 Cookies如何在Servlet中工作 Cookie在Web客户端与服务器之间的通信中被大量使用它不是Java特有的。 Cookies是服务器发送到客户端的文本数据并保存在客户端本地计算机上。 Servlet API通过实现Serializable和Cloneable接口的javax.servlet.http.Cookie类提供cookie支持。 提供了HttpServletRequest getCookies方法来从请求中获取Cookie数组因为没有必要向请求中添加Cookie所以没有方法可以设置或向请求中添加Cookie。 类似地提供了HttpServletResponse addCookieCookie c方法来将cookie附加到响应头中没有用于cookie的getter方法。 在Servlet中的Cookies中了解更多信息。 当会话无效或超时时如何在会话中通知对象 如果必须确保在销毁会话时通知对象则该对象应实现javax.servlet.http.HttpSessionBindingListener接口。 该接口定义了两个回调方法-valueBound和valueUnbound当将对象作为属性添加到会话中以及将会话销毁时我们可以定义它们以实现处理逻辑。 建议阅读Servlet Listener 。 encodeRedirectUrl和encodeURL有什么区别 HttpServletResponse提供了在HTML超链接中对URL进行编码的方法以便转义特殊字符和空格并将会话ID附加到URL。 它的行为类似于URLEncoder编码方法但具有额外的过程以在URL末尾附加jsessionid参数。 但是HttpServletResponse encodeRedirectUrl方法专门用于对响应中的重定向URL进行编码。 因此当我们提供URL重写支持时对于HTML响应中的超链接我们应该使用encodeURL方法而对于重定向URL我们应该使用encodeRedirectUrl方法。 为什么我们有servlet过滤器 Servlet过滤器是可插入的Java组件我们可以使用它们来拦截和处理请求然后再将请求发送到servlet并在servlet代码完成之后以及容器将响应发送回客户端之前进行响应。 我们可以使用过滤器执行的一些常见任务是 记录请求参数以记录文件。 对资源请求的身份验证和授权。 在将请求正文或标头发送到servlet之前进行格式化。 压缩发送给客户端的响应数据。 通过添加一些cookie标头信息等来更改响应。 在Servlet Filter中阅读有关过滤器的更多信息。 确保仅当用户具有有效会话时才可访问所有servlet的有效方法是什么 我们知道servlet过滤器可用于拦截servlet容器与servlet之间的请求我们可以利用它来创建身份验证过滤器并检查请求是否包含有效会话。 在Servlet筛选器示例中查看Authentication Filter的示例。 为什么我们有servlet侦听器 我们知道使用ServletContext我们可以创建具有所有其他Servlet都可以访问的应用程序范围的属性但是我们只能在部署描述符web.xml中将ServletContext初始化参数初始化为String。 如果我们的应用程序是面向数据库的并且我们想在ServletContext中为数据库连接设置一个属性该怎么办 如果您的应用程序只有一个入口点用户登录那么您可以在第一个servlet请求中进行操作但是如果我们有多个入口点那么在任何地方都进行操作将导致大量代码冗余。 另外如果数据库关闭或配置不正确我们将直到第一个客户端请求到达服务器时才知道。 为了处理这些情况Servlet API提供了侦听器接口我们可以将其实现和配置为侦听事件并执行某些操作。 在Servlet Listener上了解有关不同类型的侦听器和示例的更多信息。 如何处理应用程序使用另一个Servlet引发的异常 如果您注意到doGet和doPost方法将抛出ServletException和IOException。 由于浏览器仅了解HTML因此当我们的应用程序引发异常时servlet容器将处理该异常并生成HTML响应。 其他错误代码例如404、403等也是如此。 Servlet API支持可在部署描述符中配置的自定义Exception和Error Handler servlet这些servlet的全部目的是处理应用程序引发的Exception或Error并发送对用户有用HTML响应。 我们可以提供指向应用程序主页的链接或一些详细信息以使用户知道出了什么问题。 我们可以在web.xml中配置它们如下所示 error-pageerror-code404/error-codelocation/AppExceptionHandler/location /error-pageerror-pageexception-typejavax.servlet.ServletException/exception-typelocation/AppExceptionHandler/location /error-page 在Servlet异常处理中内容。 什么是部署描述符 部署描述符是Web应用程序的配置文件名称是web.xml它位于WEB-INF目录中。 Servlet容器使用此文件来配置Web应用程序ServletServlet配置参数上下文初始化参数过滤器侦听器欢迎页面和错误处理程序。 使用Servlet 3.0批注通过使用批注配置Servlet过滤器和侦听器我们可以从web.xml中消除很多混乱。 如何确保在应用程序启动时加载了servlet 通常servlet容器会在第一个客户端请求上加载servlet但是有时当servlet很重并且加载时间很长时我们可能希望在应用程序启动时加载它。 我们可以将load-on-startup元素与web.xml文件中的servlet配置一起使用或者使用WebServlet批注loadOnStartup变量来告诉容器在系统启动时加载servlet。 servletservlet-namefoo/servlet-nameservlet-classcom.foo.servlets.Foo/servlet-classload-on-startup5/load-on-startup /servlet 启动时加载的值应为int如果为0或负整数则servlet容器将根据客户端请求和要求加载servlet但如果为正数则容器将在应用程序启动时加载它。 如果有多个servlet其启动时加载值为1,2,3则将首先加载较低的整数值servlet。 如何获取服务器中servlet的实际路径 我们可以使用以下代码片段获取文件系统中servlet的实际路径。 getServletContext().getRealPath(request.getServletPath()) 如何在servlet中获取服务器信息 我们可以使用下面的代码片段通过servlet上下文对象获取servlet中的servlet信息。 getServletContext().getServerInfo() 编写一个Servlet以在服务器上上传文件。 Java Web应用程序中的文件上载和下载以及常见任务。 不幸的是Servlet API没有提供在服务器上上传文件的简便方法因此我们可以使用Apache FileUpload jar来简化我们的生活。 请阅读“ 文件上传Servlet”一文 其中提供了所有必要的详细信息以及示例程序以使用Servlet上传和下载文件。 我们如何进行servlet中的数据库连接和log4j集成 如果您在Web应用程序中经常使用数据库连接则最好在Servlet上下文侦听器中对其进行初始化并将其设置为其他Servlet使用的上下文属性。 在Web应用程序中集成Log4j也非常容易我们需要的是一个log4j配置XML或属性文件然后在servlet上下文侦听器中对其进行配置。 有关完整的示例请查看Servlet数据库和Log4j示例 。 如何在servlet中获取客户端的IP地址 我们可以使用request.getRemoteAddr()获取Servlet中的客户端IP地址。 Servlet 3的重要功能是什么 Servlet Specs 3.0 was a major release and some of the important features are: Servlet Annotations : Prior to Servlet 3, all the servlet mapping and its init parameters were used to defined in web.xml, this was not convenient and more error prone when number of servlets are huge in an application. Servlet 3 introduced use of java annotations to define a servlet, filter and listener servlets and init parameters. Some of the important Servlet API annotations are WebServlet, WebInitParam, WebFilter and WebListener. Read more about them at Servlet 3 annotations . Web Fragments : Prior to servlet specs 3.0, all the web application configurations are required to be present in the web.xml that makes it cluttered with lot of elements and chances of error increases. So servlet 3 specs introduced web fragments where we can have multiple modules in a single web application, all these modules should have web-fragment.xml file in META-INF directory. We can include all the elements of web.xml inside the web-fragment.xml too. This helps us in dividing our web application into separate modules that are included as JAR file in the web application lib directory. Adding Web Components dynamically : We can use ServletContext object to add servlets, filters and listeners programmatically. This helps us in building dynamic system where we are loading a component only if we need it. These methods are addServlet(), addFilter() and addListener() defined in the servlet context object. Asynchronous Processing : Asynchronous support was added to delegate the request processing to another thread rather than keeping the servlet thread busy. It can increase the throughput performance of the application. This is an advance topic and I recommend to read Async Servlet tutorial. What are different ways for servlet authentication? Servlet Container provides different ways of login based servlet authentication: HTTP Basic Authentication HTTP Digest Authentication HTTPS Authentication Form Based Login : A standard HTML form for authentication, advantage is that we can change the login page layout as our application requirements rather than using HTTP built-in login mechanisms. How can we achieve transport layer security for our web application? We can configure our servlet container to use SSL for message communication over the network. To configure SSL on Tomcat, we need a digital certificate that can be created using Java keytool for development environment. For production environment, you should get the digital certificate from SSL certificate providers, for example, Verisign or Entrust. Read more at Configure SSL on Tomcat article. Thats all for the servlet interview questions and answers. I will keep on adding more servlet based interview questions to the list in future, so dont forget to bookmark it for future reference. Reference: Servlet from our JCG partner Pankaj Kumar at the Developer Recipes blog. 翻译自: https://www.javacodegeeks.com/2013/08/50-servlet-interview-questions-and-answers.htmlservlet面试常问问题
http://wiki.neutronadmin.com/news/271746/

相关文章:

  • asp.net怎么生成网站建设教育协会网站
  • 今天建设银行网站无法登录应用公园是收费还是免费的
  • 网站主体证件哈尔滨建筑专业网站
  • 微信上的微网站在哪里公司网络营销的方案思路
  • ppt网站模板做网站好还是做安卓app好
  • 后缀为net的网站有哪些做网站的公司一年能赚多少钱
  • 无锡做网站价格我的家乡网站设计模板
  • 学校网站建设价格明细表360浏览网页入口
  • 成都企业网站开发深圳分销网站设计电话
  • 鄱阳网站建设多少钱qq浏览器在线
  • 北京中小企业网站建设公司综合购物网站建站
  • 泰安网站建设538sw离线网页制作工具
  • 外卖网站建设价钱百度平台营销收费标准
  • 网站搭建技术都有啥如何做正规电影网站
  • 装饰网站设计模板怎么免费搭建自己的网站
  • 网页游戏广告平台网站建设自然堂网站建设策划书
  • 泰州网站建设策划大侠wordpress
  • 网站后台内容不更新重庆最新新闻发布会
  • html个人网站设计wordpress更新不成功
  • 广州网站建设知名 乐云践新Wordpress自动化
  • 网站设置可以访问亚马逊网站建设性提议
  • cms网站怎么制作企业所得税的计算公式三种
  • 怎么做淘宝客优惠券网站沈阳网站建设 南塔
  • 通信建设资质管理信息系统网站如何提高网站在搜索引擎中的排名
  • 网站开发挣不挣钱上传视频网站源码
  • 最早做弹幕的网站海南省住房和城市建设厅网站
  • 松原权威发布seo软件优化
  • 网站开发做美工私人定制
  • 网站建好后查看网站架构
  • 做视频网站注意什么软件天津做网站优化价格