Java Web技术经验总结(十七)
时间:2022-06-05
本文章向大家介绍Java Web技术经验总结(十七),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
好久不见
- 使用httpOnly标识避免XSS攻击,参见:说说HttpOnly Cookie的作用。解决XSS攻击,有两种解决方法:1)服务端对提交上来的留言内容做过滤,把恶意代码过滤掉;2)让恶意javascript代码读取不到我们种的cookie。httpOnly的角色是第二种。
- lombok使用,参考:Lombok:让Java代码更优雅
//下面是类级别注解
@NoArgsConstructor //相当于定义1个无参构造函数
@Data //相当于定义了类里所有属性的get set eqauls hashCode toString
@RequiredArgsConstructor //一般和@NonNull注解配合使用,表示定义1个包含类里所有声明@NonNull注解的构造函数
@Accessors(fluent = true) //表示实体类可以用fluent风格去调用,例如:new Result().success(true).data(123); 这句话里success函数data 函数都是声明注解以后自动生成的,并且都返回当前类自身。
@FieldDefaults(level = AccessLevel.PRIVATE) //所有属性默认访问级别都是private ,省的挨个属性去写了,如果有10个属性,9个都是private ,1个是public ,可以单独覆盖.如果单独那个是包级别访问权限的,可以通过加上@PackagePrivate注解去覆盖
@UtilityClass //声明这个注解,会自动为该类生成1个私有无参构造函数,构造函数内部会直接抛异常,表示这个类是1个工具类,无法实例化
@Log4j2 //声明log4j2注解,会自动为该类创建1个 log属性,避免手动创建,lombok还支持slf4j,log4j1.x commons log ,jdk原生的log,都会有相应的注解支持 .
- Java Web安全编码,参见:Web 安全问题总结
- 安全参数:HttpOnly、Secure Cookie
- 防止页面被嵌入iframe放到其他页面,在Header中添加如下代码
/*
X-Frame-Options:
DENY prevent any site from framing the page.
SAMEORIGIN allows only sites from the same domain to frame the page.
*/
response.setHeader("X-Frame-Options","SAMEORIGIN");
- CSRF:跨站请求伪造,利用一次请求令牌,在服务端进行验证
- 会话迷恋:在登录成功后一定要重新生成新的Session Id
- 使用awk调换文件中某两列的位置
awk -F ',' '{print $3"," $2"," $1}' source_file.txt > source_file_revert.txt
- 如何控制一个外部调用的运行时间,自己做超时重试?
- 通过Future.get(delay, unit)方法;
- 通过Guava-retrying组件,参见:guava-retrying
- 分享一篇好文章:业务代码中的重试
- fastjson中提供了一个TypeReference类,用于处理反序列化时候的泛型定义。参考资料:TypeReference;例子代码见:TypeReferenceExample 7.使用Java8的并行流,需要注意线程安全问题,参考:https://my.oschina.net/7001/blog/1475500
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- AtCoder Beginner Contest 166 A ~~E
- AtCoder Beginner Contest 165 A ~~D
- 离散化思想详细讲解
- AtCoder Beginner Contest 164---D
- 问题 1511: [蓝桥杯][算法提高VIP]复数求和
- 计算机网络--概论
- 因式分解(计蒜网)
- 区间合并(计蒜网)
- AtCoder Beginner Contest 161 A~~F
- 试题 算法训练 猴子吃包子
- 蓝桥杯 试题 基础练习 字符串对比
- 蓝桥杯 试题 基础练习 矩阵乘法
- 蓝桥杯 试题 基础练习 矩形面积交
- 蓝桥杯 试题 基础练习 完美的代价(详细c++)
- 牛客小白月赛23 部分题解