JavaWeb(JavaEE)常见面试题——持续更新中

引言:本人目前是大四的科班软件工程专业学生,正在面临实习找工作,自己总结了一些常见的JavaWeb(JavaEE)里基础的面试题,同时分享给大家。

第一部分——JavaWeb基础

1. 请简述HTML、CSS、DOM、JavaScript分别代表的含义?
答:
HTML: HTML是“超文本标记语言”,主要是通过HTML标记对网页中的文本、图片、声音等内容进行描述。
CSS: CSS是“层叠样式表”,用于增强控制网页样式并允许将样式信息与网页内容分离的一种标记性语言,主要对HTML里的文字内容、图片外型及其版面布局进行设置。
DOM: DOM是“文档对象模型”,是W3C组织推荐的处理可扩展标志语言的标准编程接口,它可以独立于平台和语言的方式访问和修改一个文档的内容和结构。
JavaScript: JavaScript是Web中一种强大的脚本语言,不需要编译,常用来为网页添加各种各样的动态功能,直接嵌入在HTML页面中,将静态页面变成可以与用户进行交互的动态页面。

2. 请简述HTTP1.0协议和HTTP1.1协议的区别?
答:
HTTP1.0协议: 客户端与服务器的交互过程中,先建立TCP连接,然后客户端发送请求,服务器回送响应信息,最后关闭连接,也就也是说HTTP1.0协议中,客户端与服务器建立连接后,每次只能处理一个HTTP请求。
HTTP1.1协议: 克服了HTTP1.0协议的缺陷,支持持久连接,在一个TCP连接中可以传送多个HTTP请求与响应,减少了建立连接到关闭连接的时间。

3. 简述POST请求和GET请求有什么不同?
答:
GET请求: 当用户在浏览器地址栏中输入某个URL地址或者点击网页上的超链接时,浏览器将使用GET方式发送请求。GET方式传输数据有限,不能超过2KB。
POST请求: form表单里的method属性设置为”POST“时,用户提交表单,则浏览器将使用POST方式发送请求给服务器。POST方式传输数据无限制,而且POST比GET请求更安全。

4. 简述Servlet的概念(作用)。
答:Servlet是使用Java编写的运行在服务器端的程序。狭义的Servlet是指Java语言实现的一个接口,广义上的Servlet是指实现了这个Servlet接口的类。Servlet主要用于处理客户端传来的HTTP请求,并返回一个响应。

5. 简述一下Servlet的生命周期。
答:所谓 Servlet 生命周期是指,Servlet 对象的创建、Servlet 对象的初始化、Servlet 对象服务的执行,及最终 Servlet 对象被销毁的整个过程。
简述过程:
客户端向Servlet容器发送请求,Servlet容器j解析请求并创建Servlet实例,然后Servlet对象调用init()方法,接着调用service()方法进行服务,Servlet对象输出响应消息返回给客户端,最后,在执行destory()方法进行销毁。

6. 请简述HttpServletRequest对象生命周期。
答:HttpServletRequest对象代表Servlet接收到的浏览器的HTTP请求,HTTP请求中的所有内容都被封装到了HttpServletRequest对象中。
简述过程:
当浏览器将请求发送给服务器后,服务器会根据HTTP请求的内容进行解析,同时创建HttpServletRequest对象,然后将解析出的数据封装到该请求对象中。也就是说,request请求对象是由服务器创建的。用户的每一次请求都对应一个request请求对象,不同的请求对象之间是没有任何关系的。当服务器向客户端发送响应结束后,request请求对象被服务器销毁。

7. 请简述HttpServletResponse对象的作用。
答:HttpServletResponse对象表示HTTP响应,用于向浏览器发送数据。

8. 请简述ServletContext对象的作用。
答:ServletContext,即 Servlet 上下文。是 Web 应用中所有 Servlet 在 Web 容器中的运行时环境。这个运行时环境随着 Web 应用的启动而创建,随着 Web 应用的关闭而销毁。一个 Web 应用就有一个ServletContext 对象,可以代表整个应用。当前应用中所有Servlet都可以共享和使用该对象。

9. 请简述请求转发与重定向的区别。
答:请求转发和重定向是Web开发中常用的两种跳转方式,它们的异同点如下:
(1)目的不同:
请求转发(forward) 是服务器内部跳转,将请求转发给同一服务器内的其他资源进行处理,客户端并不感知跳转的过程,URL地址不会改变。
重定向(redirect) 是服务器向客户端发送一个重定向响应,要求客户端重新发送请求到新的URL地址。
(2)执行时机不同:
请求转发是在服务器处理请求的过程中进行的,一般在服务器端代码中使用转发功能来实现。
重定向是在服务器处理完请求后,通过设置响应头部的Location字段,通知客户端进行跳转。
(3)数据共享方式不同:
请求转发可以在跳转过程中共享请求数据,因为是在同一服务器内进行跳转,所以可以将请求数据共享给目标资源。
重定向无法在跳转过程中直接共享数据,因为是通过两次请求来实现的,第二次请求无法获取到第一次请求的数据,需要通过其他方式进行数据传递,如URL参数、Session等。
(4)对用户可见性不同:
请求转发对用户是透明的,用户并不知道服务器进行了转发操作。
重定向对用户是可见的,浏览器会显示新的URL地址。

10. 请写出禁止浏览器缓存页面的核心代码。
答:两种实现方式:后端实现方式和前端实现方式。实际开发中,多以后端实现为主。

/**
 1. @author 学徒钝子生
 2. @date : 2023/9/14
 3. 后端实现
*/
response.setDateHeader("Expires",0);
response.setHeader("Cache-Control","no-cache"); 
response.setHeader("Pragma","no-cache");
<!-- @author 学徒钝子生 -->
<!-- @date : 2023/9/14 -->
<!-- 前端实现 -->
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学徒钝子生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值