package com.huahuan.web.blog; import com.huahuan.database.DatabaseAccess; import com.huahuan.database.EasyMapsManager; import com.huahuan.servletutil.ServletUtil; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * * @author evance */ @WebServlet(name = "BlogIndexServlet", urlPatterns = {"/BlogIndexServlet.jsp"}) public class BlogIndexServlet extends HttpServlet { /** * 下面是模式关键字 可以自行删除和增加自定义模式,关键字一定要大写 默认模式为OTHER=0,所以OTHER不能删除 */ public final static int OTHER = 0;//其它 public final static int SHOWALL = 1;//显示所有信息 protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); excute(ServletUtil.setModel(request.getParameter("mode"), this), request, response); } /** * 主执行方法 * * @param event 方法ID */ private void excute(int event, HttpServletRequest request, HttpServletResponse response) { switch (event) { case OTHER: try { request.getRequestDispatcher("/index.jsp").forward(request, response); } catch (ServletException ex) { Logger.getLogger(BlogIndexServlet.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(BlogIndexServlet.class.getName()).log(Level.SEVERE, null, ex); } break; case SHOWALL: showAll(request, response); break; } } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"; }// </editor-fold> /** * 显示所有信息 */ private void showAll(HttpServletRequest request, HttpServletResponse response) { //显示个人资料 String yhid = request.getParameter("host"); DatabaseAccess dao = new DatabaseAccess(); EasyMapsManager emm = new EasyMapsManager(dao); String sql = "SELECT `yhb`.`yhm`, `yhb`.`id`, `yhb`.`xb`, `yhb`.`csrq`, `yhb`.`zcsj`,`yhb`.`zhdlsj`,`yhb`.`sfjh`, `yhb`.`yhtx`, `yhb`.`jf`, `yhb`.`qx`, `yhb`.`gxqm`,`yhb`.`sfzx` FROM `yhb`"; ArrayList<HashMap> hostlist = emm.executeQuery(sql); request.setAttribute("host", hostlist.get(0)); //显示日志信息 sql = "SELECT `bloglog`.`top`, `bloglog`.`title`, `bloglog`.`host`, `bloglog`.`pubtime`,`bloglog`.`lid` FROM `bloglog` WHERE `bloglog`.`host`=? LIMIT 0,2"; emm.setPreparedParameter(Integer.parseInt(yhid)); ArrayList<HashMap> loglist = emm.executeQuery(sql); request.setAttribute("hostlog", (loglist.size() > 0) ? loglist : null); //显示留言信息 sql = "SELECT `blogleave`.`content`, `blogleave`.`leavetime`, `blogleave`.`host`,`blogleave`.`lid`, `yhb`.`yhm` FROM `blogleave` INNER JOIN `yhb` ON `blogleave`.`from` = `yhb`.`id` WHERE `blogleave`.`host`=? LIMIT 0,1"; emm.setPreparedParameter(Integer.parseInt(yhid)); ArrayList<HashMap> leavelist = emm.executeQuery(sql); request.setAttribute("hostleave", (leavelist.size() > 0) ? leavelist : null); //显示好友信息 sql = "SELECT `blogfriends`.`friend`, `yhb`.`yhm`, `blogfriends`.`host`, `yhb`.`yhtx` FROM `blogfriends` INNER JOIN `yhb` ON `blogfriends`.`friend` = `yhb`.`id` WHERE `blogfriends`.`host`=? LIMIT 0,6"; emm.setPreparedParameter(Integer.parseInt(yhid)); ArrayList<HashMap> friendlist = emm.executeQuery(sql); request.setAttribute("hostfriend", (friendlist.size() > 0) ? friendlist : null); //显示访客信息 sql = "SELECT `yhb`.`yhm`, `blogvisit`.`vid`, `blogvisit`.`host`, `blogvisit`.`visitor`,`blogvisit`.`visittime` FROM `yhb` INNER JOIN `blogvisit` ON `blogvisit`.`visitor` = `yhb`.`id` WHERE `blogvisit`.`host`=? LIMIT 0,6"; emm.setPreparedParameter(Integer.parseInt(yhid)); ArrayList<HashMap> visitlist = emm.executeQuery(sql); request.setAttribute("hostvisit", (visitlist.size() > 0) ? visitlist : null); //显示动态(帖子)信息 sql = "SELECT `ftb`.`tzbt`, `ftb`.`ftid`, `ftb`.`ftsj`, `bklb`.`lbmc` FROM `yhb` INNER JOIN `ftb` ON `ftb`.`ftr` = `yhb`.`id` INNER JOIN `bklb` ON `ftb`.`bkid` = `bklb`.`lbid` WHERE `yhb`.`id`=? ORDER BY `ftb`.`ftsj` DESC LIMIT 0,2"; emm.setPreparedParameter(Integer.parseInt(yhid)); ArrayList<HashMap> posttlist = emm.executeQuery(sql); request.setAttribute("hostpost", (posttlist.size() > 0) ? posttlist : null); //最近访客信息 sql = "SELECT DISTINCT `blogvisit`.`host`, `blogvisit`.`visitor`, `yhb`.`yhm`,`yhb`.`yhtx`,`blogvisit`.`visittime`, `blogvisit`.`action` FROM `yhb` INNER JOIN `blogvisit` ON `blogvisit`.`visitor` = `yhb`.`id` WHERE `blogvisit`.`host` = ? ORDER BY `blogvisit`.`visittime` DESC LIMIT 0, 6"; emm.setPreparedParameter(Integer.parseInt(yhid)); ArrayList<HashMap> visittlist = emm.executeQuery(sql); request.setAttribute("hostvisit", (visittlist.size() > 0) ? visittlist : null); //显示统计信息 dao.close(); try { request.getRequestDispatcher("/web/blog/blog_index.jsp").forward(request, response); } catch (ServletException ex) { Logger.getLogger(BlogIndexServlet.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(BlogIndexServlet.class.getName()).log(Level.SEVERE, null, ex); } } }