• Java项目:springboot电影推荐网站


    作者主页:夜未央5788

     简介:Java领域优质创作者、Java项目、学习资料、技术互助

    文末获取源码

    项目介绍

    springboot电影推荐网站。本系统采用企业级开发标准,使用SpringBoot架构,数据访问层采用Spring Data Jpa,业务控制层采用SpringMvc,安全框架采用Shiro,实现了完整权限系统,Controller方法采用shiro注解,来实现有效的权限控制;界面采用了Easyui技术;在该项目中可以收录电影,收录电影网站,电影网站动态信息以及通过关键字查询你想要看的电影。在后台可以添加电影信息,对电影信动态的管理,电影信息管理,网站信息的管理等。

    环境需要

    1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
    2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
    3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
    4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
    5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 

    6.数据库:MySql 5.7版本;

    技术栈

    1. 后端:SpringBoot+Spring Data Jpa+shiro

    2. 前端:html+easyui+bootstrap

    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
    2. 将项目中application.yml配置文件中的数据库配置改为自己的配置

    3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

    若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;

    4. 前台运行地址:http://localhost:8085
    后台运行地址:http://localhost:8085/login

    管理员账户:admin  密码:123456

    运行截图

     

     

     

     

     

     

    后管界面

     

     

     

     

     

    代码相关

    电影控制器

    1. /**
    2. * 电影控制器
    3. * @author Administrator
    4. *
    5. */
    6. @Controller
    7. @RequestMapping(value = "/film")
    8. public class FilmController {
    9. @Resource
    10. private FilmService filmService;
    11. @Resource
    12. private WebSiteInfoService webSiteInfoService;
    13. /**
    14. * 搜索电影 简单模糊查询
    15. * @param q
    16. * @return
    17. * @throws Exception
    18. */
    19. @RequestMapping("/search")
    20. public ModelAndView search(@Valid Film film,BindingResult bindingResult)throws Exception{
    21. ModelAndView mav=new ModelAndView();
    22. if(bindingResult.hasErrors()){
    23. mav.addObject("error", bindingResult.getFieldError().getDefaultMessage());
    24. mav.addObject("title", "首页");
    25. mav.addObject("mainPage", "film/indexFilm");
    26. mav.addObject("mainPageKey", "#f");
    27. mav.addObject("film", film);
    28. mav.setViewName("index");
    29. }else{
    30. List filmList=filmService.list(film, 1, 32);
    31. mav.addObject("filmList", filmList); // 最多查询32条数据
    32. mav.addObject("title", film.getName());
    33. mav.addObject("mainPage", "film/result");
    34. mav.addObject("mainPageKey", "#f");
    35. mav.addObject("film", film);
    36. mav.addObject("total", filmList.size());
    37. mav.setViewName("index");
    38. }
    39. return mav;
    40. }
    41. /**
    42. * 分页查询电影信息
    43. * @return
    44. * @throws Exception
    45. */
    46. @RequestMapping("/list/{id}")
    47. public ModelAndView list(@PathVariable(value="id",required=false) Integer page)throws Exception{
    48. ModelAndView mav=new ModelAndView();
    49. List filmList=filmService.list(null, page, 20);
    50. Long total=filmService.getCount(null);
    51. mav.addObject("filmList", filmList);
    52. mav.addObject("pageCode",PageUtil.genPagination("/film/list", total, page, 20));
    53. mav.addObject("title", "电影列表");
    54. mav.addObject("mainPage", "film/list");
    55. mav.addObject("mainPageKey", "#f");
    56. mav.setViewName("index");
    57. return mav;
    58. }
    59. /**
    60. * 根据id查询电影详细信息
    61. * @return
    62. * @throws Exception
    63. */
    64. @RequestMapping("/{id}")
    65. public ModelAndView view(@PathVariable("id") Integer id)throws Exception{
    66. ModelAndView mav=new ModelAndView();
    67. Film film=filmService.findById(id);
    68. mav.addObject("film", film);
    69. mav.addObject("title", film.getTitle());
    70. mav.addObject("pageCode", this.genUpAndDownPageCode(filmService.getLast(id),filmService.getNext(id)));
    71. mav.addObject("randomFilmList", filmService.randomList(8));
    72. mav.addObject("webSiteInfoList", webSiteInfoService.getByFilmId(id));
    73. mav.addObject("mainPage", "film/view");
    74. mav.addObject("mainPageKey", "#f");
    75. mav.addObject("film", film);
    76. mav.setViewName("index");
    77. return mav;
    78. }
    79. /**
    80. * 获取下一篇博客和下一篇博客代码
    81. * @param lastBlog
    82. * @param nextBlog
    83. * @return
    84. */
    85. private String genUpAndDownPageCode(Film lastFilm,Film nextFilm){
    86. StringBuffer pageCode=new StringBuffer();
    87. if(lastFilm==null || lastFilm.getId()==null){
    88. pageCode.append("

      上一篇:没有了

      "
      );
    89. }else{
    90. pageCode.append("

      上一篇:"+lastFilm.getTitle()+"

      "
      );
    91. }
    92. if(nextFilm==null || nextFilm.getId()==null){
    93. pageCode.append("

      下一篇:没有了

      "
      );
    94. }else{
    95. pageCode.append("

      下一篇:"+nextFilm.getTitle()+"

      "
      );
    96. }
    97. return pageCode.toString();
    98. }
    99. }

    后管电影控制器

    1. /**
    2. * 电影Controller类
    3. * @author Administrator
    4. *
    5. */
    6. @RestController
    7. @RequestMapping(value = "/admin/film")
    8. public class FilmAdminController {
    9. @Resource
    10. private FilmService filmService;
    11. @Resource
    12. private WebSiteInfoService webSiteInfoService;
    13. @Value("${imageFilePath}")
    14. private String imageFilePath;
    15. @Resource
    16. private InitSystem initSystem;
    17. /**
    18. * 分页查询电影
    19. * @param page
    20. * @param rows
    21. * @return
    22. * @throws Exception
    23. */
    24. @ResponseBody
    25. @RequestMapping("/list")
    26. public Map list(Film film,@RequestParam(value="page",required=false)Integer page,@RequestParam(value="rows",required=false)Integer rows)throws Exception{
    27. List filmList=filmService.list(film,page,rows);
    28. Long total=filmService.getCount(film);
    29. Map resultMap = new HashMap<>();
    30. resultMap.put("rows", filmList);
    31. resultMap.put("total", total);
    32. return resultMap;
    33. }
    34. /**
    35. * 下拉框模糊查询
    36. * @param name
    37. * @return
    38. * @throws Exception
    39. */
    40. @ResponseBody
    41. @RequestMapping("/comboList")
    42. public List comboList(String q)throws Exception{
    43. if(StringUtil.isEmpty(q)){
    44. return null;
    45. }
    46. Film film=new Film();
    47. film.setName(q);
    48. return filmService.list(film, 1, 30); // 最多查询30条记录
    49. }
    50. /**
    51. * 添加或者修改电影
    52. * @param film
    53. * @return
    54. * @throws Exception
    55. */
    56. @ResponseBody
    57. @RequestMapping("/save")
    58. public Map save(Film film,@RequestParam("imageFile")MultipartFile file,HttpServletRequest request)throws Exception{
    59. if(!file.isEmpty()){
    60. // 获取文件名
    61. String fileName = file.getOriginalFilename();
    62. // 获取文件的后缀名
    63. String suffixName = fileName.substring(fileName.lastIndexOf("."));
    64. String newFileName=DateUtil.getCurrentDateStr()+suffixName;
    65. FileUtils.copyInputStreamToFile(file.getInputStream(), new File(imageFilePath+newFileName));
    66. film.setImageName(newFileName);
    67. }
    68. film.setPublishDate(new Date());
    69. Map resultMap = new HashMap<>();
    70. filmService.save(film);
    71. initSystem.loadData(request.getServletContext());
    72. resultMap.put("success", true);
    73. return resultMap;
    74. }
    75. /**
    76. * 删除电影信息
    77. * @param ids
    78. * @param response
    79. * @return
    80. * @throws Exception
    81. */
    82. @ResponseBody
    83. @RequestMapping("/delete")
    84. public Map delete(@RequestParam(value="ids")String ids,HttpServletRequest request)throws Exception{
    85. String []idsStr=ids.split(",");
    86. Map resultMap = new HashMap<>();
    87. boolean flag=true;
    88. for(int i=0;i
    89. Integer filmId=Integer.parseInt(idsStr[i]);
    90. if(webSiteInfoService.getByFilmId(filmId).size()>0){
    91. flag=false;
    92. }else{
    93. filmService.delete(filmId);
    94. }
    95. }
    96. initSystem.loadData(request.getServletContext());
    97. if(flag){
    98. resultMap.put("success", true);
    99. }else{
    100. resultMap.put("success", false);
    101. resultMap.put("errorInfo", "电影动态信息中存在电影信息,不能删除!");
    102. }
    103. return resultMap;
    104. }
    105. /**
    106. * 根据id查询实体
    107. * @param id
    108. * @return
    109. * @throws Exception
    110. */
    111. @ResponseBody
    112. @RequestMapping("/findById")
    113. public Film findById(@RequestParam(value="id")Integer id)throws Exception{
    114. Film film=filmService.findById(id);
    115. return film;
    116. }
    117. /**
    118. * 上传图片
    119. * @param file
    120. * @return
    121. */
    122. @ResponseBody
    123. @RequestMapping("/ckeditorUpload")
    124. public String ckeditorUpload(@RequestParam("upload")MultipartFile file,String CKEditorFuncNum)throws Exception{
    125. // 获取文件名
    126. String fileName = file.getOriginalFilename();
    127. // 获取文件的后缀名
    128. String suffixName = fileName.substring(fileName.lastIndexOf("."));
    129. String newFileName=DateUtil.getCurrentDateStr()+suffixName;
    130. FileUtils.copyInputStreamToFile(file.getInputStream(), new File(imageFilePath+newFileName));
    131. StringBuffer sb=new StringBuffer();
    132. sb.append("");
    133. return sb.toString();
    134. }
    135. }

    如果也想学习本系统,下面领取。回复:040springboot

  • 相关阅读:
    0022Java程序设计-ssm微信小程序社区互助平台
    Tomcat是如何打破“双亲委派“机制的
    [附源码]计算机毕业设计JAVAssm酒店综合管理平台
    系统篇: linux 下增加交换分区
    java计算机毕业设计医院出入院管理系统源码+系统+mysql数据库+lw文档
    SSH在桌面会话启动应用程序
    Java基础学习:深入解析Java中的位运算符
    hello world的本质是什么?
    在不同的系统下解决apache2和nginx伪静态问题(非宝塔页面)wordpress通用
    【HTML + CSS】笔记
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/125881442