
JAVA
文章平均质量分 50
萌萌哒huo
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
牛客网项目18:Redis
1. Redis介绍注: 下载地址:https://github.com/microsoftarchive/redis2. Spring整合Redis(1) 引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</ar原创 2022-05-22 21:11:58 · 355 阅读 · 0 评论 -
牛客网项目17:统一记录日志
1. 大体思路记录日志可能发生在任何时刻,为了方便管理、修改,我们采用AOP面向方面(切面)编程。①②③2. 代码①示例在com.nowcoder.mycommunity目录下新建包:aspect,并在里面新建类:AlpahAspectpackage com.nowcoder.mycommunity.aspect;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotatio.原创 2022-05-22 17:55:02 · 265 阅读 · 0 评论 -
牛客网项目16:统一处理异常
1. 大体思路2. 返回错误页面在 HomeController 中添加方法: //返回错误页面 @RequestMapping(path = "/error", method = RequestMethod.GET) public String getErrorPage(){ return "/error/500"; }3. 异常处理类在controller包下新建包:advice,在里面新建:ExceptionAdvicepa原创 2022-05-20 12:14:46 · 368 阅读 · 0 评论 -
剑指offer42:连续子数组的最大和
1. 题目描述输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:62. 解题思路核心点是:dpi作为以数组中第 i 个元素结尾的子数组的最大和。那么就有以下关系:3. 代码public class ques42 { private List<Integer> ans = new LinkedList<>(); public int maxSubArray(int[] nums) { int原创 2022-05-20 11:26:43 · 129 阅读 · 0 评论 -
牛客网项目15:发送私信
1. 大体思路①发送私信- 采用异步的方式发送私信;- 发送成功后,刷新私信列表。②设置已读- 访问私信详情时,将显示的私信设置为已读状态。2. 数据层①在 MessageMapper 中添加: //添加私信 int insertMessage(Message message); //将私信设置为已读(修改消息的状态) int updateStatus(List<Integer> ids, int status);②在mess原创 2022-05-19 17:18:36 · 471 阅读 · 0 评论 -
牛客网项目14:私信列表
1. 大体思路①私信列表:- 查询当前用户的会话列表,每个会话只显示一条最新的私信;- 支持分页显示。②私信详情:- 查询某个会话所包含的私信;- 支持分页显示。2. 数据层①创建Message实体类该实体类对应于message表。public class Message { private int id; private int fromId; private int toId...原创 2022-05-19 16:10:12 · 258 阅读 · 0 评论 -
牛客网项目13:添加评论
1. 大体思路①数据层:- 增加评论数据;- 修改帖子的评论数量。②业务层:- 处理添加评论的业务;- 先增加评论,再更新帖子的评论数量。③表现层:- 处理添加评论数据的请求;- 设置添加评论的表单。评论分为三种:① 楼主;② 回复楼主;③ 楼层间的互相回复。2. 数据层①DiscussPostMapper中添加方法://插入评论后,更新对应帖...原创 2022-05-18 18:15:17 · 494 阅读 · 0 评论 -
牛客网项目12:查看评论
1. 开发思路①数据层:- 根据实体查询一页评论数据;- 根据实体查询评论的数量。②业务层:- 处理查询评论的业务;- 处理查询评论数量的业务。③表现层:- 显示帖子详情数据时,同时显示该帖子所有的评论数据。2.创建评论表的实体类在entity包下新建实体类:Comment,对应评论的表。package com.nowcoder.mycommunity.entity;imp...原创 2022-05-18 11:20:29 · 477 阅读 · 0 评论 -
牛客网项目11:帖子详情
1. 大体思路点击帖子,会打开一个链接,把帖子的内容显示完整。按照正常的开发流程:数据层 - 服务层 - 页面。2. 数据层①在 dao.DiscussPostMapper类下添加增删改查方法:selectDiscussPostById 根据主键查询帖子。//根据主键查询帖子DiscussPost selectDiscussPostById(int id);②在 resources.mapper.discusspoat-mapper.xml 下添加上面Mapper对应的SQL原创 2022-05-14 15:31:16 · 403 阅读 · 0 评论 -
剑指offer40:最小的k个数
1. 题目描述输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。2. 思路① 普通先创建一个大小为k的容器,遍历输入的数组。如果有比容器中小的数,就把容器中最大的数踢出去,把当前这个值放进来。整个数组遍历结束后,容器中的数就是咱们想要的最小k个数。② 进阶由于每次都从容器中取最大的数,如果用数组作为这个容器,那么每次从里面查找最大的数,时间复杂度为o(k)。因此可以从查找方面改进算法的时间原创 2022-05-12 22:08:39 · 456 阅读 · 0 评论 -
牛客网项目10:发布帖子
1. 大体思路①异步请求这次用到了AJAX,网页能够将增量更新呈现在页面上,而不需要刷新整个页面。我们点击【发布帖子】按钮后,会出现一个弹窗,此时后面的页面并没有被刷新。②流程我们点击发布按钮后,publishBtn按钮会执行index.js中的publish()方法,跳转到:CONTEXT_PATH + "/discuss/add";会执行控制器类 DiscussPostController 的 addDiscussPost()方法。里面调用Service: discussP原创 2022-05-12 16:27:22 · 729 阅读 · 1 评论 -
牛客网项目9:敏感词过滤
1. 大体思路①我们在resources目录下,新建一个txt文件,里面装有想要过滤的敏感词。②敏感词过滤器:- 定义前缀树;- 根据敏感词,初始化前缀树;- 编写过滤敏感词的方法。③前缀树- Trie、字典树、查找树;- 特点:查找效率高、消耗内存大;- 应用:字符串检索、词频统计、字符串排序等。结构特点:- 根节点为空,其他每个节点只包含一个字...原创 2022-05-11 15:26:14 · 836 阅读 · 0 评论 -
牛客网项目8:登录检查
1. 大体思路防止用户直接输入:http://localhost:8080/community/user/setting,从而进入某些页面。因此进入某些页面时,需要检查用户的登录状态。由于众多页面都需要进行登录状态的判定,因此写在拦截器中。不过一个一个添加要拦截与放行的路径十分麻烦,我们可以自定义注解。让被注解标识的方法,被拦截。2. 自定义注解- 常用的元注解:@Target、@Retention、@Document、@Inheri...原创 2022-05-10 22:42:48 · 308 阅读 · 0 评论 -
牛客网项目7:账号设置
主要是更改头像。1. 大体思路①在用户点击【账号设置】按钮,发送【/user/setting】,执行UserController的控制器方法getSettingPage()会返回静态资源【/site/setting】,进入到设置页面;②我们点击【上传头像】按钮后,发送【/user/upload】,执行UserController的控制器方法uploadHeader()。将文件存储到我们在配置文件中设置的路径下,并更新当前user的headerUrl属性为指定格式的路径;③当我们需要访问头像(原创 2022-05-10 22:00:04 · 485 阅读 · 0 评论 -
牛客网项目6:显示登录信息
1. 思路用户登录以后,每次发送请求时都会携带含有登录凭证 ticket 的 cookie,我们需要根据这个请求凭证 ticket 去 login_ticket 表中查询出对应的请求凭证对象,里面包含userid,进而查询到用户user。将user里面的信息通过模板引擎展现到页面上。每次发送请求都得执行上述步骤,因此将这一系列的过程放进拦截器中,这样就不用给每个请求都写上此过程了。2. 拦截器(1) 创建- 定义拦截器,实现HandlerInterceptor;...原创 2022-05-09 12:15:26 · 411 阅读 · 0 评论 -
牛客网项目5:登录、退出功能
1. 访问登录页面点击顶部区域内的连接,打开登陆页面。2. 登录 - 验证账号、密码、验证码; - 成功时:生成登录凭证,发送给客户端; - 失败时:跳转回登录页。登录凭证对应的表:login_ticket字段:id、user_id、ticket字符串凭证、status当前是否过期、expired过期时间1> 创建 login_ticket表对应的实体类在entity目录下,新建类:LoginTicket//登录凭证对应的表:login_...原创 2022-05-05 12:00:17 · 700 阅读 · 0 评论 -
牛客网项目4:生成验证码
利用Kaptcha包实现。1.引入依赖<dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version></dependency>2. 编写配置类,对Kaptcha进行配置在com.nowcoder.mycommunit.原创 2022-05-04 10:49:21 · 521 阅读 · 0 评论 -
牛客网项目3:注册、激活功能
思路汇总①注册功能:首先在主页index,点击注册:<a class="nav-link" th:href="@{/register}">注册</a>通过控制器方法getRegisterPage(),跳转到register.html界面。输入账号密码邮箱后,点击立即注册。form表单跳转到th:action="@{/register}"。由于此次发送的是POST请求,执行register()控制器方法。该方法调用了userService.register(user原创 2022-04-26 21:59:49 · 1995 阅读 · 0 评论 -
牛客网项目2:发送邮件
1. 邮箱设置在邮箱客户端中开启SMTP服务。2. Spring Email①引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <version>2.1.5.RELEASE</version></depen原创 2022-04-25 22:33:12 · 752 阅读 · 0 评论 -
MySQL (3) 流程
1. 首先需要开启MySQL的服务,登陆上去;这样SQLyog才能去进行连接。2. 需要对MySQL进行登录:我们为root用户,打开客户端输入密码;3. 初次打开SQLyog时,需要新建连接:新建 - 起名(我起名为MySQL1472) - 密码为当时安装MySQL服务端时设的密码 - 端口号为当时安装MySQL服务端时设的端口号 - 连接。主界面结构如下:...原创 2022-02-26 14:59:57 · 406 阅读 · 0 评论 -
MySQL (2) 配置、启动、停止等操作
一、启动与停止1. 方式一:计算机 - 右键管理 - 服务 - 找到MySQL0815 - 启动类型(停止、自动:开机自启、手动)2. 方式二:进入终端win + x(或者直接右键windows) + 命令提示符(管理员)- 开启服务:net start mysql0815 (不用加;这是终端的命令而不是sql指令)- 停止服务:net stop mysql0815注:右键windo...原创 2022-02-26 14:36:44 · 514 阅读 · 0 评论 -
MySQL (1) 安装、配置
MySQL的安装、配置这里选择customer自定义安装。2. 直接点下一步,不更改路径;3.点击安装;4.安装完后,直接点finish。跳出以下界面,点击next进行配置。5. 选择精确配置。6. 选择开发器;7. 选择多功能数据库;8. 安装位置不用管,继续下一步;9. 允许连接数:第一个选项为20,第二个为500,最后一个可以自己设置...原创 2022-02-26 14:25:27 · 544 阅读 · 0 评论 -
springMVC: RestFul案例2
该RestFul案例对应于尚硅谷杨博超老师的springMVC课程的56-63。本文从0开始详细记录了该RestFul案例的各个步骤,包括整体搭建、文件配置、程序等。原创 2022-02-13 18:30:55 · 223 阅读 · 0 评论 -
springMVC: RestFul案例1
该RestFul案例对应于尚硅谷杨博超老师的springMVC课程的56-63。本文从0开始详细记录了该RestFul案例的各个步骤,包括整体搭建、文件配置、程序等。原创 2022-02-10 15:06:16 · 288 阅读 · 0 评论