package com.huahuan.web.blog; import com.huahuan.database.DatabaseAccess; import com.huahuan.database.EasyMapsManager; import com.huahuan.servletutil.ServletUtil; import com.huahuan.table.Yhb; 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; import org.jplus.hyb.database.Hyberbin; /** * * @author evance */ @WebServlet(name = "BlogYhbServlet", urlPatterns = {"/BlogYhbServlet.jsp"}) public class BlogYhbServlet extends HttpServlet { /** * 下面是模式关键字 可以自行删除和增加自定义模式,关键字一定要大写 默认模式为OTHER=0,所以OTHER不能删除 */ public final static int OTHER = 0;//其它 public final static int SHOWONE = 1; public final static int SHOWINFO = 2; public final static int UPDATE = 3; 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(BlogYhbServlet.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(BlogYhbServlet.class.getName()).log(Level.SEVERE, null, ex); } break; case SHOWONE: showOne(request, response); break; case SHOWINFO: showInfo(request, response); break; case UPDATE: update(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 showOne(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`.`yhtx`, `yhb`.`jf`, `yhb`.`lsjf`,`yhb`.`qx`, `yhb`.`gxqm`,`yhb`.`sfzx`, `ltbk`.`bkmc`, `ltbk`.`bkid`, `qxlb`.`qxmc` FROM `yhb` LEFT JOIN `ltbk` ON `ltbk`.`bz` = `yhb`.`id` INNER JOIN `qxlb` ON `yhb`.`qx` = `qxlb`.`qxid` WHERE `yhb`.`id`=?"; emm.setPreparedParameter(Integer.parseInt(yhid)); ArrayList<HashMap> hostlist = emm.executeQuery(sql); request.setAttribute("host", (hostlist.size() > 0) ? hostlist.get(0) : null); //访问数 sql = "SELECT COUNT(*) FROM `blogvisit` WHERE `blogvisit`.`host` = ?"; emm.setPreparedParameter(Integer.parseInt(yhid)); ArrayList<HashMap> visittlist = emm.executeQuery(sql); request.setAttribute("visitnum", (visittlist.size() > 0) ? visittlist.get(0).get("visitnum") : null); //好友数 sql = "SELECT COUNT(*) AS friendnum FROM `blogfriends` WHERE `blogfriends`.`host`=?"; emm.setPreparedParameter(Integer.parseInt(yhid)); ArrayList<HashMap> friendlist = emm.executeQuery(sql); request.setAttribute("friendnum", (friendlist.size() > 0) ? friendlist.get(0).get("friendnum") : null); //日志数 sql = "SELECT COUNT(*) AS lognum FROM `bloglog` WHERE `bloglog`.`host`=?"; emm.setPreparedParameter(Integer.parseInt(yhid)); ArrayList<HashMap> loglist = emm.executeQuery(sql); request.setAttribute("lognum", (loglist.size() > 0) ? loglist.get(0).get("lognum") : null); //回帖数 sql = "SELECT COUNT(*) AS htnum FROM `htb` WHERE `htb`.`htr`=?"; emm.setPreparedParameter(Integer.parseInt(yhid)); ArrayList<HashMap> htlist = emm.executeQuery(sql); request.setAttribute("htnum", (htlist.size() > 0) ? htlist.get(0).get("htnum") : null); //回帖(主题)数 sql = "SELECT COUNT(*) AS ftnum FROM `ftb` WHERE `ftb`.`ftr`=?"; emm.setPreparedParameter(Integer.parseInt(yhid)); ArrayList<HashMap> ftlist = emm.executeQuery(sql); request.setAttribute("ftnum", (ftlist.size() > 0) ? ftlist.get(0).get("ftnum") : null); //显示统计信息 dao.close(); try { request.getRequestDispatcher("/web/blog/blog_yhb.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); } } private void update(HttpServletRequest request, HttpServletResponse response) { try { Yhb yhb = new Yhb(); ServletUtil.loadByParams(request, yhb, true); Hyberbin hyb = new Hyberbin(yhb, true); hyb.updateByKey("id"); yhb = hyb.showOnebyKey("id"); hyb.reallyClose(); request.setAttribute("host", yhb); request.getRequestDispatcher("/web/blog/blog_personInfo.jsp").forward(request, response); } catch (Exception ex) { } } private void showInfo(HttpServletRequest request, HttpServletResponse response) { try { String id = request.getParameter("host"); Yhb yhb = new Yhb(); yhb.setId(Integer.parseInt(id)); Hyberbin hyb = new Hyberbin(yhb); yhb = hyb.showOnebyKey("id"); request.setAttribute("host", yhb); request.getRequestDispatcher("/web/blog/blog_personInfo.jsp").forward(request, response); } catch (Exception ex) { } } }