?? articledo.java
字號:
package com.lovo.servlet;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.lovo.factory.BOFactory;
import com.lovo.po.FilePO;
import com.lovo.po.LevelPO;
import com.lovo.po.PublishPO;
import com.lovo.po.ReplyPO;
import com.lovo.po.UserPO;
import com.lovo.util.Page;
public class ArticleDO extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
HttpSession session = request.getSession(true); //獲得session作用域
String publishIdStr = request.getParameter("publishId"); //從頁面上獲得主題帖的ID的字符串
int publishId = Integer.parseInt(publishIdStr);
PublishPO publish =
BOFactory.getPublishBOInstance().queryById(publishId); //通過ID查詢到主題帖
//通過主題帖的發表人的ID找到發表人
UserPO publishMan =
BOFactory.getUserBOInstance().queryById(publish.getPublishMan().getId());
//根據發表人的等級ID找到相應的等級對象
LevelPO level =
BOFactory.getLevelBOInstance().queryLevelById(publishMan.getLevel().getLevelNum());
//對發表人的對象的等級填充
publishMan.setLevel(level);
//對主題帖的作者填充
publish.setPublishMan(publishMan);
//查詢該用戶共發表了多少帖子
List<PublishPO> list = BOFactory.getPublishBOInstance()
.queryPubByUserid(publishMan.getId());
int publishNum = list.size();
session.setAttribute("publish", publish);
String currPageStr = request.getParameter("page");
int currPage = 1;
try {
currPage = Integer.parseInt(currPageStr);
} catch (NumberFormatException e) {
currPage = 1;
}
if(currPage <= 0) {
currPage = 1;
}
int maxRows = BOFactory.getReplyBoInstance().queryRepNumByPublish(publishId);
Page replyPage = new Page();
replyPage.setCurrPage(currPage);
replyPage.setMaxRows(maxRows);
int maxPages = maxRows % replyPage.getPageRows() == 0 ? maxRows / replyPage.getPageRows() : maxRows / replyPage.getPageRows() + 1;
if(maxPages == 0) {
maxPages = 1;
}
if(currPage >= maxPages) {
if(maxPages != 0) {
currPage = maxPages;
replyPage.setCurrPage(currPage);
}
}
//查詢該主題貼的所有回帖
List<ReplyPO> replyList = BOFactory.getReplyBoInstance().queryRepByPublish(publishId, replyPage);
//對回帖的用戶進行填充
if (replyList != null) {
for (int i = 0; i < replyList.size(); i++) {
ReplyPO reply = replyList.get(i);
UserPO replyMan = BOFactory.getUserBOInstance().queryById(reply.getReplyMan().getId());
reply.setReplyMan(replyMan);
}
}
try {
List<FilePO> fileList = BOFactory.getFileBOInstance().queryFileByPublishId(publishId);
session.setAttribute("fileList", fileList);
} catch (SQLException e) {
e.printStackTrace();
response.sendRedirect("../web/error.jsp");
return;
}
session.setAttribute("replyList", replyList);
session.setAttribute("replyPage", replyPage);
session.setAttribute("currPage", currPage);
response.sendRedirect("../web/jsp/article.jsp?publishNum=" + publishNum + "&maxPages=" + maxPages);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -