标签搜索

java面试题03

ATAO
2022-07-23 / 0 评论 / 29 阅读 / 正在检测是否收录...

1.Servlet的生命周期是什么

创建时机:当Web容器启动时或者第一次访问时,容器会负责创建Servlet实例

创建后调用init()方法初始化。该方法在Servlet生命周期只调用一次。

每次Servlet接受到请求的时候,调用service()方法处理客户端请求。该方法检查HTTP请求类型,并调用doGet、doPost等具体方法。

在每次卸载web应用时,Servlet容器调用destroy()方法。该方法在Servlet生命周期只会被调用一次。

最后,Servlet由垃圾回收器回收

2.转发和重定向的区别

转发是在服务端完成的;重定向是在客户端完成的

转发是同一次请求;重定向是两次不同请求

重定向两次请求不共享数据,转发一次请求共享数据(在request级别使用信息共享)

转发地址栏没有变化,重定向地址栏有变化

重定向可以跳转任意URL,转发只能在当前web应用中的资源之间进行

3.Session和cookie的区别

保存的位置不同

cookie保存在浏览器端,session保存在服务器端,所以session安全性高于cookie。

session会给服务器带来压力,cookie不会给服务器带来压力。

使用方式不同

cookie可以设置保存时间,那么cookie就会保存到客户端硬盘中,没有过期就可以使用,过期就删除。如果没有设置cookie保存时间,默认关闭浏览器,删除cookie。

session,如果请求中存在sessionid,就会找到对应的session对象,如果不存在,服务器端就会创建新的session对象,并将sessionid返回给浏览器,将其存在cookie中。

存储内容不同

cookie只能存储字符串,session可以存储任意类型

存储大小

cookie只能存储4k内容,session没有限制

4.get请求方式和post请求方式的区别

get请求一般用来获取数据,post一般用来提交数据

get请求参数会放在url中,所以安全性较差,请求的数据长度有限制,post请求没有长度限制,请求是放在Body中

get请求可以被缓存,也会保存在浏览器的历史记录中,post请求不会被缓存

get请求常见是通过url地址请求,post常见是from表单提交

get产生一个tcp数据包,post产生两个tcp数据包

对参数的数据类型,get只接受ASCII字符,而post没有限制

5.ServletContextListener的作用

监听Web应用的部署和卸载

0

评论 (0)

取消