1、登录用户收藏文章和取消收藏
根据当前文章的id和用户id查询收藏表,判断是否收藏过,然后新的收藏记录保存到数据库
当用户退出登录后,将不能进行收藏和取消收藏操作,如果进行操作会直接出现“请求异常,请重试”,需要自定义shiro过滤器,判断请求是否是ajax请求,如果没有登录就就重定向到登录页面
2、发表和编辑文章
3、文章提交与删除
4、管理员权限的置顶和加精
在AccountRealm中进行授权,并单独写个AdminController类进行管理员的特有操作,结合detail.ftl
5、添加和删除评论
6、消息的及时通知(websocket)
相对于非持久的协议 HTTP 来说,WebSocket 是一个持久化的协议,与HTTP 协议一样,都处于开放式系统网络交互模型中的第七层,而且都是基于第四层。
HTTP 的生命周期通过 Request 来界定,也就是一个 Request 一个 Response ,那么在 HTTP1.0 中,这次 HTTP 请求就结束了。HTTP1.1 进行了改进,使得有一个 keep-alive,也就是说,在一个 HTTP 连接中,可以发送多个 Request,接收多个 Response,但是 在 HTTP 中永远是一个 Request 只能有一个 Response,而且这个 Response 也是被动的,不能主动发起。
WebSocket的最大特点就是,当服务器完成协议升级后(HTTP->Websocket),服务端可以向客户端推送信息,客户端也可以向服务器发送信息,是真正的双向平等对话。
WebSocket 的其他特点:
- 通过第一次HTTP Request建立了连接之后,后续的数据交换都不用再重新发送HTTP Request,直接从 TCP 通道传输,节省了带宽资源,即:websocket分为握手和数据传输阶段,即进行了HTTP握手 + 双工的TCP连接。
- WebSocket的连接是双向通信的连接,在同一个TCP连接上,既可以发送,也可以接收。
- 具有多路复用的功能(multiplexing),也即几个不同的URI可以复用同一个WebSocket连接。这些特点非常类似TCP连接,但是因为它借用了HTTP协议的一些概念,所以被称为了WebSocket。
1、每增加或者删除一条评论,希望对方能及时收到。先写一个配置类WsConfig,然后在layout.ftl中写脚本
2、在PostController中写一个将消息及时通知作者的方法sendMessCountToUser,通过调用SimpMessagingTemplate的convertAndSendToUser()及时通知消息