「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方法之间有什么区别?GetPost可以发送的数据量有限 , 因为数据是在标头中发送的 。 因为数据是在体内发送的 , 所以可以发送大量数据 。 不安全 , 因为数据显示在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被销毁
- Cookies是服务器发送到客户端的文本数据 , 并保存在客户端本地计算机上 。
- Servlet API通过实现Serializable和Cloneable接口的javax.servlet.http.Cookie类提供cookie支持 。
- 提供HttpServletRequest getCookies()方法可从请求中获取Cookie数组 , 因为没有必要在请求中添加Cookie , 所以没有方法可以设置或向请求添加Cookie 。
- 类似地 , 提供了HttpServletResponse addCookie(Cookie c)方法来在响应头中附加cookie , 没有用于cookie的getter方法 。
ServletConfigServletContextServlet配置对象代表单个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)时 。
推荐阅读
- 计算机专业大一下学期,该选择学习Java还是Python
- 未来想进入AI领域,该学习Python还是Java大数据开发
- 学习大数据是否需要学习JavaEE
- 从事Java开发时发现基础差,是否应该选择辞职自学一段时间
- 2021年Java和Python的应用趋势会有什么变化?
- 普通大学计算机专业的本科生,该选择主攻前端还是Java
- Java语言会不会随着容器的兴起而衰落
- 大一有考研计算机专业的打算,该学习C++还是Java
- 计算机专业的同学在掌握了Java之后,还可以学习哪门后端语言
- 不实习,如何增加Java项目经验