package com.echo.blog;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import com.echo.blog.*;
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 org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
public class BlogServlet extends HttpServlet {
private static final long serialVersionUID = -5385909819838578781L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
if (user == null) {
response.sendRedirect("/blog");
} else {
request.setCharacterEncoding("utf-8");
String method = request.getParameter("method");
if (method.equals("add")) {
add(request, response);
} else if (method.equals("adminList")) {
adminList(request, response);
} else if (method.equals("delete")) {
delete(request, response);
} else if (method.equals("preEditBlog")) {
preEditBlog(request, response);
} else if (method.equals("postEditBlog")) {
postEditBlog(request, response);
} else if (method.equals("preAdd")) {
preAdd(request, response);
} else {
adminList(request, response);
}
}
}
public void add(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String uid = request.getParameter("id");
String title = request.getParameter("title");
String categoryId = request.getParameter("category");
String content = request.getParameter("content");
String sql = "insert into blog (user_id,title,content,category_id,createdtime) values (?,?,?,?,now())";
String params[] = { uid, title, content, categoryId };
QueryRunner qr = DbHelper.getQueryRunner();
int result = 0;
String message = "";
try {
result = qr.update(sql, params);
} catch (SQLException e) {
e.printStackTrace();
}
if (result == 1) {
request.getRequestDispatcher("/admin/success.jsp").forward(request,
response);
} else {
request.getRequestDispatcher("/admin/fail.jsp").forward(request,
response);
}
}
public void adminList(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
String sql = "select id,title,content,createdtime from blog where user_id="
+ id + " order by id desc ";
QueryRunner qr = DbHelper.getQueryRunner();
List list = null;
try {
list = (List) qr.query(sql, new BeanListHandler(Blog.class));
} catch (SQLException e) {
e.printStackTrace();
}
sql = "select id,name,level from category where user_id=" + id
+ " order by level desc,id desc";
List categoryList = null;
try {
categoryList = (List) qr.query(sql, new BeanListHandler(
Category.class));
} catch (SQLException e) {
e.printStackTrace();
}
sql = "select c.id,username,c.content,c.createdtime from blog b,comment c where c.blog_id=b.id and b.user_id="
+ id + " order by c.id desc";
List commentList = null;
try {
commentList = (List) qr.query(sql, new BeanListHandler(
Comment.class));
} catch (SQLException e) {
e.printStackTrace();
}
request.setAttribute("commentList", commentList);
request.setAttribute("list", list);
request.setAttribute("categoryList", categoryList);
request.getRequestDispatcher("/admin/adminBlogList.jsp").forward(
request, response);
}
public void delete(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String id = request.getParameter("id");
String sql = "delete from blog where id=" + id;
QueryRunner qr = DbHelper.getQueryRunner();
try {
qr.update(sql);
} catch (SQLException e) {
e.printStackTrace();
}
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
String uid = user.getId().toString();
request.getRequestDispatcher(
"/servlet/BlogServlet?method=adminList&&id=" + uid).forward(
request, response);
}
public void preEditBlog(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String uid = request.getParameter("uid");
String id = request.getParameter("id");
String sql = "select id,title,content,category_id as categoryid,createdtime from blog where id="
+ id ;
QueryRunner qr = DbHelper.getQueryRunner();
List list = null;
Blog blog = null;
try {
list = (List) qr.query(sql, new BeanListHandler(Blog.class));
blog = (Blog) list.get(0);
} catch (SQLException e) {
e.printStackTrace();
}
sql="select id,name from category where user_id="+uid+" order by level desc,id desc";
List categorys=null;
try {
categorys=(List)qr.query(sql, new BeanListHandler(Category.class));
} catch (SQLException e) {
e.printStackTrace();
}
request.setAttribute("blog", blog);
request.setAttribute("categorys",categorys);
request.getRequestDispatcher("/admin/editBlog.jsp").forward(request,
response);
}
public void postEditBlog(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String title = request.getParameter("title");
String content = request.getParameter("content");
String id = request.getParameter("id");
if (title.equals("")) {
request.getRequestDispatcher("/admin/fail.jsp").forward(request,
response);
} else if (content.equals("")) {
request.getRequestDispatcher("/admin/fail.jsp").forward(request,
response);
} else {
String sql = "update blog set title=?,content=? where id=?";
String params[] = { title, content, id };
QueryRunner qr = DbHelper.getQueryRunner();
int result = 0;
try {
result = qr.update(sql, params);
} catch (SQLException e) {
e.printStackTrace();
}
if (result == 1) {
request.getRequestDispatcher("/admin/success.jsp").forward(
request, response);
} else {
request.getRequestDispatcher("/admin/fail.jsp").forward(
request, response);
}
}
}
public void preAdd(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String id = request.getParameter("id");
String sql = "select id,name,level from category where user_id="+id+" order by level desc,id desc ";
QueryRunner qr = DbHelper.getQueryRunner();
List list = null;
try {
list = (List) qr.query(sql, new BeanListHandler(Category.class));
} catch (SQLException e) {
e.printStackTrace();
}
request.setAttribute("list", list);
request.getRequestDispatcher("/admin/addblog.jsp").forward(request,
response);
}
}