源码获取:博客首页 "资源" 里下载!

一、项目简述

功能包括: 1:用户及主要操作功能 游客可以浏览网站的主页,登陆注册,小说湿度,下单购 买,订单查询,个人信息查询,留言评论。 2:作者模块 作者登录注册,小说发表,小说维护等等。 3:作者模块 管理员登录,读者管理,小说管理,评论管理,充值订单 管理,订阅订单管理,折扣活动管理等等

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。

登录控制层:

/*** @author:yy*/
@Controller
public class LoginController {@Autowiredprivate AdminService adminService;@Autowiredprivate BookService bookService;@Autowiredprivate MessageService messageService;/*** 登陆页面* @return*/@RequestMapping("/loginPage")public String loginPage(){return "login";}@RequestMapping(value = "/novelPage",method = RequestMethod.GET)public String novelPage(Integer bookId, Model model){Book book = bookService.findById(bookId);List<Message> messageList = messageService.findByBookId(bookId);model.addAttribute("book",book);model.addAttribute("messageList",messageList);return "novel";}@RequestMapping(value = "/shiduPage",method = RequestMethod.GET)public String shiduPage(Integer bookId,Integer page,Model model){Book book = bookService.findById(bookId);Chapter chapter = book.getChapterList().get(page-1);int totalPage= book.getChapterList().size();List<Chapter> chapterList = new ArrayList<>();chapterList.add(chapter);book.setChapterList(chapterList);model.addAttribute("book",book);model.addAttribute("page",page);model.addAttribute("totalPage",totalPage);return "shidu";}/*** 登陆操作* @return*/@RequestMapping("/login")@ResponseBody// 该方法返回的是json字符串public ResultData login(Admin admin,HttpServletRequest request){// 登陆操作ResultData resultData = adminService.login(admin);// 判断登陆成功,将用户数据保存到 session中// 如何获取session对象?if(resultData.getCode() == 200){HttpSession session = request.getSession();session.setAttribute("admin",resultData.getData());}return resultData;}@RequestMapping("/rloginPage")public String rloginPage(){return "front/register";}/*** 退出登陆的方法* @return*/@RequestMapping("/logout")public String logout(HttpServletRequest request){// 只需要去将保存到session的数据干掉即可request.getSession().setAttribute("admin",null);// 重定向和转发的区别?// 重定向: 1. 客户端行为 2. 两次请求 3. 不能携带前一次请求的数据// 转发: 1. 服务器端行为 2. 一次请求 3. 能够携带前一次请求的数据return "redirect:/loginPage";}
}

历史控制层:

