package blog.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
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 blog.action.blog.AddArticle;
import blog.action.blog.AllBlog;
import blog.action.blog.BlogNumber;
import blog.action.blog.DeleteBlog;
import blog.action.blog.IndexBlog;
import blog.action.blog.ReadBlog;
import blog.action.blog.RecommendBlog;
import blog.action.comment.Message;
import blog.action.comment.NewMessage;
import blog.action.pic.BigPic;
import blog.action.pic.DeletePic;
import blog.action.pic.NewPicture;
import blog.action.pic.Pic;
import blog.action.pic.ShowPicture;
import blog.action.pic.UploadPicture;
import blog.action.user.CheckCode;
import blog.action.user.CheckEmail;
import blog.action.user.CheckVerify;
import blog.action.user.Login;
import blog.action.user.Register;
import blog.action.user.UpdateUser;
import blog.dao.UserDao;
import blog.entity.Blog;
import blog.entity.Category;
import blog.entity.Comment;
import blog.entity.Picture;
import blog.entity.User;
import blog.factory.Factory;
public class ActionServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
HttpSession session=request.getSession();
String url = request.getRequestURI();
String path = url.substring(url.lastIndexOf("/"), url.lastIndexOf("."));
PrintWriter out = response.getWriter();
if (path.equals("/code")) {// 处理验证验证码的请求
out.print(CheckCode.execute(request, response));
} else if (path.equals("/email")) {// 处理邮箱验证请求
boolean flag = CheckEmail.execute(request, response);
if (!flag) {
System.out.println("邮箱可用");
out.print(true);
} else {
out.print(false);
System.out.println("邮箱已存在");
}
} else if (path.equals("/register")) {// 处理注册的请求
System.out.println("-------");
Register r = new Register();
if (r.execute(request, response) != null) {// 注册成功,跳转到邮箱验证页面
response.sendRedirect("verify_email.jsp");
} else {
response.sendRedirect("register.jsp");
}
} else if (path.equals("/verify")) {// 处理邮箱验证的请求
CheckVerify cv = new CheckVerify();
User user = cv.execute(request, response);
if (user != null) {// 邮箱验证成功,跳转到登录页面
session = request.getSession();
session.setAttribute("user", user);
response.sendRedirect("login.jsp");
} else {
request.setAttribute("err", "输入的邮箱验证码不正确,请重新输入");
request.getRequestDispatcher("verify_email.jsp").forward(
request, response);
}
} else if (path.equals("/login")) {// 处理登录的请求
Login login = new Login();
String opt = login.execute(request, response);
if ("login".equals(opt)) {
request.setAttribute("err", "输入的邮箱验证码不正确,请重新输入");
request.getRequestDispatcher("login.jsp").forward(request,
response);
} else if ("index".equals(opt)) {
session = request.getSession();
User u = (User) session.getAttribute("loginUser");
response.sendRedirect("index.do?email=" + u.getEmail());
} else {
response.sendRedirect("verify_email.jsp");
}
}else if(path.equals("/page_login")){
Login login = new Login();
String opt = login.execute(request, response);
System.out.println("opt->"+opt);
if ("index".equals(opt)|| "login".equals(opt)) {
String str=(String) session.getAttribute("previewUrl");
String s=str.substring(url.lastIndexOf("/"));
System.out.println(s);
response.sendRedirect(request.getContextPath()+s);
} else {
response.sendRedirect("verify_email.jsp");
}
} else if (path.equals("/index")) {
String hostBlog = request.getParameter("email");
session = request.getSession();
try {
User u = (User) session.getAttribute("ViewUser");
if (hostBlog != null || u == null) {
System.out.println(hostBlog + "============");
UserDao userDao = Factory.getUserDaoImpl();
User user = userDao.getUser(hostBlog);
session.setAttribute("ViewUser", user);
}
// 查找博主被推荐的博文
RecommendBlog recommend = new RecommendBlog();
List<Blog> recBlogs = recommend.execute(request, response);
System.out.println("recBlogs->" + recBlogs.size());
// 查找最新的博文
IndexBlog index = new IndexBlog();
List<Blog> blogs = index.execute(request, response);
// 查找博文的分类和数量
BlogNumber number = new BlogNumber();
List<Category> list = number.execute(request, response);
int amount = 0;
for (Category c : list) {
amount = amount + c.getCount();
}
request.setAttribute("recommendBlog", recBlogs);
request.setAttribute("list", list);
request.setAttribute("amount", amount);
request.setAttribute("blogs", blogs);
request.getRequestDispatcher("index.jsp").forward(request,
response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else if (path.equals("/read_blog")) {
ReadBlog read = new ReadBlog();
Blog blog = read.execute(request, response);
NewMessage newMes = new NewMessage();
List<Comment> coms = newMes.execute(request, response);
// 查找博主被推荐的博文
RecommendBlog recommend = new RecommendBlog();
List<Blog> recBlogs = recommend.execute(request, response);
request.setAttribute("recommendBlog", recBlogs);
request.setAttribute("coms", coms);
request.setAttribute("blog", blog);
request.getRequestDispatcher("read_blog.jsp").forward(request,response);
} else if (path.equals("/delete_blog")) {// 用来处理删除博文的请求
DeleteBlog delete=new DeleteBlog();
delete.execute(request, response);
response.sendRedirect("article.do");
} else if(path.equals("/article")){
//查找全部博文
AllBlog all=new AllBlog();
List<Blog> allBlogs=all.execute(request, response);
BlogNumber number = new BlogNumber();
List<Category> list = number.execute(request, response);
int amount = 0;
for (Category c : list) {
amount = amount + c.getCount();
}
request.setAttribute("allBlogs", allBlogs);
request.setAttribute("list", list);
request.setAttribute("amount", amount);
request.getRequestDispatcher("article.jsp").forward(request,response);
}else if (path.equals("/upload_picture")) {// 用来处理上传图片的请求
UploadPicture upload = new UploadPicture();
upload.execute(request, response);
response.sendRedirect("picture.do");
} else if (path.equals("/picture")) {// 用来获得picture.jsp页面中的信息
Pic p = new Pic();
List<String> list = p.execute(request, response);
NewPicture newP = new NewPicture();
List<Picture> pics = newP.execute(request, response);
request.setAttribute("pic_doc", list);
request.setAttribute("show_pic", pics);
request.getRequestDispatcher("picture.jsp").forward(request,
response);
} else if (path.equals("/show_picture")) {// 用来处理浏览图片辑中图片时的请求,用来查找图片辑中的图片
Pic p = new Pic();
List list = p.execute(request, response);
NewPicture newP = new NewPicture();
request.setAttribute("pic_doc", list);
List<Picture> newpics = newP.execute(request, response);
request.setAttribute("new_pics", newpics);
ShowPicture show = new ShowPicture();
List<Picture> pics = show.execute(request, response);
request.setAttribute("show_pic", pics);
request.getRequestDispatcher("picture.jsp").forward(request,
response);
} else if (path.equals("/add_article")) {// 用类处理发博文请求
AddArticle add = new AddArticle();
add.execute(request, response);
String str=(String) session.getAttribute("previewUrl");
String s=str.substring(url.lastIndexOf("/"));
response.sendRedirect(request.getContextPath(
评论0