仿牛客论坛学习笔记
文章平均质量分 74
AfterSum
有所追求
展开
-
7.4 Redis高级数据类型
Redis高级数据类型HyperLogLog采用一种基数算法,用于完成独立总数的统计。占据空间小,无论统计多少个数据,只占12K的内存空间不精确的统计算法,标准误差为 0.81% 。统计数据编写测试方法,测试20万个重复数据去重之后的个数;测试结果为95553 存在一点误差可以接受@Testpublic void TestHyperLogLog(){ String redisKey="Test:hll:001"; //循环100000次 for (int i原创 2022-03-13 09:14:13 · 211 阅读 · 1 评论 -
7.3 使用Security实现权限控制置顶、加精、删除
使用SpringSecurity实现权限控制,管理帖子的置顶、删除、加精原创 2022-03-12 17:18:58 · 2475 阅读 · 0 评论 -
7.2 使用Security进行权限控制和防止 CSRF
Securit进行安全控制和防止CSRF原创 2022-03-12 10:15:25 · 4601 阅读 · 0 评论 -
7.1 Spring Security入门和简单案例
Spring Security• 简介 Security是一个专注于为Java应用程序提供 **身份认证**和**授权**的框架,它的强大之处在于它可以 轻松扩展以满足自定义的需求。• 特征对身份的 认证 和 授权 提供全面的、可扩展的支持。防止各种攻击,如会话固定攻击、点击劫持、csrf攻击等。支持与Servlet API、Spring官网:https://spring.io/projects/spring-security中文学习网址:http://www.spring4all.c原创 2022-03-11 18:07:26 · 398 阅读 · 0 评论 -
6.1 Elasticsearch快速入门+中文检索安装+POSTMAN简单使用
Elasticsearch入门Elasticsearch简介一个分布式的、Restful风格的搜索引擎。支持对各种类型的数据的检索。搜索速度快,可以提供实时的搜索服务。便于水平扩展,每秒可以处理PB级海量数据。• Elasticsearch术语索引:相当于数据库中的数据库类型:一开始相当于数据库表格,6.0版本之后被弃用;文档:存储在Elasticsearch中的一个JSON格式的字符串。它就像在关系数据库中表的一行。字段:相当于关系数据库中表的列,每个字段都对应一个字段类型。集原创 2022-03-10 20:50:16 · 2035 阅读 · 0 评论 -
5.3 显示系统通知
文章目录显示系统通知编写Mapper实现查询通知的方法编写Mapper对应的xml实现sql语句编写MessageService实现Mapper的方法编写MessageController接受查询系统通知的请求修改页面开发通知详情编写MessageController接受查询通知详情的请求修改页面修改导航栏的消息数量,使用拦截器显示系统通知编写Mapper实现查询通知的方法每次页面显示最新的通知,并且显示每个主题所包含的通知数量和未读通知在MessageMapper增加查询某个主题下最新的通原创 2022-03-08 12:27:41 · 626 阅读 · 0 评论 -
5.2 使用Kafka 发送系统通知
发送系统通知封装事件 当事件被触发时,发送相关的数据set方法返回值设置为事件本身 方便实现连续调用event.set().setpublic class Event { private String topic; //事件的主题 private int userId; //发送人 private int entityType; //事件对象的类型 比如帖子的类型 private int entityId; //帖子的id p原创 2022-03-07 22:15:23 · 2140 阅读 · 0 评论 -
5.1 Kafka入门和Spring整合
使用Kafka来处理消息队列和Spring的整合原创 2022-03-07 12:24:04 · 1901 阅读 · 0 评论 -
4.4 使用Redis优化登录模块
使用Redis优化登录模块 把访问频率比较高,会影响效率的功能使用Redis进行优化原创 2022-03-06 21:43:08 · 1039 阅读 · 0 评论 -
4.3 关注、取消关注和关注、粉丝列表
使用Redis实现关注、取消关注等功能原创 2022-03-06 19:44:36 · 2187 阅读 · 0 评论 -
4.2 点赞和我收到的赞
点赞编写返回点赞key的工具某个实体的赞,需要传入实体的类型,实体idpublic class RedisKeyUtill { private static final String SPILT=":"; private static final String PREFIX_ENTITY_LIKE="like:entity"; // 某个实体的赞 // like:entity:entityType:entityId -> set(userId) publ原创 2022-03-04 16:13:34 · 481 阅读 · 0 评论 -
4.1 Redis快速入门和Spring整合Redis
Redis快速入门和SpringBoot的整合原创 2022-03-03 18:53:01 · 639 阅读 · 0 评论 -
3.6 统一处理异常和使用AOP思想统一记录日志
统一记录日志和使用AOP切面思想统一记录日志原创 2022-03-02 16:37:59 · 554 阅读 · 0 评论 -
3.5 私信列表和发送私信
文章目录1、创建message表对应的实体类2、编写Message数据层方法3、编写Mapper对应xml文件4、编写MessageService5、编写MessageController6、修改页面发送私信增加新增消息和修改消息状态的方法修改js页面把未读的私信设置为已读# 私信列表小id放前1、创建message表对应的实体类public class Message { private int id; private int fromId; //发送者id原创 2022-03-01 21:29:20 · 967 阅读 · 0 评论 -
3.4 显示评论 增加评论
文章目录显示评论创建帖子对应的实体类编写对应的Mapper编写Mapper对应的xml实现方法编写Service实现Mapper的业务在查询帖子的Controller里增加显示评论的方法(重点)修改相应的页面添加评论业务层表现层修改页面显示评论创建帖子对应的实体类entityType 表示不同的对象 可能回复的是帖子 ,用户 用int代表不同的类型public class Comment { private int id; private int userId; p原创 2022-03-01 11:38:53 · 601 阅读 · 0 评论 -
3.2 AJAX发布帖子 显示帖子详情
文章目录AJAX发布帖子 显示帖子详情1、引入fastjson包2、编写方法获取JSON字符串增加插入帖子的方法编写DiscussPostMapper编写DiscussPostService编写DiscussPostController处理js显示帖子详情增加通过id查询帖子的方法在帖子标题上增加访问详情页面的链接处理discuss-detail页面AJAX发布帖子 显示帖子详情1、引入fastjson包<!-- https://mvnrepository.com/artifact/c原创 2022-03-01 09:54:14 · 867 阅读 · 0 评论 -
3.3 事务管理和Spring事务管理简介
事务的简介,事务的隔离性,常见异常 以及Spirng管理事务的简介原创 2022-02-28 19:23:39 · 262 阅读 · 0 评论 -
3.1 使用前缀树过滤敏感词
文章目录使用前缀树过滤敏感词前缀树简介1、导入敏感词 可以存放到数据库 也可以放到文件里2、定义前缀树 使用内部类3、根据敏感词初始化前缀树将一个敏感词添加到前缀树4、编写过滤敏感词的方法5、测试使用前缀树过滤敏感词前缀树简介 前缀树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符原创 2022-02-27 11:30:34 · 961 阅读 · 0 评论 -
2.5 显示登录信息 ,修改个人设置 使用自定义注解检查登录状态
文章目录显示登录信息拦截器示例拦截器应用1、编写一个工具类从请求中来获取cookie的值2、编写工具来持有用户信息3、编写LoginTicketInterceptor过滤器4、配置拦截器,指定拦截路径和排除的路径5、修改页面账号设置1、编写UserController处理设置请求2、处理上传头像请求3、处理获取头像请求使用自定义注解检查登录状态1、创建自定义注解2、在需要拦截的方法上加上自定义的注解3、定义拦截器4、配置拦截器显示登录信息拦截器示例定义拦截器实现HandlerInterce原创 2022-02-26 19:46:59 · 677 阅读 · 0 评论 -
2.4 开发登录和退出
开发登录和退出创建实体类loginTicket为了实现用户可以在多个请求间,服务器可以记住浏览器的用户信息,创建LoginTicket表,用户登录后,服务器生成一个ticket凭据,同时保存用户的user_id,通过user_id可以进一步查询到用户的详细信息。服务器把ticket凭据用cookie返回给浏览器,浏览器下次请求时就会带上ticket。user_id 用户的id标识ticket 凭证 随机字符串 唯一标识status 状态 0有效 1失效expired 凭据过原创 2022-02-25 20:03:31 · 698 阅读 · 7 评论 -
2.3 会话管理和生成验证码
文章目录会话管理Cookie简介Session生成验证码-导入jar包-编写Kaptcha配置类实现刷新效果DEBUG会话管理Cookie简介https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CookiesHTTP Cookie(也叫 Web Cookie 或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,如原创 2022-02-23 21:37:29 · 1087 阅读 · 0 评论 -
2.2 开发注册功能
文章目录开发注册功能一次注册请求拆分成三次请求:第一次请求 用户访问注册页面1、编写loginController来处理请求,返回注册页面2、修改注册页面和主页,使用Thymeleaf语法引入jar包,生成随机字符串等处理修改项目域名,暂时为本地路径建立一个工具类,方便生成随机字符串和处理加密的工作**第二次请求** 用户填写表单编写UserService对注册业务进行处理编写Controller处理用户提交数据的请求修改表单数据第三次请求 激活注册账号开发注册功能一次注册请求拆分成三次请原创 2022-02-21 19:43:11 · 546 阅读 · 0 评论 -
2.1 JavaMailSender发送邮件
发送邮件步骤:1、邮箱设置 -启用客户端SMTP服务2、Spring Email -导入jar包 -邮箱参数设置 -使用JavaMailSender发送邮件3、模板引擎 -使用Thymeleaf发送HTML邮件启用smtp服务SMTP的全称是“SimpleMailTransferProtocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计原创 2022-02-20 13:40:17 · 10815 阅读 · 0 评论 -
1.4 防牛客社区--开发社区首页
开发社区首页一次请求流程Dao层1、先写entity中的实体类依据数据库中表的字段建立相应的属性,并且生成其get和set方法,以及toString方法;2、编写对应的Mapper接口,规定需要实现的方法selectDiscussPosts查询帖子,参数userid,offset-起始页,limit-每一页显示的数据userid==0表示首页查询,==其他值表示查询个人主页的帖子countDiscussPosts–表示查询一共有多少帖子,去除被拉黑的帖子,为了下一步的分页@Map原创 2022-02-17 20:20:57 · 845 阅读 · 0 评论 -
1.3 仿牛客论坛学习笔记--MyBaits入门
mybatis的快速入门原创 2022-02-15 12:56:23 · 611 阅读 · 0 评论 -
1.2 仿牛客论坛项目学习笔记---SpringMvc入门
仿牛客论坛项目学习笔记 快速入门SpringMvc原创 2022-02-10 21:19:34 · 1003 阅读 · 2 评论 -
1.1 仿牛客论坛学习笔记--Spring初入门
在spring中主动获取springContiner容器(主动获取比较笨拙,但有助于理解底层容器的理念)@Service 常用于业务组件@Repository 常用于Dao层@Configuration 标记的类是配置类@ComponentScan(“包”) 指定哪个包,就扫描哪个包下的注解并识别。@Autowired Bean的自动装配,可以标注在类的属性、方法及构造函数上。@Component 把普通类标记为Bean,加入到容器里,并且是单例模式。@Bean 定义一个Be原创 2022-02-09 21:24:55 · 726 阅读 · 0 评论