Servlet面试问题

Q1。什么是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层次结构如下图所示。

Q2。Get和Post方法之间有什么区别?

Get Post
可以发送的数据量有限,因为数据是在标头中发送的。 因为数据是在体内发送的,所以可以发送大量数据。
不安全,因为数据显示在URL栏中。 由于数据未显示在URL栏中而被保护。
可以收藏 无法收藏
幂等 非等幂的
比Post更有效和使用 它效率较低且使用过

Q3。什么是请求分派器?

RequestDispatcher接口用于将请求转发到另一个资源,该资源可以是HTML,JSP或同一应用程序中的另一个servlet。我们还可以使用它来将另一个资源的内容包括到响应中。

此接口中定义了两种方法:

1.void forward()

2.void include()

Q4。forward()方法和sendRedirect()方法之间有什么区别?

forward()方法 SendRedirect()方法
forward()将相同的请求发送到另一个资源。 sendRedirect()方法始终发送新请求,因为它使用浏览器的URL栏。
forward()方法在服务器端起作用。 sendRedirect()方法在客户端起作用。
forward()方法仅在服务器内起作用。 sendRedirect()方法可在服务器内部和外部使用。

Q5。Servlet的生命周期是什么?

Servlet的生命周期包括五个阶段:

  1. Servlet已加载
  2. Servlet实例化
  3. Servlet已初始化
  4. 服务请求
  5. Servlet被销毁

Q6。Cookies在Servlet中如何工作?

  • Cookies是服务器发送到客户端的文本数据,并保存在客户端本地计算机上。
  • Servlet API通过实现Serializable和Cloneable接口的javax.servlet.http.Cookie类提供cookie支持。
  • 提供HttpServletRequest getCookies()方法可从请求中获取Cookie数组,因为没有必要在请求中添加Cookie,所以没有方法可以设置或向请求添加Cookie。
  • 类似地,提供了HttpServletResponse addCookie(Cookie c)方法来在响应头中附加cookie,没有用于cookie的getter方法。

Q7。ServletContext与ServletConfig有什么区别?

Servlet JSP中的ServletContext和ServletConfig之间的区别在于以下表格格式。

ServletConfig ServletContext
Servlet配置对象代表单个Servlet 它代表了在特定JVM上运行且对所有servlet通用的整个Web应用程序
与特定servlet相关的类似本地参数 与整个应用程序关联的类似全局参数
这是在web.xml文件的servlet部分内定义的名称值对,因此它具有servlet范围 ServletContext具有广泛的应用范围,因此请在web.xml文件的servlet标记之外定义。
getServletConfig()方法用于获取配置对象 getServletContext()方法用于获取上下文对象。
例如用户的购物车是特定于特定用户的,因此在这里我们可以使用servlet config 为了获得文件或应用程序会话的MIME类型,使用servlet上下文对象存储相关信息。

Q8。Servlet中的会话管理有哪些不同的方法?

会话是客户端和服务器之间的会话状态,它可以包含客户端和服务器之间的多个请求和响应。由于HTTP和Web Server都是无状态的,因此维护会话的唯一方法是在每次请求和响应中在服务器和客户端之间传递有关会话的某些唯一信息(会话ID)时。

Servlet中会话管理的一些常见方式是:

  1. 用户认证
  2. HTML隐藏字段
  3. Cookies
  4. URL重写
  5. 会话管理API

欢迎关注 Java架构师社区公众号.

本文转载自Java架构师必看 ,更多内容点击查看!

【3】Java面试-Servlet的更多相关文章

  1. Java面试题精选(三) JSP/Servlet Java面试逻辑题

    --   JSP/Servlet  Java面试逻辑题   --     很显然,Servlet/JSP的WEB前端动态制作的重要性比HTML/CSS/JS的价值高很多,但我们都知道他们都是建立在HT ...

  2. 转:最近5年133个Java面试问题列表

    最近5年133个Java面试问题列表 Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来 ...

  3. java面试宝典(蓝桥学院)

    Java面试宝典(蓝桥学院) 回答技巧 这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的学生在笔试/面试时更好地赢得好的结果.由于这套试题涉及的范围 ...

  4. JAVA面试精选【Java基础第一部分】

    这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童 ...

  5. java面试和笔试大全 分类: 面试 2015-07-10 22:07 10人阅读 评论(0) 收藏

    2.String是最基本的数据类型吗? 基本数据类型包括byte.int.char.long.float.double.boolean和short. java.lang.String类是final类型 ...

  6. 近5年133个Java面试问题列表

    Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入. 在我 ...

  7. java 面试

        115个Java面试题和答案——终极列表(上) 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一 ...

  8. JAVA面试精选

    JAVA面试精选[Java基础第一部分] 这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对 ...

  9. Java面试指导

    Java面试指导   想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,面试者在面试之前到底需要准备哪些东西呢?本文陈列的这些内容既可以作为个人简历中的内容,也可以作为面试的时候跟面试官聊 ...

随机推荐

  1. WebStorm下ReactNative代码提示设置

    ReactNative 代码智能提醒  (Webstrom live template) https://github.com/virtoolswebplayer/ReactNative-LiveTe ...

  2. Roads in the North (树的直径)

    Building and maintaining roads among communities in the far North is an expensive business. With thi ...

  3. Selenium文件上传问题

     

  4. 如何手动合并ts视频文件

    手动合并ts视频文件一不需要编程,二不需要下载什么特殊软件,用一些最普通的软件即可. 工具: 1.Chrome浏览器 2.迅雷 3.CMD命令行工具 步骤 一.打开迅雷,先确保没有别的在下载. 二.播 ...

  5. Mybatis-解决属性名和字段名不一致的问题

    解决属性名和字段名不一致的问题 目录 解决属性名和字段名不一致的问题 1. 问题 2. ResultMap 1. 问题 在数据库中,密码字段为pwd,而在实体类中为password package c ...

  6. 【高并发】Redis如何助力高并发秒杀系统,看完这篇我彻底懂了!!

    写在前面 之前,我们在<[高并发]高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!>一文中,详细讲解了高并发秒杀系统的架构设计,其中,我们介绍了可以使用Redis存储秒杀商品的库存数量.很 ...

  7. oracle之三手工备份与恢复

    手工备份与恢复 2.1 手工备份和恢复的命令 1)备份和还原都使用OS命令,如linux中的cp 2)恢复用sqlplus命令:recover 2.2 备份前要对数据库进行检查: 1) 检查需要备份的 ...

  8. python中的算数运算符+、-、*、/、//、%、**

    例如a=5,b=2 +    两个对象相加                              a+b=7 -    两个对象相减                              a- ...

  9. 乔悟空-CTF-i春秋-Web-Upload

    2020.09.03 ai 做过的题,两天不看就忘了-- 做题 题目 题目地址 thinking-- 打开网站 告诉了文件在flag.php中,所以写个php,把flag.php文件读取出来就行 盗来 ...

  10. 没使用Spring Cloud的版本管理导致Eureka服务无法注册到Eureka服务注册中心

    创建了一个Eureka Server的服务注册集群(两个Eureka服务),都能相互注册,写了一个Eureka客户端服务无法注册到服务发现注册中心 注册中心1: 注册中心2: 服务正常: pom依赖文 ...