package com.huahuan.web.sthd; import com.huahuan.database.DatabaseAccess; import com.huahuan.database.EasyMapsManager; import com.huahuan.servletutil.ServletUtil; import com.huahuan.tools.Util; 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 = "SthdIndexAction", urlPatterns = "/SthdIndexAction.jsp") public class SthdIndexAction extends HttpServlet { /** * 下面是模式关键字 可以自行删除和增加自定义模式,关键字一定要大写 默认模式为OTHER=0,所以OTHER不能删除 */ public final static int OTHER = 0;//其它 public final static int SHOWONE = 1; public final static int SHOWHDLIST = 2;//显示活动列表 protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); execute(ServletUtil.setModel(request.getParameter("mode"), this), request, response); } // <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); } /** * Handles the HTTP * <code>POST</code> method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }// </editor-fold> /** * 显示社团活动的列表,包含分页查询 */ private void showhdlist(HttpServletRequest request, HttpServletResponse response) { String index = request.getParameter("index"); getHdlbList(request, response);//得到类别列表 String where = ""; DatabaseAccess dao = new DatabaseAccess(); EasyMapsManager emm = new EasyMapsManager(dao); String hdlb = request.getParameter("hdlb"); if (Util.isEmpty(hdlb)) { hdlb = "1"; } //存放活动类别的信息 request.setAttribute("hdlb", Integer.parseInt(hdlb)); emm.setPreparedParameter(Integer.parseInt(hdlb)); request.setAttribute("lbmc", emm.executeQuery("select lbid,lbmc from hdlb where lbid=?").get(0).get("lbmc").toString()); String searchName = request.getParameter("searchName"); String searchValue = request.getParameter("searchValue"); if (!Util.isEmpty(searchValue) && !Util.isEmpty(searchName)) {//查询 where = " where " + searchName + " like ? order by hdid desc"; emm.setPreparedParameter("%" + searchValue + "%"); } else { where = " where hdlb=? order by hdid desc"; emm.setPreparedParameter(Integer.parseInt(hdlb)); } String page = request.getParameter("page"); if (Util.isEmpty(page) || !Util.isInteger(page)) { page = "1"; } int pageSize = 4; String sql = "SELECT" + " `hyb`.`xm`, `hyb`.`hyzp`, `hyb`.`bz`, `sthd`.`hdjjfz`, `sthd`.`hdid`," + " `sthd`.`hdbt`,`sthd`.`hdsj`,`sthd`.`hdnr`" + " FROM" + " `hyb` INNER JOIN" + " `sthd` ON `sthd`.`hdjjfz` = `hyb`.`id`"; String range = " limit " + (Integer.parseInt(page) - 1) * pageSize + ", " + pageSize;//分页 ArrayList<HashMap> hdlist = emm.executeQuery(sql + where + range); request.setAttribute("hdlist", hdlist);//活动列表 //用于分页显示的参数 request.setAttribute("page", Integer.parseInt(page)); if (!Util.isEmpty(searchValue) && !Util.isEmpty(searchName)) { where = " where " + searchName + " like ?"; emm.setPreparedParameter("%" + searchValue + "%"); } else { where = " where hdlb=?"; emm.setPreparedParameter(Integer.parseInt(hdlb)); } int total = emm.executeQuery(sql + where).size(); int totalpages = total % pageSize == 0 ? total / pageSize : total / pageSize + 1; request.setAttribute("totalpages", totalpages); if (index != null) { if (index.equals("index")) { request.setAttribute("hdid", Integer.parseInt(request.getParameter("hdid"))); } } dao.close();//关闭数据库 try { request.getRequestDispatcher("/web/sthd/sthd.jsp").forward(request, response); } catch (ServletException ex) { Logger.getLogger(SthdIndexAction.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(SthdIndexAction.class.getName()).log(Level.SEVERE, null, ex); } } /** * 得到活动类别列表 */ private void getHdlbList(HttpServletRequest request, HttpServletResponse response) { DatabaseAccess dao = new DatabaseAccess(); EasyMapsManager emm = new EasyMapsManager(dao); ArrayList<HashMap> hdlblist = emm.executeQuery("select lbid,lbmc from hdlb"); dao.close(); request.setAttribute("hdlblist", hdlblist); } /** * 显示单个社团活动 */ private void showSthd(HttpServletRequest request, HttpServletResponse response) { String hdid = request.getParameter("hdid");//活动id if (!Util.isInteger(hdid)) { hdid = "1"; } String sql = "SELECT" + " `hyb`.`hyzp` as hyzp, `hyb`.`xm` as xm, `hyb`.`xj` as xj, `sthd`.`hdsj`, `sthd`.`hdbt` as hdbt," + " `sthd`.`hdnr` as hdnr, `sthd`.`hdjjfz`, `sthd`.`hdid` as hdid" + " FROM" + " `sthd` INNER JOIN" + " `hyb` ON `sthd`.`hdjjfz` = `hyb`.`id`" + " where hdid=?"; DatabaseAccess dao = new DatabaseAccess(); EasyMapsManager emm = new EasyMapsManager(dao); emm.setPreparedParameter(Integer.parseInt(hdid)); ArrayList<HashMap> list = emm.executeQuery(sql); dao.close(); if (!list.isEmpty()) { request.setAttribute("hd", list.get(0)); } try { request.getRequestDispatcher("/web/sthd/hdnr.jsp").forward(request, response); } catch (ServletException ex) { Logger.getLogger(SthdIndexAction.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(SthdIndexAction.class.getName()).log(Level.SEVERE, null, ex); } } /** * 下面的模式和方法可以自行增删 */ public void execute(int event, HttpServletRequest request, HttpServletResponse response) { /** * 下面是相关模式下所做的动作* */ switch (event) { case SHOWONE: showSthd(request, response); break; case SHOWHDLIST: showhdlist(request, response); break; } } }