package chapter03.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; 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 chapter03.model.User; /** * Servlet implementation class loginServlet */ public class loginServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public loginServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setContentType("text/html;charset=GBK"); String action = request.getParameter("action"); if ("login".equals(action)){ login(request, response); } else if ("check".equals(action)){ check(request, response); } else if ("logout".equals(action)){ logout(request, response); } else{ unlogin(request, response); } } private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String loginUrl = "/login.html"; String fileUrl = "/login?action=check"; HttpSession session = request.getSession(); String userName = request.getParameter("user_name"); String password = request.getParameter("login_password"); // 验证用户ID和密码是否合法,略... ServletContext context = getServletContext(); if (userName == null || userName.equals("")) { RequestDispatcher dispatcher = context.getRequestDispatcher(loginUrl); response.setContentType("text/html;charset=GBK"); dispatcher.forward(request, response); return; } // 登录成功,设置session中的属性 else{ User user = new User(); user.setUserName(userName); session.setAttribute("User", user); RequestDispatcher dispatcher = context.getRequestDispatcher(fileUrl); dispatcher.forward(request, response); } } private void check(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); User user = (User)session.getAttribute("User"); if (user == null) { // 若未登陆,则先跳转到登录页面 response.setContentType("text/html;charset=GBK"); response.setHeader("Refresh", "3; URL=login.html"); PrintWriter out = response.getWriter(); out.println("请先登录!
"); out.println("3秒后跳转到登录页面..."); out.close(); return; } else if(user.getUserName().equals("sss")) { String loginURL = "login?action=login"; String logoutURL = "login?action=logout"; response.setContentType("text/html;charset=GBK"); PrintWriter out = response.getWriter(); out.println("MailServlet:check"); out.println(""); out.println("当前用户为:" + user.getUserName()); out.println("

"); out.println("你的邮箱中有100封邮件"); out.println("

"); out.println("登陆"); out.println("注销"); out.println(""); out.close(); } else { String loginURL = "login?action=login"; response.setContentType("text/html;charset=GBK"); PrintWriter out = response.getWriter(); out.println("MailServlet:check"); out.println(""); out.println(user.getUserName() + "您好!"); out.println("

"); out.println("您无权访问邮件系统。"); out.println("

"); out.println("请重新登陆邮件系统!!"); out.println(""); out.close(); } } private void logout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); User user = (User)session.getAttribute("User"); String name = user.getUserName(); session.invalidate(); String loginURL = "login?action=login"; PrintWriter out = response.getWriter(); out.println("MailServlet:logout"); out.println(""); out.println(name + ",再见!"); out.println("

"); out.println("重新登录邮件系统"); out.println(""); out.close(); } private void unlogin(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { String loginURL = "login?action=login"; response.setContentType("text/html;charset=GBK"); PrintWriter out = response.getWriter(); out.println("MailServlet:unlogout"); out.println(""); out.println("您好!"); out.println("

"); out.println("请您先登陆邮件系统!"); out.println(""); out.close(); } }