重要更新:

1、修改servlet层中BaseServlet中共享request的重大bug
2、将servlet中页面统一使用HttpScope进行渲染
This commit is contained in:
2018-06-30 21:29:15 +08:00
parent 102a658a5f
commit ad73300a25
10 changed files with 120 additions and 161 deletions

View File

@@ -24,37 +24,40 @@ import static org.redkale.source.FilterExpress.NOTEQUAL;
public class ContentServlet extends BaseServlet {
@HttpMapping(url = "/jie", auth = false, comment = "问答列表")
public void jie(HttpRequest request, HttpResponse response){
String actived = getPara(0, "all");
String actived = getPara(request, 0, "all");
int curr = request.getIntParameter("curr", 1);
//分页帖子列表
Flipper flipper = new Flipper().offset((curr-1)*15).limit(15).sort("top DESC,createtime DESC");
Sheet<ContentInfo> contents = contentService.contentQuery(flipper, actived, currentid);
Sheet<ContentInfo> contents = contentService.contentQuery(flipper, actived, request.getSessionid(false));
Kv kv = Kv.by("contents", contents).set("url", request.getRequestURI())
.set("actived", actived).set("curr", curr);
finish("/jie/index.html", kv);
response.finish(HttpScope.refer("/jie/index.html").attr(kv));
}
@HttpMapping(url = "/jie/add", comment = "发表/编辑问答")
@HttpParam(name = "#", type = int.class, comment = "内容ID")
public void add(HttpRequest request, HttpResponse response){
int contentid = getParaToInt(0);
int contentid = getParaToInt(request, 0);
ContentInfo contentInfo = null;
if (contentid > 0){
contentInfo = contentService.contentInfo(sessionid, contentid);
contentInfo = contentService.contentInfo(request.getSessionid(false), contentid);
}
finish("/jie/add.html", Kv.by("bean", contentInfo));
Kv kv = Kv.by("bean", contentInfo);
response.finish(HttpScope.refer("/jie/add.html").attr(kv));
}
@HttpMapping(url = "/jie/detail", auth = false, comment = "问答详情")
public void detail(HttpRequest request, HttpResponse response){
int contentid = getParaToInt(0);
int contentid = getParaToInt(request,0);
String sessionid = request.getSessionid(false);
ContentInfo content = contentService.contentInfo(sessionid, contentid);
Sheet<CommentInfo> comments = commentService.commentQuery(request.getSessionid(false) ,contentid, new Flipper().limit(30));
Sheet<CommentInfo> comments = commentService.commentQuery(sessionid,contentid, new Flipper().limit(30));
//热帖
//Flipper flipper2 = new Flipper().limit(8).sort("viewNum DESC");
@@ -62,7 +65,7 @@ public class ContentServlet extends BaseServlet {
//热议
Flipper flipper3 = new Flipper().limit(8).sort("replynum DESC");
Sheet<ContentInfo> hotReply = contentService.contentQuery(flipper3, "", currentid);
Sheet<ContentInfo> hotReply = contentService.contentQuery(flipper3, "", sessionid);
//更新
CompletableFuture.supplyAsync(new Supplier<String>() {
@@ -76,12 +79,14 @@ public class ContentServlet extends BaseServlet {
});
Kv kv = Kv.by("bean", content).set("comments", comments)/*.set("hotView", hotView)*/.set("hotReply", hotReply);
finish("/jie/detail.html", kv);
response.finish(HttpScope.refer("/jie/detail.html").attr(kv));
}
@HttpMapping(url = "/column", auth = false, comment = "帖子栏目")
public void column(HttpRequest request, HttpResponse response){
String para = getPara();//空qzfxjyggdt
String sessionid = request.getSessionid(false);
String para = getPara(request);//空qzfxjyggdt
int solved = request.getIntParameter("solved", -1);
int wonderful = request.getIntParameter("wonderful", -1);
int curr = request.getIntParameter("curr", 1);
@@ -94,15 +99,16 @@ public class ContentServlet extends BaseServlet {
if (solved > 0) filterNode.and("solved", 20);
if (wonderful > 0) filterNode.and("wonderful", 20);
Sheet<ContentInfo> contents = contentService.contentQuery(flipper, setPrivate(filterNode));
Sheet<ContentInfo> contents = contentService.contentQuery(flipper, setPrivate(request,filterNode));
//热议
Flipper flipper3 = new Flipper().limit(8).sort("replynum DESC");
Sheet<ContentInfo> hotReply = contentService.contentQuery(flipper3, "", currentid);
Sheet<ContentInfo> hotReply = contentService.contentQuery(flipper3, "", sessionid);
Kv kv = Kv.by("contents", contents).set("hotReply", hotReply)
.set("solved", solved).set("wonderful", wonderful).set("column", para).set("curr", curr);
finish("/jie/index.html", kv);
.set("solved", solved).set("wonderful", wonderful)
.set("column", para).set("curr", curr);
response.finish(HttpScope.refer("/jie/index.html").attr(kv));
}
}

View File

@@ -5,10 +5,7 @@ import com.lxyer.bbs.base.BaseServlet;
import com.lxyer.bbs.base.user.UserInfo;
import com.lxyer.bbs.comment.CommentInfo;
import com.lxyer.bbs.content.ContentInfo;
import org.redkale.net.http.HttpMapping;
import org.redkale.net.http.HttpRequest;
import org.redkale.net.http.HttpResponse;
import org.redkale.net.http.WebServlet;
import org.redkale.net.http.*;
import org.redkale.source.FilterNode;
import org.redkale.source.Flipper;
import org.redkale.util.Sheet;
@@ -27,14 +24,17 @@ public class IndexServlet extends BaseServlet {
@HttpMapping(url = "/", auth = false, comment = "社区首页")
public void abc(HttpRequest request, HttpResponse response){
String sessionid = request.getSessionid(false);
Flipper flipper = new Flipper().limit(15).sort("top DESC,createtime DESC");
//置顶贴
FilterNode topNode = FilterNode.create("status", NOTEQUAL, -10).and("top", GREATERTHANOREQUALTO, 20);
Sheet<ContentInfo> top = contentService.contentQuery(flipper, setPrivate(topNode));
Sheet<ContentInfo> top = contentService.contentQuery(flipper, setPrivate(request, topNode));
//非置顶贴
FilterNode untopNode = FilterNode.create("status", NOTEQUAL, -10).and("top", 10);
Sheet<ContentInfo> contents = contentService.contentQuery(flipper, setPrivate(untopNode));
Sheet<ContentInfo> contents = contentService.contentQuery(flipper, setPrivate(request, untopNode));
//热帖
/*Flipper flipper2 = new Flipper().limit(8).sort("viewNum DESC");
@@ -42,7 +42,7 @@ public class IndexServlet extends BaseServlet {
//热议
Flipper flipper3 = new Flipper().limit(8).sort("replynum DESC");
Sheet<ContentInfo> hotReply = contentService.contentQuery(flipper3, "", currentid);
Sheet<ContentInfo> hotReply = contentService.contentQuery(flipper3, "", sessionid);
//最新加入
Sheet<UserInfo> lastReg = userService.lastReg();
@@ -51,13 +51,13 @@ public class IndexServlet extends BaseServlet {
Number userCount = userService.userCount();
Kv kv = Kv.by("top", top).set("contents", contents).set("hotReply", hotReply).set("lastReg", lastReg).set("userCount", userCount);
finish("index.html", kv);
response.finish(HttpScope.refer("index.html").attr(kv));
}
@HttpMapping(url = "/site", auth = false, comment = "网站首页")
public void site(HttpRequest request, HttpResponse response){
finish("/site.html");
response.finish(HttpScope.refer("/site.html"));
}
//====================================文章相关====================================
@@ -70,12 +70,14 @@ public class IndexServlet extends BaseServlet {
//====================================项目相关====================================
@HttpMapping(url = "/project", auth = false, comment = "项目首页")
public void project(HttpRequest request, HttpResponse response){
String sessionid = request.getSessionid(false);
int contentid = 22;
ContentInfo content = contentService.contentInfo(sessionid, contentid);
Sheet<CommentInfo> comments = commentService.commentQuery(request.getSessionid(false) ,contentid, new Flipper().limit(30));
Sheet<CommentInfo> comments = commentService.commentQuery(sessionid,contentid, new Flipper().limit(30));
Kv kv = Kv.by("bean", content).set("comments", comments);
finish("project/index.html", kv);
response.finish(HttpScope.refer("/project/index.html").attr(kv));
}
}

View File

@@ -2,16 +2,14 @@ package com.lxyer.bbs.servlet;
import com.jfinal.kit.Kv;
import com.lxyer.bbs.base.BaseServlet;
import com.lxyer.bbs.base.user.UserRecord;
import com.lxyer.bbs.base.user.UserBean;
import com.lxyer.bbs.base.user.UserInfo;
import com.lxyer.bbs.base.user.UserRecord;
import com.lxyer.bbs.comment.CommentInfo;
import com.lxyer.bbs.content.ContentBean;
import com.lxyer.bbs.content.ContentInfo;
import org.redkale.net.http.HttpMapping;
import org.redkale.net.http.HttpRequest;
import org.redkale.net.http.HttpResponse;
import org.redkale.net.http.WebServlet;
import org.redkale.net.http.*;
import org.redkale.source.FilterExpress;
import org.redkale.source.FilterNode;
import org.redkale.source.Flipper;
import org.redkale.util.Sheet;
@@ -26,7 +24,7 @@ public class UserServlet extends BaseServlet {
@HttpMapping(url = "/user/login", auth = false, comment = "前往登录页")
public void login(HttpRequest request, HttpResponse response){
finish("/user/login.html");
response.finish(HttpScope.refer("/user/login.html"));
}
@HttpMapping(url = "/user/reg", auth = false, comment = "前往登录页")
public void reg(HttpRequest request, HttpResponse response){
@@ -36,39 +34,38 @@ public class UserServlet extends BaseServlet {
list.add(Kv.by("k", 3).set("a", "3+2-5=?").set("q", 0));
list.add(Kv.by("k", 4).set("a", "Math.abs(-3)=?").set("q", 3));*/
finish("/user/login.html");
response.finish(HttpScope.refer("/user/login.html"));
}
@HttpMapping(url = "/user/set", auth = true, comment = "用户设置")
public void set(HttpRequest request, HttpResponse response){
finish("/user/set.html");
response.finish(HttpScope.refer("/user/set.html"));
}
@HttpMapping(url = "/user", auth = false, comment = "用户首页")
public void user(HttpRequest request, HttpResponse response){
String para = getPara();
String para = getPara(request);
//-------个人中心---------
if ("user".equals(para) || "".equals(para)){
UserInfo user = request.currentUser();
if (user == null){
finish("/user/login.html");
response.finish(HttpScope.refer("/user/login.html"));
return;
}
//创建的帖子
Flipper flipper = new Flipper().limit(8).sort("createtime DESC");
ContentBean bean = new ContentBean();
bean.setUserid(user.getUserid());
Sheet<ContentInfo> contents = contentService.queryByBean(flipper, bean);
FilterNode node = FilterNode.create("userid", user.getUserid()).and("status", FilterExpress.NOTEQUAL, -10);
Sheet<ContentInfo> contents = contentService.contentQuery(flipper, setPrivate(request, node));//queryByBean(flipper, bean);
//收藏的帖子
Sheet<ContentInfo> collects = contentService.collectQuery(sessionid);
Sheet<ContentInfo> collects = contentService.collectQuery(request.getSessionid(false));
Kv kv = Kv.by("contents", contents).set("collects", collects);
finish("/user/index.html", kv);
return;
response.finish(HttpScope.refer("/user/index.html").attr(kv));
}
//-------用户主页------
@@ -82,7 +79,7 @@ public class UserServlet extends BaseServlet {
userid = users.stream().findFirst().orElse(null).getUserid();
}
}else {//直接访问
userid = getParaToInt(0);
userid = getParaToInt(request,0);
}
//用户信息
@@ -90,14 +87,13 @@ public class UserServlet extends BaseServlet {
//帖子
Flipper flipper = new Flipper().limit(8).sort("createtime DESC");
ContentBean bean = new ContentBean();
bean.setUserid(userid);
Sheet<ContentInfo> contents = contentService.queryByBean(flipper, bean);
FilterNode node = FilterNode.create("userid", userid).and("status", FilterExpress.NOTEQUAL, -10);
Sheet<ContentInfo> contents = contentService.contentQuery(flipper, setPrivate(request,node));
//回复
Sheet<CommentInfo> comments = commentService.queryByUserid(userid);
Kv kv = Kv.by("contents", contents).set("user", user).set("comments", comments);
finish("/user/home.html", kv);
response.finish(HttpScope.refer("/user/home.html").attr(kv));
}
}