2020-05-15
这个有点像快递站点(快递应该有学我们计算机思想的)
接收快递,发送快递到客户手上
接收界面信息,发生到下一级
AdminServlet
1 package com.jsj.web; 2 3 import com.jsj.entity.Admin; 4 import com.jsj.factory.ServiceFactory; 5 import com.jsj.service.AdminService; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.annotation.WebServlet; 9 import javax.servlet.http.HttpServlet; 10 import javax.servlet.http.HttpServletRequest; 11 import javax.servlet.http.HttpServletResponse; 12 import java.io.IOException; 13 import java.io.PrintWriter; 14 15 //注解用于标注在一个继承了HttpServlet类之上,属于类级别的注解。 16 @WebServlet("/admin") 17 public class AdminServlet extends HttpServlet { 18 19 //调用工厂类创建对象 20 //括号是强制转换 21 private AdminService adminService = (AdminService) ServiceFactory.getService("AdminService"); 22 23 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { 24 response.setContentType("text/html;charset=UTF-8"); 25 try(PrintWriter out = response.getWriter()){ 26 /* 27 getParameter:它是一种取参数的方法。把jsp文件中的数据读取到出来。然后就可以封装利用起来 28 */ 29 String username = request.getParameter("username"); 30 String password = request.getParameter("password"); 31 32 //调用service层的login方法 33 Admin admin = adminService.login(username,password); 34 35 if (admin.getId()!=null){ 36 37 request.getSession().setAttribute("adminStatus",true); 38 request.getSession().setAttribute("admin",admin); 39 out.println("登录成功,3秒后跳转到管理中心!如果没有跳转请点<a href='/admin/manage'>这里</a>"); 40 response.setHeader("refresh", "2;url=/admin/manage"); 41 }else { 42 out.println("用户名或密码错误,请<a href='/admin'>重试</a>"); 43 // 二秒跳到其他页面 response.setHeader("refresh","2;URL=otherPagename"); 44 response.setHeader("refresh", "2;url=/admin"); 45 } 46 } 47 } 48 49 @Override 50 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { 51 request.getRequestDispatcher("/WEB-INF/view/admin/login.jsp").forward(request,response); 52 } 53 }
IndexServlet
1 package com.jsj.web; 2 3 import com.jsj.entity.NewsCateVo; 4 import com.jsj.entity.NewsCate; 5 import com.jsj.factory.ServiceFactory; 6 import com.jsj.service.NewsCateService; 7 8 import javax.servlet.ServletException; 9 import javax.servlet.annotation.WebServlet; 10 import javax.servlet.http.HttpServlet; 11 import javax.servlet.http.HttpServletRequest; 12 import javax.servlet.http.HttpServletResponse; 13 import java.io.IOException; 14 import java.util.List; 15 16 @WebServlet("/index") 17 public class IndexServlet extends HttpServlet { 18 19 private NewsCateService newsCateService = (NewsCateService) ServiceFactory.getService("NewsCateService"); 20 21 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 22 List<NewsCate> allCate = newsCateService.getAllCate(); 23 request.setAttribute("allCate",allCate); 24 List<NewsCateVo> allNewsCateVo = newsCateService.getAllNewsCateVo(5); 25 request.setAttribute("allNewsCateVo", allNewsCateVo); 26 request.getRequestDispatcher("/WEB-INF/view/index.jsp").forward(request,response); 27 } 28 29 }
LoginServlet
1 package com.jsj.web; 2 3 import com.jsj.entity.User; 4 import com.jsj.factory.ServiceFactory; 5 import com.jsj.service.UserService; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.annotation.WebServlet; 9 import javax.servlet.http.Cookie; 10 import javax.servlet.http.HttpServlet; 11 import javax.servlet.http.HttpServletRequest; 12 import javax.servlet.http.HttpServletResponse; 13 import java.io.IOException; 14 import java.io.PrintWriter; 15 16 @WebServlet("/login") 17 public class LoginServlet extends HttpServlet { 18 //通过ServiceFactory工厂生产UserService对象 19 private UserService userService = (UserService) ServiceFactory.getService("UserService"); 20 21 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { 22 //设置编码方式,中文不会出现乱码 23 response.setContentType("text/html;charset=UTF-8"); 24 25 try(PrintWriter out = response.getWriter()){ 26 //获取login.jsp界面的用户名和密码 27 String username = request.getParameter("username"); 28 String password = request.getParameter("password"); 29 30 31 //通过调用login方法查询账号密码,返回对象 32 User user = userService.login(username,password); 33 //如果账号密码正确的话,id就不为空 34 if (user.getId()!=null){ 35 //判断是否有点 记住我这个 36 if (request.getParameter("remember")!=null){ 37 //创建cookie对象,参数分别代表 cookie名称 和 值 38 Cookie usernameCookie = new Cookie("rememberUsername",username); 39 //是设置cookie最大保存时间 40 usernameCookie.setMaxAge(7*24*60*60); 41 //创建cookie对象,参数分别代表 cookie名称 和 值 42 Cookie passwordCookie = new Cookie("rememberPassword",password); 43 //是设置cookie最大保存时间 44 passwordCookie.setMaxAge(7*24*60*60); 45 //添加cookie到服务百器端。可以使用抓包工具查看到,然后服务器给浏览器返回set-cookie键值对 46 response.addCookie(usernameCookie); 47 response.addCookie(passwordCookie); 48 } 49 //这个登录成功后跳到index.jsp(主界面) 50 out.println("登录成功,3秒后跳转到首页!如果没有跳转请点<a href='/'>这里</a>"); 51 //参数表示 session的名称 和 值(对象) 52 request.getSession().setAttribute("userStatus",true); 53 request.getSession().setAttribute("user",user); 54 //设置表头,刷新 55 response.setHeader("refresh", "2;url=/"); 56 }else { 57 out.println("用户名或密码错误,请<a href='/login'>重试</a>"); 58 response.setHeader("refresh", "2;url=/login"); 59 } 60 } 61 } 62 63 @Override 64 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 65 Cookie[] cookies = request.getCookies(); 66 //这个是判断记住密码时 67 for (Cookie cookie:cookies) { 68 //这是获得账号 69 if (cookie.getName().equals("rememberUsername")){ 70 request.setAttribute("rememberUsername",cookie.getValue()); 71 } 72 //这是获得密码 73 if (cookie.getName().equals("rememberPassword")){ 74 request.setAttribute("rememberPassword",cookie.getValue()); 75 } 76 } 77 //重定向,将账号密码传过去 78 request.getRequestDispatcher("/WEB-INF/view/login.jsp").forward(request,response); 79 } 80 }
LogoutServlet
1 package com.jsj.web; 2 3 import javax.servlet.annotation.WebServlet; 4 import javax.servlet.http.HttpServlet; 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletResponse; 7 import java.io.IOException; 8 9 @WebServlet("/logout") 10 public class LogoutServlet extends HttpServlet { 11 12 @Override 13 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { 14 // 15 response.setContentType("text/html;charset=UTF-8"); 16 if (request.getSession().getAttribute("user")!=null){ 17 request.getSession().removeAttribute("userStatus"); 18 request.getSession().removeAttribute("user"); 19 } 20 if (request.getSession().getAttribute("admin")!=null){ 21 request.getSession().removeAttribute("adminStatus"); 22 request.getSession().removeAttribute("admin"); 23 } 24 response.getWriter().println("注销成功,3秒后跳转到首页!如果没有跳转请点<a href='/'>这里</a>"); 25 response.setHeader("refresh", "2;url=/"); 26 } 27 }
NewsCateServlet
1 package com.jsj.web; 2 3 import com.jsj.entity.News; 4 import com.jsj.entity.NewsCate; 5 import com.jsj.entity.Page; 6 import com.jsj.factory.ServiceFactory; 7 import com.jsj.service.NewsCateService; 8 import com.jsj.service.NewsService; 9 10 import javax.servlet.ServletException; 11 import javax.servlet.annotation.WebServlet; 12 import javax.servlet.http.HttpServlet; 13 import javax.servlet.http.HttpServletRequest; 14 import javax.servlet.http.HttpServletResponse; 15 import java.io.IOException; 16 import java.util.List; 17 18 @WebServlet("/newsCate") 19 public class NewsCateServlet extends HttpServlet { 20 21 private NewsService newsService = (NewsService) ServiceFactory.getService("NewsService"); 22 23 private NewsCateService newsCateService = (NewsCateService) ServiceFactory.getService("NewsCateService"); 24 25 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 26 try { 27 int cateId = Integer.valueOf(request.getParameter("cateId")); 28 NewsCate newsCate = newsCateService.getNewsCateById(cateId); 29 if (newsCate == null){ 30 request.getRequestDispatcher("/WEB-INF/view/error/error.jsp").forward(request, response); 31 }else { 32 int pageIndex = request.getParameter("pageIndex") == null ? 1 : Integer.valueOf(request.getParameter("pageIndex")); 33 int pageSize = 10; 34 Page<News> newsPage = newsService.getNewsPageByCate(cateId,pageIndex,pageSize); 35 if (newsPage.getBeanList() == null || newsPage.getBeanList().size() == 0){ 36 request.getRequestDispatcher("/WEB-INF/view/error/error.jsp").forward(request, response); 37 } 38 request.setAttribute("newsPage", newsPage); 39 request.setAttribute("cate",newsCate); 40 List<NewsCate> allCate = newsCateService.getAllCate(); 41 request.setAttribute("allCate",allCate); 42 request.getRequestDispatcher("/WEB-INF/view/newsCate.jsp").forward(request,response); 43 } 44 }catch (Exception e){ 45 request.getRequestDispatcher("/WEB-INF/view/error/error.jsp").forward(request, response); 46 } 47 48 } 49 }
NewsServlet
1 package com.jsj.web; 2 3 import com.jsj.entity.News; 4 import com.jsj.entity.NewsCate; 5 import com.jsj.factory.ServiceFactory; 6 import com.jsj.service.NewsCateService; 7 import com.jsj.service.NewsService; 8 9 import javax.servlet.ServletException; 10 import javax.servlet.annotation.WebServlet; 11 import javax.servlet.http.HttpServlet; 12 import javax.servlet.http.HttpServletRequest; 13 import javax.servlet.http.HttpServletResponse; 14 import java.io.IOException; 15 import java.util.List; 16 17 @WebServlet("/news") 18 public class NewsServlet extends HttpServlet { 19 20 private NewsService newsService = (NewsService) ServiceFactory.getService("NewsService"); 21 22 private NewsCateService newsCateService = (NewsCateService) ServiceFactory.getService("NewsCateService"); 23 24 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 25 try { 26 int newsId = Integer.valueOf(request.getParameter("newsId")); 27 News news = newsService.getNewsById(newsId); 28 if (news == null){ 29 request.getRequestDispatcher("/WEB-INF/view/error/error.jsp").forward(request, response); 30 }else { 31 request.setAttribute("news",news); 32 List<NewsCate> allCate = newsCateService.getAllCate(); 33 request.setAttribute("allCate",allCate); 34 request.getRequestDispatcher("/WEB-INF/view/news.jsp").forward(request,response); 35 } 36 }catch (Exception e){ 37 request.getRequestDispatcher("/WEB-INF/view/error/error.jsp").forward(request, response); 38 } 39 40 } 41 }
RegisisterServlet
1 package com.jsj.web; 2 3 import com.jsj.entity.User; 4 import com.jsj.factory.ServiceFactory; 5 import com.jsj.service.UserService; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.annotation.WebServlet; 9 import javax.servlet.http.HttpServlet; 10 import javax.servlet.http.HttpServletRequest; 11 import javax.servlet.http.HttpServletResponse; 12 import java.io.IOException; 13 import java.io.PrintWriter; 14 import java.text.DateFormat; 15 import java.text.ParseException; 16 import java.text.SimpleDateFormat; 17 18 @WebServlet("/register") 19 public class RegisterServlet extends HttpServlet { 20 21 private UserService userService = (UserService) ServiceFactory.getService("UserService"); 22 23 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { 24 //告诉你我是用utf -8编码的 25 response.setContentType("text/html;charset=UTF-8"); 26 27 try(PrintWriter out = response.getWriter()){ 28 //创建实体对象 29 User user = new User(); 30 //获取用户名加密码 31 user.setUsername(request.getParameter("username")); 32 user.setPassword(request.getParameter("password")); 33 //日期格式化 34 DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 35 try { 36 //获取生日日期 37 user.setBirthday(dateFormat.parse(request.getParameter("birthday"))); 38 } catch (ParseException ignored) {} 39 //获取邮箱 40 user.setEmail(request.getParameter("email")); 41 //获取手机号 42 user.setTelNumber(request.getParameter("telNumber")); 43 44 int res = userService.register(user); 45 46 if (res>0){ 47 out.println("注册成功,3秒后跳转到首页!或现在去<a href='/login'>登录</a>"); 48 response.setHeader("refresh", "2;url=/"); 49 }else { 50 out.println("注册失败!请<a href='/register'>重试</a>重试"); 51 response.setHeader("refresh", "2;url=/register"); 52 } 53 } 54 } 55 56 @Override 57 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 58 request.getRequestDispatcher("/WEB-INF/view/register.jsp").forward(request,response); 59 } 60 }