@Controller
public class HistoryController {@Autowiredprivate HistoryService historyService;//列表@RequestMapping("/history/list")public String list(Model model,@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "3") Integer pageSize) {PageInfo<History> pageInfo=historyService.list(page,pageSize);model.addAttribute("list",pageInfo.getList());model.addAttribute("pageInfo",pageInfo);return "history/history-list";}//添加@RequestMapping("/history/addPage")public String addPage(){return "history/history-add";}//    添加@RequestMapping("/history/add")@ResponseBodypublic ResultData add(History history){return historyService.add(history);}//    search@RequestMapping("/history/search")public String searchList(Model model,@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "3") Integer pageSize,String keyword) {PageInfo<History> pageInfo=historyService.searchList(page,pageSize,keyword);model.addAttribute("list",pageInfo.getList());model.addAttribute("pageInfo",pageInfo);return  "history/history-list";}//      批量删除@RequestMapping("/history/deleteAll")@ResponseBodypublic ResultData deleteAll(@RequestParam(name="ids") String ids){//将ids转为数组String[] idArr = ids.split(",");//将字符串数组转为int数组return historyService.batchDelete(idArr);}}

订单控制层:

@Controller
public class BookOrderController {@Autowiredprivate BookOrderService bookOrderService;@Autowiredprivate BookService bookService;@RequestMapping("/bookorder/bookorderlist")public String bookorderlist(Model model,@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "3") Integer pageSize) {PageInfo<BookOrder> pageInfo = bookOrderService.list(page, pageSize);//将数据转发到页面model.addAttribute("list", pageInfo.getList());model.addAttribute("pageInfo", pageInfo);return "bookorder/bookorder-list";}@RequestMapping("/bookorder/orderSearch")public String searchList(Model model,@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "3") Integer pageSize,String keyword) {PageInfo<BookOrder> pageInfo = bookOrderService.searchList(page,pageSize,keyword);//将数据转发到页面model.addAttribute("list", pageInfo.getList());model.addAttribute("pageInfo", pageInfo);return "bookorder/bookorder-list";}@RequestMapping("/bookorder/bookorderadd")public String bookorderadd() {return "bookorder/bookorder-add";}@RequestMapping(value = "/bookorder/add",method = RequestMethod.POST)@ResponseBodypublic ResultData add(BookOrder bookOrder, HttpSession session) {Reader reader = (Reader)session.getAttribute("reader");if(reader==null){return  new ResultData(2001,"用户未登陆",null);}int readerId = reader.getReaderId();bookOrder.setUserId(1);bookOrder.setDiscountId(1);bookOrder.setOrderDate(new Timestamp(System.currentTimeMillis()));bookOrder.setOrderStatus(1);bookOrder.setPayStatus(1);ResultData resultData = bookOrderService.add(bookOrder);return resultData;}@RequestMapping("/bookorder/editStatus")@ResponseBodypublic ResultData editStatus(Integer id, Integer status) {return bookOrderService.updateStatus(id,status);}@RequestMapping("/bookorder/deleteAll")@ResponseBodypublic ResultData deleteAll(@RequestParam(name = "ids") String ids){// 将ids转换成数组String[] idArr = ids.split(",");return bookOrderService.batchDelete(idArr);}@RequestMapping("/bookorder/delete")@ResponseBodypublic  ResultData delete(Integer orderid,Integer orderStatus){return  bookOrderService.delete(orderid,orderStatus);}@RequestMapping("/bookOrder/toOrder")public  String delete(Integer bookId,Model model){Book book = bookService.findById(bookId);model.addAttribute("book",book);return  "front/order";}@RequestMapping("/bookOrder/toOrderCenter")public  String toOrderCenter(HttpSession session,Model model){/*Reader reader = (Reader)session.getAttribute("reader");if(reader==null){return  new ResultData(2001,"用户未登陆",null);}int readerId = reader.getReaderId();*/int readerId = 1;List<BookOrder> bookOrderList = bookOrderService.getAll(readerId);model.addAttribute("bookOrderList",bookOrderList);return  "front/orderCenter";}}

读者控制层:

@Controller
public class ReaderController {@Autowiredprivate ReaderService readerService;@RequestMapping("/duzhe")public String duzhe(){return "loginreader";}@RequestMapping("/book/getByType?bookType=1")public String xiangqing(){return "front/personal";}/*** 登陆操作* @return*/@RequestMapping("/loginreader")@ResponseBodypublic ResultData login1(Reader reader,HttpServletRequest request){// 登陆操作ResultData resultData = readerService.login1(reader);// 判断登陆成功,将用户数据保存到 session中// 如何获取session对象?if(resultData.getCode() == 200){HttpSession session = request.getSession();session.setAttribute("reader",resultData.getData());}return resultData;}@RequestMapping("/loginOut")@ResponseBodypublic String loginOut(HttpServletRequest request){// 只需要去将保存到session的数据干掉即可request.getSession().setAttribute("reader",null);// 重定向和转发的区别?// 重定向: 1. 客户端行为 2. 两次请求 3. 不能携带前一次请求的数据// 转发: 1. 服务器端行为 2. 一次请求 3. 能够携带前一次请求的数据return "redirect:/loginPage";}//    @RequestMapping("/login")
//    @ResponseBody// 该方法返回的是json字符串
//    public ResultData login(Admin admin,HttpServletRequest request){
//        // 登陆操作
//        ResultData resultData = adminService.login(admin);
//        // 判断登陆成功,将用户数据保存到 session中
//        // 如何获取session对象?
//        if(resultData.getCode() == 200){
//            HttpSession session = request.getSession();
//            session.setAttribute("admin",resultData.getData());
//        }
//
//        return resultData;
//    }
////读者列表@RequestMapping("/reader/list")public String list(Model model,@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "5") Integer pageSize){PageInfo<Reader> pageInfo = readerService.list(page,pageSize);model.addAttribute("list",pageInfo.getList());model.addAttribute("pageInfo",pageInfo);return "reader/reader-list";}//搜索读者显示列表@RequestMapping("/reader/search")public String searchList(Model model,@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "5") Integer pageSize,String keyword){PageInfo<Reader> pageInfo = readerService.searchList(page, pageSize, keyword);model.addAttribute("list",pageInfo.getList());model.addAttribute("pageInfo",pageInfo);return "reader/reader-list";}//读者删除列表@RequestMapping("/reader/deleteList")public String deleteList(Model model,@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "5") Integer pageSize){PageInfo<Reader> pageInfo = readerService.DeleteList(page,pageSize);model.addAttribute("list",pageInfo.getList());model.addAttribute("pageInfo",pageInfo);return "reader/reader-del";}//添加读者@RequestMapping("/reader/addPage")public String addPage(){return "front/register";}//    添加读者的方法@RequestMapping("/reader/add")@ResponseBodypublic ResultData add(Reader reader){return readerService.add(reader);}/*** 编辑读者状态信息* @param readerId : 当前读者Id* @param readerStatus: 读者当前状态* @return*/@RequestMapping("/reader/editStatus")@ResponseBodypublic ResultData editStatus(Integer readerId, Integer readerStatus){return readerService.updateStatus(readerId, readerStatus);}/*** 编辑读者* @param* @param* @return*/@RequestMapping("/reader/editPage")public String editPage(Model model, Integer readerId){Reader dbreadder = readerService.findById(readerId);model.addAttribute("reader",dbreadder);return "reader/reader-edit";}/*** 更新读者基本信息的方法* @param reader* @return*/@RequestMapping("/reader/edit")@ResponseBodypublic ResultData edit(Reader reader){return readerService.edit(reader);}/*** 批量删除* @param ids* @return*/@RequestMapping("/reader/deleteAll")@ResponseBodypublic ResultData deleteAll(@RequestParam(name = "ids") String ids){
//        将ids转换成数组String[] idArr=ids.split(",");return readerService.batchDelete(idArr);};/*** 批量恢复* @param ids* @return*/@RequestMapping("/reader/huifuAll")@ResponseBodypublic ResultData huifuDelete(@RequestParam(name = "ids") String ids){
//        将ids转换成数组String[] idArr=ids.split(",");return readerService.huifuDelete(idArr);};@RequestMapping("/reader/delete")@ResponseBodypublic ResultData deleteReader(Integer readerId, Integer readerStatus){return readerService.deletereader(readerId,readerStatus);}@RequestMapping("/reader/toCenter")public String toCenter(HttpSession session, Model model){
//         Reader reader = (Reader)session.getAttribute("reader");
//        if(reader==null){
//            return  "login";
//        }Reader reader = readerService.findById(1 );model.addAttribute("reader",reader);return "front/center";}}

