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架构师必看 ,更多内容点击查看!

最新文章

  1. IE 11 如何设置“用户代理字符串”
  2. css3中的前缀
  3. 原生JavaScript 全特效微博发布面板效果实现
  4. Android-Activity使用(2)
  5. "Asp.Net Web Api MediaTypeFormatter Error for x-www-formurlencoded data" 解决方法
  6. 浅谈JS事件冒泡
  7. C#.Net 如何动态加载与卸载程序集(.dll或者.exe)6-----在不卸载程序域的前提下替换程序集文件。
  8. tomcat中设置多项目共享jar;类包
  9. .net 基础服务开源战略规划备忘录
  10. socket bind详解
  11. img 标签 访问图片 返回403 forbidden问题
  12. javascript的函数、事件
  13. python基本数据类型之------列表
  14. Docker基础-使用Dockerfile创建镜像
  15. CentOS 7.2:Failed to start IPv4 firewall with iptables
  16. 1-4-bootloader架构学习
  17. 【题解】Luogu P1972 [SDOI2009]HH的项链
  18. MySQL学习(四)
  19. [trouble shoot]atol和atoll
  20. git chekout分支遇到问题:need merge

热门文章

  1. 搭建好lnmp后,使用浏览器访问,出现404 Not Found
  2. 转载过来的参考内容---常规36个WEB渗透测试漏洞描述及修复方法----很详细
  3. Zabbix value cache working in low memory mode
  4. Eclipse中java文件边的黄色数据库标志变成了蓝色小勾,导致文件修改后无法显示在Git staging窗口中,修改无法提交,怎么解决?
  5. Windows+Git+TortoiseGit+COPSSH安装图文教程
  6. 2018.12.30【NOIP提高组】模拟赛C组总结
  7. [LeetCode]152. 乘积最大子序列(DP)
  8. HBase表的数据导出和导入
  9. SpringBoot(20)---断言(Assert)
  10. Linux实战(19):Shell交互式read 用法