package com.huahuan.web.jltd;
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 Administrator
*/
@WebServlet(name = "JltdIndexAction", urlPatterns = "/JltdIndexAction.jsp")
public class JltdIndexAction extends HttpServlet {
/**
* 下面是模式关键字 可以自行删除和增加自定义模式,关键字一定要大写 默认模式为OTHER=0,所以OTHER不能删除
*/
public final static int OTHER = 0;//其它
public final static int SHOWLIST = 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 showlist(HttpServletRequest request, HttpServletResponse response) {
String sql = "SELECT"
+ " `ltbk`.`bkid`, `ltbk`.`bkmc`, `ltbk`.`bktb`, `ltbk`.`bz`, `ltbk`.`bkms`,"
+ " `ltbk`.`tzzs`, `yhb`.`yhm`"
+ " FROM"
+ " `ltbk` LEFT JOIN"
+ " `yhb` ON `ltbk`.`bz` = `yhb`.`id`";
DatabaseAccess dao = new DatabaseAccess();
EasyMapsManager emm = new EasyMapsManager(dao);
ArrayList<HashMap> bklist = emm.executeQuery(sql);
// 得到板块最后发布时间
int size = bklist.size();
for (int i = 0; i < size; i++) {
emm.setPreparedParameter(Integer.parseInt(bklist.get(i).get("bkid").toString()));
ArrayList<HashMap> list = emm.executeQuery("select max(ftsj) as zhfbsj from ftb where bkid=?");
if (list.get(0).get("zhfbsj") == null) {
bklist.get(i).put("zhfbsj", "");
} else {
bklist.get(i).put("zhfbsj", list.get(0).get("zhfbsj").toString());
}
}
dao.close();
request.setAttribute("bklist", bklist);
Integer times = bklist.size();//计算前台用到的循环次数
Integer temp = times % 2 == 0 ? times / 2 : times / 2 + 1;
int[] arr = new int[temp];
for (int i = 0; i < temp; i++) {
arr[i] = i;
}
request.setAttribute("arr", arr);
}
/**
* 实现父类的抽象方法,下面的模式和方法可以自行增删
*/
public void execute(int event, HttpServletRequest request, HttpServletResponse response) {
/**
* 下面是相关模式下所做的动作*
*/
switch (event) {
case SHOWLIST:
showlist(request, response);
try {
request.getRequestDispatcher("/web/jltd/jltd.jsp").forward(request, response);
} catch (ServletException ex) {
Logger.getLogger(JltdIndexAction.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(JltdIndexAction.class.getName()).log(Level.SEVERE, null, ex);
}
break;
}
}
}