 源码获取:博客首页 "资源" 里下载!

Java项目:在线小说阅读系统(读者+作者+管理员)(java+SSM+jsp+mysql+maven)相关推荐

  1. Java项目:在线小说阅读系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 普通用户端登录注册,小说的分类,日榜,月榜,年榜, 小说的阅读,分章节,小说的评论,收藏,推荐等等,以 及后 ...

  2. 基于javaweb的在线小说阅读系统(前后端分离+java+vue+springboot+ssm+mysql+redis)

    基于javaweb的在线小说阅读系统(前后端分离+java+vue+springboot+ssm+mysql+redis) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 ...

  3. Java项目:在线淘房系统(租房、购房)(java+SpringBoot+Redis+MySQL+Vue+SpringSecurity+JWT+ElasticSearch+WebSocket)

    源码获取:博客首页 "资源" 里下载! 该系统有三个角色,分别是:普通用户.房屋中介.管理员.普通用户的功能:浏览房屋信息.预约看房.和中介聊天.申请成为中介等等.房屋中介的功能: ...

  4. springboot毕设项目在线电子书阅读系统t7atu(java+VUE+Mybatis+Maven+Mysql)

    springboot毕设项目在线电子书阅读系统t7atu(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + H ...

  5. 基于javaweb+jsp的在线点餐系统(java+SSM+jsp+mysql+maven)

    基于javaweb+jsp的在线点餐系统(java+SSM+jsp+mysql+maven) 一.项目简述 功能包括: 在线点餐,评论,购物车,下单,支付,管理员,店家多 商家管理,后台评论管理,订单 ...

  6. 基于javaweb+jsp的小区物业管理系统(java+SSM+jsp+mysql+maven)

    基于javaweb+jsp的小区物业管理系统(java+SSM+jsp+mysql+maven) 一.项目简述 功能包括: 分为管理员及普通业主角色,业主信息,社区房屋,维护 管理,社区车辆,社区投诉 ...

  7. 基于javaweb+jsp的酒店管理系统(java+SSM+jsp+mysql+maven)

    基于javaweb+jsp的酒店管理系统(java+SSM+jsp+mysql+maven) 主要技术:java springmvc mybatis mysql tomcat js jquery js ...

  8. Java项目:在线点餐系统(java+Springboot+Maven+mybatis+Vue+mysql+Redis)

    源码获取:博客首页 "资源" 里下载! 项目描述: 这是一个基于SpringBoot+Vue框架开发的在线点餐系统.首先,这是一个前后端分离的项目.具有一个在线点餐系统该有的所有功 ...

  9. Java项目:在线奶茶店系统(java+JSP+JavaScript+servlet+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本系统分为前后台,分为普通用户和管理员两种角色: 管理员角色包含以下功能: 管理员登录,用户管理,分类管理,奶茶信息管理,订单 ...

最新文章

  1. java向量vector类,java数据结构——Vector(向量类)
  2. 在Windows2003下搭建FTP服务器
  3. 异步多线程(五)多线程异常处理
  4. Squid正向代理矩阵
  5. [导入]Asp.net中动态在中加入Scrpit标签
  6. 配置LINUX的DNS主辅服务器
  7. python批量打印机excel_python批量设置多个Excel文件页眉页脚的脚本
  8. 自定义Button形状(圆形、椭圆)
  9. Web API 文档生成工具 apidoc
  10. js 将16进制颜色转为RGBA
  11. 网赚必备单页面淘宝客网赚源码,专业销售网赚教程
  12. Elasticsearch 搜索引擎开发实战
  13. 震坤行工业超市研发效能提升之路 | 云效
  14. Web测试的常见测试点
  15. next_permutation函数与perv_permutation函数
  16. STM32 IAP 在线升级详解
  17. android 如何制作可编辑的表格,在手机wps中编辑表格的方法
  18. 精伦iDR211二代证阅读器技术规格说明书
  19. windows鼠标,物理位移与屏幕位移的计算方法(鼠标加速度)
  20. windows中安装SSH Secure Shell Client传输软件

热门文章

  1. libcurl使用多线程下载大文件源码示例!
  2. Clip Studio Paint 高级着色学习教程
  3. c4d+ps打造抽象NFT加密艺术 Create Abstract NFT Crypto Art with Cinema 4D + Photoshop
  4. 吴裕雄--天生自然 高等数学学习:高阶偏导数
  5. thymeleaf : input/select/radio回显
  6. 测试 csdnmakerdown语法
  7. Filter(过滤器)
  8. webpack入门之简单例子跑起来
  9. Fragment为什么须要无参构造方法
  10. iOS开发之绝对布局和相对布局(屏幕适配)