From 6cecf8e1a6838fd0a6d07f146366733206995857 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=E5=98=89=E9=98=B3?= Date: Fri, 19 Jan 2018 21:22:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E8=BF=87=E6=BB=A4=E5=99=A8?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- skic/WebRoot/WEB-INF/web.xml | 36 ++++++---- skic/WebRoot/login.jsp | 6 ++ .../WebRoot/{ => page}/adminPage/adminJsp.jsp | 1 + skic/WebRoot/{ => page}/homepage.jsp | 8 +++ skic/WebRoot/{ => page}/messagePage/error.jsp | 0 .../{ => page}/messagePage/messageShow.jsp | 9 ++- .../skic/filter/AdminPermissionFilter.java | 12 ++-- .../src/com/skic/filter/CheckLoginFilter.java | 55 ++++++++++++++++ .../com/skic/service/CheckLoginService.java | 15 +++-- .../com/skic/servlet/CheckLoginServlet.java | 29 +++++++-- .../skic/servlet/CheckRegisterServlet.java | 4 +- skic/src/com/skic/servlet/LogoutServlet.java | 65 +++++++++++++++++++ 12 files changed, 209 insertions(+), 31 deletions(-) rename skic/WebRoot/{ => page}/adminPage/adminJsp.jsp (91%) rename skic/WebRoot/{ => page}/homepage.jsp (71%) rename skic/WebRoot/{ => page}/messagePage/error.jsp (100%) rename skic/WebRoot/{ => page}/messagePage/messageShow.jsp (75%) create mode 100644 skic/src/com/skic/filter/CheckLoginFilter.java create mode 100644 skic/src/com/skic/servlet/LogoutServlet.java diff --git a/skic/WebRoot/WEB-INF/web.xml b/skic/WebRoot/WEB-INF/web.xml index af1d2a0..dd43bfb 100644 --- a/skic/WebRoot/WEB-INF/web.xml +++ b/skic/WebRoot/WEB-INF/web.xml @@ -1,8 +1,6 @@ Scorpion king Information consulting company - - CheckLoginServlet com.skic.servlet.CheckLoginServlet @@ -11,26 +9,40 @@ CheckLoginServlet /CheckLoginServlet - - + CheckRegisterServlet com.skic.servlet.CheckRegisterServlet + + LogoutServlet + com.skic.servlet.LogoutServlet + CheckRegisterServlet /CheckRegisterServlet - - - vipPermissionFilter - com.skic.filter.AdminPermissionFilter + + LogoutServlet + /LogoutServlet + + + CheckLoginFilter + com.skic.filter.CheckLoginFilter - vipPermissionFilter - /adminPage/* + CheckLoginFilter + /page/* - - + + vipPermissionFilter + com.skic.filter.AdminPermissionFilter + + + vipPermissionFilter + /page/adminPage/* + + + index.html index.htm diff --git a/skic/WebRoot/login.jsp b/skic/WebRoot/login.jsp index 6227993..625cb53 100644 --- a/skic/WebRoot/login.jsp +++ b/skic/WebRoot/login.jsp @@ -40,6 +40,12 @@ String basePath = request.getScheme()+"://"+request.getServerName()+":"+request. +<% + if (request.getAttribute("msg") != null) { + out.println( + ""); + } + %>
您提交的信息为
用户名:<%=request.getParameter("userName")%>
- 密码:<%=request.getParameter("passWord1")%>
- "><%=request.getAttribute("Redirct")%> + 密码:<%=request.getParameter("passWord")%>
+ 您是<% + out.print(session.getAttribute("adminflag")+" "); + out.print(session.getAttribute("vipflag")+" "); + out.print(session.getAttribute("rootflag")+" "); + %>
+ "><%=request.getAttribute("Redirct")%> diff --git a/skic/src/com/skic/filter/AdminPermissionFilter.java b/skic/src/com/skic/filter/AdminPermissionFilter.java index 0bfaaba..8136c2a 100644 --- a/skic/src/com/skic/filter/AdminPermissionFilter.java +++ b/skic/src/com/skic/filter/AdminPermissionFilter.java @@ -36,21 +36,23 @@ public class AdminPermissionFilter implements Filter { HttpServletResponse resp = (HttpServletResponse)response; String servletPathString = req.getServletPath(); HttpSession session = req.getSession(); - String flag = (String) session.getAttribute("adminflag"); + String flag = session.getAttribute("login_status").toString(); + String adminflag = session.getAttribute("adminflag").toString(); + String rootflag = session.getAttribute("rootflag").toString(); if (servletPathString!= null &&(servletPathString.equals("/login.jsp"))|| - (servletPathString.equals("/homepage.jsp"))|| + (servletPathString.equals("/page/homepage.jsp"))|| (servletPathString.equalsIgnoreCase("/CheckLoginServlet")) ) { chain.doFilter(request, response); }else { - if (flag!= null && flag.equals("admin")) { + if (flag.equals("1") && rootflag.equals("超级管理员")||adminflag.equals("管理员")) { chain.doFilter(request, response); - }else if (flag!=null&&flag.equals("error")) { + }else if (flag.equals("1")&&adminflag.equals("")) { req.setAttribute("msg", "你不是管理员!"); req.setAttribute("return_uri", servletPathString); - RequestDispatcher rd = req.getRequestDispatcher("/homepage.jsp"); + RequestDispatcher rd = req.getRequestDispatcher("/page/homepage.jsp"); rd.forward(req, resp); }else { req.setAttribute("msg", "您尚未登录"); diff --git a/skic/src/com/skic/filter/CheckLoginFilter.java b/skic/src/com/skic/filter/CheckLoginFilter.java new file mode 100644 index 0000000..d2b0cdb --- /dev/null +++ b/skic/src/com/skic/filter/CheckLoginFilter.java @@ -0,0 +1,55 @@ +package com.skic.filter; + +import java.io.IOException; +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +public class CheckLoginFilter implements Filter { + + /** + * Default constructor. + */ + public CheckLoginFilter() { + + } + + /** + * @see Filter#destroy() + */ + public void destroy() { + + } + + /** + * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) + */ + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + HttpServletRequest req = (HttpServletRequest)request; + HttpServletResponse resp = (HttpServletResponse)response; + HttpSession session = req.getSession(); + if (session.getAttribute("login_status")!=null) { + chain.doFilter(request, response); + }else{ + req.setAttribute("msg", "您尚未登录"); + RequestDispatcher rd = req.getRequestDispatcher("/login.jsp"); + rd.forward(req, resp); + } + + } + + /** + * @see Filter#init(FilterConfig) + */ + public void init(FilterConfig fConfig) throws ServletException { + + } + +} diff --git a/skic/src/com/skic/service/CheckLoginService.java b/skic/src/com/skic/service/CheckLoginService.java index ec14fef..ec36649 100644 --- a/skic/src/com/skic/service/CheckLoginService.java +++ b/skic/src/com/skic/service/CheckLoginService.java @@ -1,6 +1,8 @@ package com.skic.service; import java.sql.*; +import java.util.HashMap; +import java.util.Map; import com.skic.DAO.UserDAO; import com.skic.DAO.impl.UserDAOimpl; @@ -10,18 +12,23 @@ import com.skic.util.ConnectionFactory; public class CheckLoginService { private UserDAO userdao = new UserDAOimpl(); - public boolean CheckUser(UserDTO USERDTO) { + public Map CheckUser(UserDTO USERDTO) { Connection conn = null; - + Map flagTypeMap = new HashMap(); try { conn = ConnectionFactory.getInstance().makeConnection(); conn.setAutoCommit(false); ResultSet resultSet1 = userdao.select(conn, USERDTO);//调用数据库查询 conn.commit(); if (resultSet1.next()) {//查询账号是否存在 - return true; + flagTypeMap.put("login_status",1);//1表示登录成功 + flagTypeMap.put("vipflag",resultSet1.getInt("col_vipFlag")); + flagTypeMap.put("adminflag",resultSet1.getInt("col_adminFlag")); + flagTypeMap.put("rootflag",resultSet1.getInt("col_rootFlag")); }else { + flagTypeMap.put("login_status",0); } + System.out.println("login_status"+flagTypeMap.get("login_status")+"adminflag = "+flagTypeMap.get("adminflag")+"vipflag = "+flagTypeMap.get("vipflag")+"rootflag = "+flagTypeMap.get("rootflag")); } catch (SQLException e) { System.out.println("获取查询结果失败"); e.printStackTrace(); @@ -43,6 +50,6 @@ public class CheckLoginService { } } - return false; + return flagTypeMap; } } diff --git a/skic/src/com/skic/servlet/CheckLoginServlet.java b/skic/src/com/skic/servlet/CheckLoginServlet.java index 851f8ad..e75486a 100644 --- a/skic/src/com/skic/servlet/CheckLoginServlet.java +++ b/skic/src/com/skic/servlet/CheckLoginServlet.java @@ -1,6 +1,7 @@ package com.skic.servlet; import java.io.IOException; +import java.util.Map; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; @@ -34,21 +35,37 @@ public class CheckLoginServlet extends HttpServlet { request.setCharacterEncoding("utf-8"); String userName = request.getParameter("userName"); String passWord = request.getParameter("passWord"); + String adminflag = ""; + String vipflag = ""; + String rootflag = ""; RequestDispatcher rd = null; String forwardString = null; if (userName==null||passWord==null) { request.setAttribute("msg", "用户名或密码为空"); - rd = request.getRequestDispatcher("/messagePage/error.jsp"); + rd = request.getRequestDispatcher("/page/messagePage/error.jsp"); rd.forward(request, response); }else { UserDTO user = new UserDTO(); user.setUserName(userName); user.setPassword(passWord); - boolean bool = cks.CheckUser(user); - System.out.println(bool); - if (bool) { + Map rsMap = cks.CheckUser(user); + request.getSession().setAttribute("login_status", rsMap.get("login_status"));//存储登录状态 + if (rsMap.get("login_status")==1) { request.setAttribute("msg", "登录成功"); - request.setAttribute("RedirctURL", "homepage.jsp"); + if (rsMap.get("adminflag")==1) { + adminflag = "管理员"; + } + if (rsMap.get("vipflag")==1) { + vipflag = "VIP用户"; + } + if (rsMap.get("rootflag")==1) { + rootflag = "超级管理员"; + } + request.getSession().setAttribute("adminflag", adminflag); + request.getSession().setAttribute("vipflag", vipflag); + request.getSession().setAttribute("rootflag", rootflag); + System.out.println("adminflag="+adminflag+" vipflag="+" rootflag="); + request.setAttribute("RedirctURL", "/page/homepage.jsp"); request.setAttribute("Redirct", "前往主页"); //forwardString = "/messagePage/messageShow.jsp"; }else { @@ -56,7 +73,7 @@ public class CheckLoginServlet extends HttpServlet { request.setAttribute("RedirctURL", "register.jsp"); request.setAttribute("Redirct", "返回登录"); } - forwardString = "/messagePage/messageShow.jsp"; + forwardString = "/page/messagePage/messageShow.jsp"; rd = request.getRequestDispatcher(forwardString); rd.forward(request, response); } diff --git a/skic/src/com/skic/servlet/CheckRegisterServlet.java b/skic/src/com/skic/servlet/CheckRegisterServlet.java index ce52e5e..dea1b9f 100644 --- a/skic/src/com/skic/servlet/CheckRegisterServlet.java +++ b/skic/src/com/skic/servlet/CheckRegisterServlet.java @@ -41,7 +41,7 @@ public class CheckRegisterServlet extends HttpServlet { String forwardString = null; if (userName==null||passWord==null) { request.setAttribute("msg", "用户名或密码为空"); - rd = request.getRequestDispatcher("/messagePage/error.jsp"); + rd = request.getRequestDispatcher("/page/messagePage/error.jsp"); rd.forward(request, response); }else { UserDTO user = new UserDTO(); @@ -62,7 +62,7 @@ public class CheckRegisterServlet extends HttpServlet { request.setAttribute("RedirctURL", "register.jsp"); request.setAttribute("Redirct", "重新注册"); } - forwardString = "/messagePage/messageShow.jsp"; + forwardString = "/page/messagePage/messageShow.jsp"; rd = request.getRequestDispatcher(forwardString); rd.forward(request, response); } diff --git a/skic/src/com/skic/servlet/LogoutServlet.java b/skic/src/com/skic/servlet/LogoutServlet.java new file mode 100644 index 0000000..1f74579 --- /dev/null +++ b/skic/src/com/skic/servlet/LogoutServlet.java @@ -0,0 +1,65 @@ +package com.skic.servlet; + +import java.io.IOException; +import java.io.PrintWriter; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class LogoutServlet extends HttpServlet { + + /** + * Constructor of the object. + */ + public LogoutServlet() { + super(); + } + + /** + * Destruction of the servlet.
+ */ + public void destroy() { + super.destroy(); + } + + /** + * The doGet method of the servlet.
+ * + * This method is called when a form has its tag value method equals to get. + * + * @param request the request send by the client to the server + * @param response the response send by the server to the client + * @throws ServletException if an error occurred + * @throws IOException if an error occurred + */ + public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doPost(request, response); + } + + /** + * The doPost method of the servlet.
+ * + * This method is called when a form has its tag value method equals to post. + * + * @param request the request send by the client to the server + * @param response the response send by the server to the client + * @throws ServletException if an error occurred + * @throws IOException if an error occurred + */ + public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + request.getSession().invalidate(); + response.sendRedirect(request.getContextPath()+"/index.jsp"); + } + + /** + * Initialization of the servlet.
+ * + * @throws ServletException if an error occurs + */ + public void init() throws ServletException { + + } + +}