Java面试小练(八)

1). 会话跟踪技术Cookie 与 Session 各自的原理是什么? 各自有什么优缺点?

Cookie 和 Session 是两种常见的会话跟踪技术,它们的原理和使用方法有所不同。

Cookie 是一种在客户端存储数据的技术,它通常用于存储一些小量的数据,如用户的登录状态、偏好设置等。Cookie 会在浏览器中存储一段时间,或者在用户关闭浏览器时被删除。Cookie 可以通过 JavaScript 代码访问和修改,因此可以用于实现一些客户端的功能,如存储用户的登录状态。

Session 是一种在服务器端存储数据的技术,它通常用于存储一些用户的会话信息,如用户的登录状态、购物车中的商品等。Session 会在服务器端存储一段时间,或者在用户注销时被删除。Session 可以通过服务器端的 API 访问和修改,因此可以用于实现一些服务器端的功能,如存储用户的会话信息。

Cookie 的优点是可以在客户端存储数据,因此可以实现一些客户端的功能,如存储用户的登录状态。缺点是 Cookie 存储量较小,只能存储一些小量的数据,而且需要在客户端进行存储和访问,因此不太安全。Session 的优点是可以在服务器端存储数据,因此可以实现一些服务器端的功能,如存储用户的会话信息。缺点是 Session 存储量较大,需要在服务器端进行存储和访问,因此安全性较低。

2). 过滤器 Filter 与 拦截器 Interceptor 之间的区别是什么 , 请详细描述 ?

过滤器 Filter 和 拦截器 Interceptor 都是 Spring MVC 中用于处理请求和响应的组件,它们的作用和使用方法有所不同。

过滤器 Filter 是 Spring MVC 中的一种特殊的过滤器,它可以在请求到达 Controller 之前或之后对请求进行处理。过滤器可以用于实现一些通用的功能,如权限验证、日志记录、压缩等。过滤器可以通过实现 Filter 接口或者使用注解方式进行配置。

拦截器 Interceptor 是 Spring MVC 中的一种特殊的拦截器,它可以在请求到达 Controller 之前或之后对请求进行处理。拦截器可以用于实现一些通用的功能,如权限验证、日志记录、压缩等。拦截器可以通过实现 HandlerInterceptor 接口或者使用注解方式进行配置。

过滤器 Filter 和 拦截器 Interceptor 的区别在于,过滤器是在 Servlet 容器中进行处理的,而拦截器是在 Spring MVC 中进行处理的。过滤器只能用于 Servlet 容器中,而拦截器只能用于 Spring MVC 中。过滤器只能对请求进行处理,而拦截器可以对请求和响应进行处理。

3). 拦截器的拦截路径中,/* 与 /** 的区别是什么? 那 /emps/* 与 /emps/** 的区别又是什么呢?

在 Spring MVC 中,拦截器的拦截路径可以使用 /* 和 /** 两种方式进行配置。

/* 表示拦截所有请求,包括 GET、POST、PUT、DELETE 等方法。

/** 表示拦截所有请求,包括 GET、POST、PUT、DELETE 等方法,并且可以匹配任意的路径和子路径。

例如,如果拦截路径为 /emps/*,则表示拦截以 /emps/ 开头的所有请求,如 /emps/list、/emps/add 等。

如果拦截路径为 /emps/**,则表示拦截以 /emps/ 开头的所有请求,包括子路径,如 /emps/list、/emps/add、/emps/user/list 等。

因此,/* 与 /** 的区别在于,/* 可以匹配任意的路径,而 /** 可以匹配任意的路径和子路径。在实际开发中,我们通常使用 /** 方式进行拦截,以便拦截所有的请求。

posted @ 2023-12-17 07:58  奕帆卷卷  阅读(26)  评论(0)    收藏  举报