【3】Java面试-Servlet
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的生命周期包括五个阶段:
- Servlet已加载
- Servlet实例化
- Servlet已初始化
- 服务请求
- 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中会话管理的一些常见方式是:
- 用户认证
- HTML隐藏字段
- Cookies
- URL重写
- 会话管理API
【3】Java面试-Servlet的更多相关文章
- Java面试题精选(三) JSP/Servlet Java面试逻辑题
-- JSP/Servlet Java面试逻辑题 -- 很显然,Servlet/JSP的WEB前端动态制作的重要性比HTML/CSS/JS的价值高很多,但我们都知道他们都是建立在HT ...
- 转:最近5年133个Java面试问题列表
最近5年133个Java面试问题列表 Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来 ...
- java面试宝典(蓝桥学院)
Java面试宝典(蓝桥学院) 回答技巧 这套面试题主要目的是帮助那些还没有java软件开发实际工作经验,而正在努力寻找java软件开发工作的学生在笔试/面试时更好地赢得好的结果.由于这套试题涉及的范围 ...
- JAVA面试精选【Java基础第一部分】
这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对于那些正打算找工作JAVA软件开发工作的童 ...
- java面试和笔试大全 分类: 面试 2015-07-10 22:07 10人阅读 评论(0) 收藏
2.String是最基本的数据类型吗? 基本数据类型包括byte.int.char.long.float.double.boolean和short. java.lang.String类是final类型 ...
- 近5年133个Java面试问题列表
Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入. 在我 ...
- java 面试
115个Java面试题和答案——终极列表(上) 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一 ...
- JAVA面试精选
JAVA面试精选[Java基础第一部分] 这个系列面试题主要目的是帮助你拿轻松到offer,同时还能开个好价钱.只要能够搞明白这个系列的绝大多数题目,在面试过程中,你就能轻轻松松的把面试官给忽悠了.对 ...
- Java面试指导
Java面试指导 想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,面试者在面试之前到底需要准备哪些东西呢?本文陈列的这些内容既可以作为个人简历中的内容,也可以作为面试的时候跟面试官聊 ...
随机推荐
- HDU多校-1004-Vacation(思维)
Tom and Jerry are going on a vacation. They are now driving on a one-way road and several cars are i ...
- 开发者的福音,LR.NET模块化代码生成器
代码生成器,是快速开发平台的核心功能之一,是一种用来帮助缺乏经验或者时间的开发者快速生成规范代码的工具,可以在极大程度上提升开发者的工作效率, 能有效避免重复工作.但稍有经验的开发者都明白,代码生成器 ...
- 16_Python设计模式
1.设计模式概述 1.设计模式代表了一种最佳的实践,是被开发人员长期总结,用来解决某一类问题的思路方法,这些方法保证了代码的效率也易于理解 2.设计模式类型:根据23种设计模式可以分为三大类 ...
- Java中的String字符串及其常用方法
字符串(String) 文章目录 字符串(String) 直接定义字符串 常用方法 字符串长度 toLowerCase() & toUpperCase()方法 trim()方法去除空格 判空 ...
- 读取文本文件中的中文打印到Eclipse控制台为何显示问号
原因:未将文本文件存为utf-8编码格式而是ascii编码格式.
- linux vi编辑
编辑模式 使用vi进入文本后,按i开始编辑文本 退出编辑模式 按ESC键,然后: 退出vi :q! 不保存文件,强制退出vi命令 :w 保存文件,不退出vi命令 :wq 保存文件,退出vi命令 中断v ...
- 深入理解xLua热更新原理
热更新简介 热更新是指在不需要重新编译打包游戏的情况下,在线更新游戏中的一些非核心代码和资源,比如活动运营和打补丁.热更新分为资源热更新和代码热更新两种,代码热更新实际上也是把代码当成资源的一种热更新 ...
- Linux打包压缩解压工具
第1章 Linux 打包压缩解压工具一.压缩.解压工具 compress/uncompress gzip/gunzip bzip2/bunzip2/ bzcat xz/unxz/ xzcat ...
- Linux实战(5):Centos8安装python
Centos8正式版已经发布了,已经尝鲜的小伙伴们会发现与其他Linux发行版不同,CentOS 8默认不安装Python.接下来的操作指导大家如何安装python3. 转自链接 安装python3 ...
- 关于orm的个人测试——SqlSugar与FreeSql
前言 转眼已经过了金九,光阴真的是似箭啊,周六日常加班,忙里抽闲就想鼓捣个啥看看,刚好最近想着有没有必要换个orm,从当时原生到Dapper,又到现在的Sqlsugar,因为经常听到几个不错的orm, ...