From c6330cb71c94b8af59d73bb56873df08827ebe50 Mon Sep 17 00:00:00 2001 From: wlf <920607690@qq.com> Date: Sat, 12 Jan 2019 22:37:32 +0800 Subject: [PATCH] Merge branch 'master' of https://bdgit.educoder.net/zhailw/gdms into wlf # Conflicts: # GDMS.iml # src/servlet/account/login.java --- GDMS.iml | 4 +- src/servlet/S_TeaccherSelectStudent.java | 4 -- src/servlet/S_TeacherSelectStudent.java | 19 ++++++++++ src/servlet/account/S_Register.java | 6 +++ src/servlet/basic_settings/S_Filter.java | 48 +++++++++++++++++++++--- web/login.jsp | 2 +- 6 files changed, 70 insertions(+), 13 deletions(-) delete mode 100644 src/servlet/S_TeaccherSelectStudent.java create mode 100644 src/servlet/S_TeacherSelectStudent.java diff --git a/GDMS.iml b/GDMS.iml index 3a5c57b..34d2f99 100644 --- a/GDMS.iml +++ b/GDMS.iml @@ -19,15 +19,15 @@ + - + - \ No newline at end of file diff --git a/src/servlet/S_TeaccherSelectStudent.java b/src/servlet/S_TeaccherSelectStudent.java deleted file mode 100644 index 1a1cf25..0000000 --- a/src/servlet/S_TeaccherSelectStudent.java +++ /dev/null @@ -1,4 +0,0 @@ -package servlet; - -public class S_TeaccherSelectStudent { -} diff --git a/src/servlet/S_TeacherSelectStudent.java b/src/servlet/S_TeacherSelectStudent.java new file mode 100644 index 0000000..71e0c42 --- /dev/null +++ b/src/servlet/S_TeacherSelectStudent.java @@ -0,0 +1,19 @@ +package servlet; + +import core.user.User; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +public class S_TeacherSelectStudent extends HttpServlet { + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + super.doPost(request, response); + String teacher_id=request.getParameter("id"); + User user=(User)request.getSession().getAttribute("User"); + String student_id=user.getId(); + + } +} diff --git a/src/servlet/account/S_Register.java b/src/servlet/account/S_Register.java index 6dcef13..b3397fb 100644 --- a/src/servlet/account/S_Register.java +++ b/src/servlet/account/S_Register.java @@ -2,12 +2,14 @@ package servlet.account; import core.user.User; import core.user.utils.AccountManagement; +import error.GExcptAccount; import error.GExcptSQL; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.sql.SQLException; import java.util.HashMap; import java.util.Map; @@ -31,6 +33,10 @@ public class S_Register extends HttpServlet { user = AccountManagement.register("student",user_info); } catch (GExcptSQL gExcptSQL) { gExcptSQL.printStackTrace(); + } catch (GExcptAccount gExcptAccount) { + gExcptAccount.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); } //注册失败 request.getSession().setAttribute("User",user); diff --git a/src/servlet/basic_settings/S_Filter.java b/src/servlet/basic_settings/S_Filter.java index b8144e1..610ec49 100644 --- a/src/servlet/basic_settings/S_Filter.java +++ b/src/servlet/basic_settings/S_Filter.java @@ -1,17 +1,53 @@ package servlet.basic_settings; import javax.servlet.*; +import javax.servlet.annotation.WebFilter; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; import java.io.IOException; - +@WebFilter(filterName = "sessionFilter",urlPatterns = {"/*"}) public class S_Filter implements Filter { + String NO_LOGIN="/notLogin"; + String[] includeUrls=new String[]{"redirect:http://localhost:8080/firstproject/demo/Front-end/Login/Login.html","redirect:http://localhost:8080/firstproject/demo/Front-end/Login/Login1.html"}; + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException,IOException{ + HttpServletRequest request=(HttpServletRequest) servletRequest; + HttpServletResponse response=(HttpServletResponse) servletResponse; + HttpSession session=request.getSession(false); + String uri=request.getRequestURI(); + //是否需要过滤 + boolean needFilter=isNeedFilter(uri); + if(!needFilter){ + filterChain.doFilter(servletRequest,servletResponse); + }else{ + //需要过滤器 + //session中包含user对象,则是登录状态 + if(session!=null&&session.getAttribute("user")!=null){ + filterChain.doFilter(servletRequest,servletResponse); + }else{ + String requestType=request.getHeader("X-Requested-with"); + //判断是否是ajax请求 + if(requestType!=null&&"XMLHttpRequest".equals(requestType)){ + response.sendRedirect(NO_LOGIN); + }else{ + //重定向到登录页(需要在static文件夹下建立此html文件) + response.sendRedirect(request.getContextPath()+"redirect:http://localhost:8080/firstproject/demo/Front-end/Login/Login.html"); + } + return; + } + } - public void init(FilterConfig filterConfig) throws ServletException { } - public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { - + public boolean isNeedFilter(String uri) { + for (String includeUrl : includeUrls) { + if (includeUrl.equals(uri)) { + return false; + } + } + return true; } - public void destory(){ - } + } diff --git a/web/login.jsp b/web/login.jsp index 82983d5..92fda2b 100644 --- a/web/login.jsp +++ b/web/login.jsp @@ -56,7 +56,7 @@