diff --git a/src/com/hellogithub/dao/UserDao.java b/src/com/hellogithub/dao/UserDao.java index 6869e0b..5386991 100644 --- a/src/com/hellogithub/dao/UserDao.java +++ b/src/com/hellogithub/dao/UserDao.java @@ -2,11 +2,10 @@ package com.hellogithub.dao; import com.hellogithub.entity.userEntity; import com.hellogithub.utils.JdbcUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanHandler; -import java.sql.Connection; -import java.sql.Date; -import java.sql.PreparedStatement; -import java.sql.ResultSet; +import java.sql.*; /** * 用户Dao层 @@ -113,4 +112,62 @@ public class UserDao { JdbcUtils.closeConnection(resultSet, preparedStatement, connection); } } + /* + * + * 根据用户名和选取标签进行删除 + * */ + public int dedletePieceLabel(String name,String str){ + String label; + int num; + try { + Connection conn = JdbcUtils.getConnection(); + QueryRunner runner = new QueryRunner(); + String sql = "select searchHistory from user where userName=?"; + label = runner.query(conn, sql, new BeanHandler<>(String.class),name); + label=label.replace(str,""); + sql="UPDATE user SET searchHistory = ? WHERE userName= ?"; + num = runner.update(conn,sql,label,name); + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return num; + } + /* + * + * 根据用户名返回搜索历史 + * */ + public String selectLabel(String name){ + String label; + try { + Connection conn = JdbcUtils.getConnection(); + QueryRunner runner = new QueryRunner(); + String sql = "select searchHistory from user where userName=?"; + label = runner.query(conn, sql, new BeanHandler<>(String.class),name); + + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return label; + } + + /* + * + * 根据用户名和选取标签进行删除 + * */ + public int dedleteAllLabel(String name){ + String label=""; + int num; + try { + Connection conn = JdbcUtils.getConnection(); + QueryRunner runner = new QueryRunner(); + String sql="UPDATE user SET searchHistory = ? WHERE userName= ?"; + num = runner.update(conn,sql,label,name); + } catch (SQLException e) { + throw new RuntimeException(e); + } + + return num; + } } diff --git a/src/com/hellogithub/dao/projectDao.java b/src/com/hellogithub/dao/projectDao.java index 84ef576..dc9fe02 100644 --- a/src/com/hellogithub/dao/projectDao.java +++ b/src/com/hellogithub/dao/projectDao.java @@ -13,7 +13,11 @@ import java.util.List; public class projectDao { - + /** + * 按照期刊号查询 + * + * @param num + */ public List retTerm(String num) { List projectEntityList; try { @@ -21,12 +25,17 @@ public class projectDao { QueryRunner runner = new QueryRunner(); String sql = "select * from project where periodicals = ?"; projectEntityList = runner.query(conn, sql, new BeanListHandler<>(projectEntity.class), num); + conn.close(); } catch (SQLException e) { throw new RuntimeException(e); } return projectEntityList; } - + /** + * 返回最新期刊数字 + * + * + */ public int latestNum() { projectEntity projectEntity; try { @@ -34,12 +43,17 @@ public class projectDao { QueryRunner runner = new QueryRunner(); String sql = "select * from project Group BY periodicals DESC limit 1"; projectEntity = runner.query(conn, sql, new BeanHandler<>(projectEntity.class)); + conn.close(); } catch (SQLException e) { throw new RuntimeException(e); } return projectEntity.getPeriodicals(); } - + /** + * 返回最所有项目总数 + * + * + */ public int countAll() { int count; try { @@ -47,12 +61,17 @@ public class projectDao { QueryRunner runner = new QueryRunner(); String sql = "select count(1) from project"; count = runner.query(conn, sql, new BeanHandler<>(Integer.class)); + conn.close(); } catch (SQLException e) { throw new RuntimeException(e); } return count; } - + /** + * 按照分类检索项目 + * + * + */ public List retCate(int num) { List projectEntityList; @@ -61,6 +80,7 @@ public class projectDao { QueryRunner runner = new QueryRunner(); String sql = "select * from project where categoryId = ?"; projectEntityList = runner.query(conn, sql, new BeanListHandler<>(projectEntity.class), num); + conn.close(); } catch (SQLException e) { throw new RuntimeException(e); } diff --git a/src/com/hellogithub/service/UserService.java b/src/com/hellogithub/service/UserService.java index 8bef108..ee72182 100644 --- a/src/com/hellogithub/service/UserService.java +++ b/src/com/hellogithub/service/UserService.java @@ -31,4 +31,20 @@ public class UserService { public userEntity findByUserName(String userName) { return userDao.findByUserName(userName); } + /** + * 根据用户名和选取标签进行删除 + * @param name + * @param str + * */ + public int dedletePieceLabel(String name,String str){ return userDao.dedletePieceLabel(name, str);} + /** + * 根据用户名返回搜索历史 + * @param name + * */ + public String selectLabel(String name){return userDao.selectLabel(name);} + /** + * 根据用户名和选取标签进行删除 + * @param name + * */ + public int dedleteAllLabel(String name){return userDao.dedleteAllLabel(name);} } diff --git a/src/com/hellogithub/service/projectService.java b/src/com/hellogithub/service/projectService.java index 3d92e3c..2ccae54 100644 --- a/src/com/hellogithub/service/projectService.java +++ b/src/com/hellogithub/service/projectService.java @@ -8,19 +8,29 @@ import java.util.List; public class projectService { private projectDao projectDao = new projectDao(); - - public List retTerm(String num) { - return projectDao.retTerm(num); - } - - public int latestNum() { - return projectDao.latestNum(); - } - - public int countAll() { - return projectDao.countAll(); - } - + /** + * 按照期刊号查询 + * + * @param num + */ + public List retTerm(String num){return projectDao.retTerm(num);} + /** + * 返回最新期刊数字 + * + * + */ + public int latestNum() {return projectDao.latestNum();} + /** + * 返回最所有项目总数 + * + * + */ + public int countAll() {return projectDao.countAll();} + /** + * 按照分类检索项目 + * + * + */ public List retCate(int num) { return projectDao.retCate(num); } diff --git a/src/com/hellogithub/servlet/VerifycodeServlet.java b/src/com/hellogithub/servlet/VerifycodeServlet.java index c3887f6..470884d 100644 --- a/src/com/hellogithub/servlet/VerifycodeServlet.java +++ b/src/com/hellogithub/servlet/VerifycodeServlet.java @@ -25,7 +25,7 @@ public class VerifycodeServlet extends HttpServlet { // request.setCharacterEncoding("UTF-8"); // response.setCharacterEncoding("UTF-8"); // response.setContentType("text/html; charset=utf-8"); - // 设置响应头允许ajax跨域访问 + // 设置响应头允许ajax跨域访问` // response.setHeader("Access-Control-Allow-Origin", "*"); // response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); // response.setHeader("Access-Control-Max-Age", "3600"); diff --git a/src/com/hellogithub/servlet/deleteAllLabelServlet.java b/src/com/hellogithub/servlet/deleteAllLabelServlet.java new file mode 100644 index 0000000..99c224c --- /dev/null +++ b/src/com/hellogithub/servlet/deleteAllLabelServlet.java @@ -0,0 +1,64 @@ +package com.hellogithub.servlet; + +import com.alibaba.fastjson.JSONObject; +import com.hellogithub.service.UserService; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.HashMap; + +public class deleteAllLabelServlet extends HttpServlet { + private UserService userService = new UserService(); + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + doPost(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + resp.setCharacterEncoding("UTF-8"); + resp.setContentType("text/html; charset=utf-8"); + // 设置响应头允许ajax跨域访问 + String curOrigin = req.getHeader("Origin"); + resp.setHeader("Access-Control-Allow-Origin", curOrigin == null ? "true" : curOrigin); + resp.setHeader("Access-Control-Allow-Credentials", "true"); + resp.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, HEAD"); + resp.setHeader("Access-Control-Max-Age", "3600"); + resp.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin, authority, content-type, version-info, X-Requested-With"); + resp.setContentType("application/json;charset=UTF-8"); + + PrintWriter writer = resp.getWriter(); + HttpSession session = req.getSession(); + String name = (String)session.getAttribute("username"); + + //返回处理行数,如果为零则代表处理零条结果 + int num = userService.dedleteAllLabel(name); + if(num == 0 ){ + setResultError("删除失败",writer); + }else{ + setResultOK("删除成功",writer); + } + + } + public void setResult(Integer code, String msg, PrintWriter writer) { + HashMap result = new HashMap<>(); + result.put("code", code); + result.put("msg", msg); + String jsonString = JSONObject.toJSONString(result); + writer.println(jsonString); + writer.close(); + } + + public void setResultError(String msg, PrintWriter writer) { + setResult(500, msg, writer); + } + + public void setResultOK(String msg, PrintWriter writer) { + setResult(200, msg, writer); + } +} diff --git a/src/com/hellogithub/servlet/deletelabelServlet.java b/src/com/hellogithub/servlet/deletelabelServlet.java new file mode 100644 index 0000000..4f35fec --- /dev/null +++ b/src/com/hellogithub/servlet/deletelabelServlet.java @@ -0,0 +1,64 @@ +package com.hellogithub.servlet; + +import com.alibaba.fastjson.JSONObject; +import com.hellogithub.service.UserService; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.HashMap; + +public class deletelabelServlet extends HttpServlet { + private UserService userService = new UserService(); + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + doPost(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + resp.setCharacterEncoding("UTF-8"); + resp.setContentType("text/html; charset=utf-8"); + // 设置响应头允许ajax跨域访问 + String curOrigin = req.getHeader("Origin"); + resp.setHeader("Access-Control-Allow-Origin", curOrigin == null ? "true" : curOrigin); + resp.setHeader("Access-Control-Allow-Credentials", "true"); + resp.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, HEAD"); + resp.setHeader("Access-Control-Max-Age", "3600"); + resp.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin, authority, content-type, version-info, X-Requested-With"); + resp.setContentType("application/json;charset=UTF-8"); + PrintWriter writer = resp.getWriter(); + + HttpSession session = req.getSession(); + String name = (String)session.getAttribute("username"); + String str = req.getParameter("xxxxx"); + + int num = userService.dedletePieceLabel(name,str); + //返回处理行数,如果为零则代表处理零条结果 + if(num == 0 ){ + setResultError("删除失败",writer); + }else{ + setResultOK("删除成功",writer); + } + } + public void setResult(Integer code, String msg, PrintWriter writer) { + HashMap result = new HashMap<>(); + result.put("code", code); + result.put("msg", msg); + String jsonString = JSONObject.toJSONString(result); + writer.println(jsonString); + writer.close(); + } + + public void setResultError(String msg, PrintWriter writer) { + setResult(500, msg, writer); + } + + public void setResultOK(String msg, PrintWriter writer) { + setResult(200, msg, writer); + } +} diff --git a/src/com/hellogithub/servlet/latestServlet.java b/src/com/hellogithub/servlet/latestServlet.java index a87a0bd..fd140d2 100644 --- a/src/com/hellogithub/servlet/latestServlet.java +++ b/src/com/hellogithub/servlet/latestServlet.java @@ -11,6 +11,9 @@ import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; +import java.util.HashMap; + + @WebServlet("/latest") public class latestServlet extends HttpServlet { private com.hellogithub.service.projectService projectService=new projectService(); @@ -36,11 +39,29 @@ public class latestServlet extends HttpServlet { resp.setHeader("Access-Control-Max-Age", "3600"); resp.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin, authority, content-type, version-info, X-Requested-With"); resp.setContentType("application/json;charset=UTF-8"); - + //返回最新期刊数字 PrintWriter writer = resp.getWriter(); String jsonString = JSONObject.toJSONString(projectService.latestNum()); + setResultOK("success",writer); writer.println(jsonString); writer.close(); } + + public void setResult(Integer code, String msg, PrintWriter writer) { + HashMap result = new HashMap<>(); + result.put("code", code); + result.put("msg", msg); + String jsonString = JSONObject.toJSONString(result); + writer.println(jsonString); + writer.close(); + } + + public void setResultError(String msg, PrintWriter writer) { + setResult(500, msg, writer); + } + + public void setResultOK(String msg, PrintWriter writer) { + setResult(200, msg, writer); + } } diff --git a/src/com/hellogithub/servlet/selectCateServlet.java b/src/com/hellogithub/servlet/selectCateServlet.java index fad00c8..f0165ba 100644 --- a/src/com/hellogithub/servlet/selectCateServlet.java +++ b/src/com/hellogithub/servlet/selectCateServlet.java @@ -10,6 +10,8 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; +import java.util.HashMap; + @WebServlet("/selectCate") public class selectCateServlet extends HttpServlet { private projectService projectService=new projectService(); @@ -35,11 +37,29 @@ public class selectCateServlet extends HttpServlet { resp.setHeader("Access-Control-Max-Age", "3600"); resp.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin, authority, content-type, version-info, X-Requested-With"); resp.setContentType("application/json;charset=UTF-8"); - + //按照分类检索 String num = req.getParameter("xxxxxxx"); PrintWriter writer = resp.getWriter(); - String jsonString = JSONObject.toJSONString(projectService.retTerm(String.valueOf(num))); + String jsonString = JSONObject.toJSONString(projectService.retCate(Integer.valueOf(num))); + setResultOK("success",writer); writer.println(jsonString); writer.close(); } + + public void setResult(Integer code, String msg, PrintWriter writer) { + HashMap result = new HashMap<>(); + result.put("code", code); + result.put("msg", msg); + String jsonString = JSONObject.toJSONString(result); + writer.println(jsonString); + writer.close(); + } + + public void setResultError(String msg, PrintWriter writer) { + setResult(500, msg, writer); + } + + public void setResultOK(String msg, PrintWriter writer) { + setResult(200, msg, writer); + } } diff --git a/src/com/hellogithub/servlet/selectTermServlet.java b/src/com/hellogithub/servlet/selectTermServlet.java index 1fa2add..e10bcae 100644 --- a/src/com/hellogithub/servlet/selectTermServlet.java +++ b/src/com/hellogithub/servlet/selectTermServlet.java @@ -11,6 +11,8 @@ import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; +import java.util.HashMap; + @WebServlet("/selectTerm") public class selectTermServlet extends HttpServlet { private projectService projectService=new projectService(); @@ -36,11 +38,29 @@ public class selectTermServlet extends HttpServlet { resp.setHeader("Access-Control-Max-Age", "3600"); resp.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin, authority, content-type, version-info, X-Requested-With"); resp.setContentType("application/json;charset=UTF-8"); - + //按照分类返回期刊 String num = req.getParameter("xxxxxxx"); PrintWriter writer = resp.getWriter(); String jsonString = JSONObject.toJSONString(projectService.retTerm(num)); + setResultOK("success",writer); writer.println(jsonString); writer.close(); } + + public void setResult(Integer code, String msg, PrintWriter writer) { + HashMap result = new HashMap<>(); + result.put("code", code); + result.put("msg", msg); + String jsonString = JSONObject.toJSONString(result); + writer.println(jsonString); + writer.close(); + } + + public void setResultError(String msg, PrintWriter writer) { + setResult(500, msg, writer); + } + + public void setResultOK(String msg, PrintWriter writer) { + setResult(200, msg, writer); + } } diff --git a/src/com/hellogithub/servlet/selectUserLabelServlet.java b/src/com/hellogithub/servlet/selectUserLabelServlet.java new file mode 100644 index 0000000..3dd0e6a --- /dev/null +++ b/src/com/hellogithub/servlet/selectUserLabelServlet.java @@ -0,0 +1,57 @@ +package com.hellogithub.servlet; + +import com.alibaba.fastjson.JSONObject; +import com.hellogithub.service.UserService; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.*; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.HashMap; + +public class selectUserLabelServlet extends HttpServlet { + private UserService userService = new UserService(); + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + doPost(req, resp); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + resp.setCharacterEncoding("UTF-8"); + resp.setContentType("text/html; charset=utf-8"); + // 设置响应头允许ajax跨域访问 + String curOrigin = req.getHeader("Origin"); + resp.setHeader("Access-Control-Allow-Origin", curOrigin == null ? "true" : curOrigin); + resp.setHeader("Access-Control-Allow-Credentials", "true"); + resp.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, HEAD"); + resp.setHeader("Access-Control-Max-Age", "3600"); + resp.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin, authority, content-type, version-info, X-Requested-With"); + resp.setContentType("application/json;charset=UTF-8"); + + //返回所有的历史记录 + PrintWriter writer = resp.getWriter(); + String name = req.getParameter("xxxxx"); + String jsonString = JSONObject.toJSONString(userService.selectLabel(name)); + writer.println(jsonString); + setResultOK("success",writer); + writer.close(); + + } + public void setResult(Integer code, String msg, PrintWriter writer) { + HashMap result = new HashMap<>(); + result.put("code", code); + result.put("msg", msg); + String jsonString = JSONObject.toJSONString(result); + writer.println(jsonString); + writer.close(); + } + + public void setResultError(String msg, PrintWriter writer) { + setResult(500, msg, writer); + } + + public void setResultOK(String msg, PrintWriter writer) { + setResult(200, msg, writer); + } +}