javaweb常见知识

Session 和 cookie 有什么区别:

Session 和 cookie 区别
Sessioncookie(4k)
维持用户状态,跨页面数据传递,用户身份验证,数据持久化
数据存储在服务器端,同时生成一个 sessionid 返回客户端并存放到cookie 中,占用服务器的性能,但安全性较高数据存储在客户浏览器端,减轻服务器的压力,但有被用户篡改风险因此安全性较低
适合用于管理用户会话,存储与用户身份认证、权限管理等相关的数据,如用户信息、购物车内容存储用户的身份验证信息,实现记住用户登录状态
对于一些敏感数据,如用户的登录凭证、支付信息等,建议使用Session存储在服务器端,减少被盗取的风险用户选择的语言、主题等偏好可以存储在Cookie中,便于在不同页面中使用
需要存储较大量数据时,如用户浏览历史、购买记录等,Session在服务器端的存储能力更有优势可以通过Cookie在用户不同设备之间同步一些基本的设置信息

请求转发和重定向的区别:

请求转发和重定向区别
转发重定向
一次请求,可以共享同一组 request response
多次请求,不能共享同一组 request 和 response
地址栏不会发生变化,是在服务端完成的
地址栏会发生变化,客户端跳转
需要数据共享,需要访问内部资源 (WEB-INF) ,使用转发;
如果需要跨域到外部资源,必须使用重定向

get 和 post 请求的区别:

get 和 post 区别
getpost
参数包含在 url
参数放到 request body
url 的长度限制,只能发送 ASCII 字符
相对于 get 更安全,发送的数据更大,发送更多的数据类型

preparedStatement 和 Statement 的区别:

1.对于SQL 语句处理:

        使用 Statement 时,SQL 语句是通过字符串拼接来构建的,sql语句较为复杂可能会导致sql拼接错误;而PreparedStatement 通过使用  ?  作为占位符来构建 SQL 语句,不易出错。

2.对于效率:

        Statement每次执行sql语句都会给数据库进行解析编译;而PreparedStatement第一次sql语句时被数据库解析编译,后续相同的sql语句会有预编译,速度会更快,提升性能。

3.对于安全

        拼接sql的方式,容易被恶意用户sql注入;而使用预编译也就是PreparedStatement的方式,占位符 ?可以避免sql注入,因为数据库会将sql语句和参数信息分开处理,数据库会自动处理这些参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值