• Java项目:SSM动漫影视网站系统


    作者主页:夜未央5788

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

    文末获取源码

    项目介绍

    本项目分为前后台,前台为普通用户登录,后台为管理员登录。

    管理员角色包含以下功能:

    管理员登陆,用户管理,影片列表管理,管理影片等功能。

    用户角色包含以下功能:
    用户登录注册,用户首页,视频简介,视频播放,评论视频,查看我收藏的视频,查看我的评论等功能。

    由于本程序规模不大,可供课程设计,毕业设计学习演示之用

    环境需要

    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.数据库:MySql 5.7版本;

    6.6.是否Maven项目:是;

    技术栈

    1. 后端:Spring+SpringMVC+Mybatis

    2. 前端:JSP+CSS+JavaScript+jQuery

    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

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

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

    3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;

    4. 运行项目,输入localhost:8080/ 登录

    运行截图

    前台界面-用户角色

     

     

     

     

     

     

    后台界面

     

     

     

    代码相关

    影片管理控制器

    1. /**
    2. * 这个类是Film控制器,负责接收JSP的值,补充数据后,然后跳转到其他页面
    3. */
    4. @Controller
    5. @RequestMapping("/film")
    6. public class FilmController extends BaseController {
    7. @Autowired
    8. private CommentService commentService;
    9. @Autowired
    10. private FilmService filmService;
    11. @Autowired
    12. private FilmDetailService filmDetailService;
    13. // --------------------------------------- 华丽分割线 ------------------------------
    14. /*********************************查询列表【不分页】 @param film 电影的对象
    15. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    16. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    17. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    18. * @return 一个字符串,根据字符串的值来跳转到相应页面
    19. */
    20. @RequestMapping(value = "/listAll")
    21. public String listAll(Film film, Model model, HttpServletRequest request, HttpServletResponse response){
    22. List listAll = filmService.listAll();
    23. model.addAttribute("list", listAll);
    24. return "film/film";
    25. }
    26. /**
    27. * 通过传入的电影对象,具体是什么看参数名字查询数据,然后返回跳转到jsp中
    28. *
    29. * @param film 电影的对象
    30. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    31. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    32. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    33. * @return 一个字符串,根据字符串的值来跳转到相应页面
    34. */
    35. @RequestMapping(value = "/listByEntity")
    36. public String listByEntity(Film film, Model model, HttpServletRequest request, HttpServletResponse response){
    37. List listAll = filmService.listAllByEntity(film);
    38. model.addAttribute("list", listAll);
    39. return "film/film";
    40. }
    41. /**
    42. * 通过传入的电影对象,具体是什么看参数名字然后查询数据,然后返回跳转到jsp中
    43. *
    44. * @param film 电影的对象
    45. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    46. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    47. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    48. * @return 一个字符串,根据字符串的值来跳转到相应页面
    49. */
    50. @RequestMapping(value = "/listByMap")
    51. public String listByMap(Film film, Model model, HttpServletRequest request, HttpServletResponse response){
    52. //通过map查询
    53. Map params = new HashMap();
    54. if(!isEmpty(film.getName())){
    55. params.put("name", film.getName());
    56. }
    57. if(!isEmpty(film.getContent())){
    58. params.put("content", film.getContent());
    59. }
    60. if(!isEmpty(film.getIsDelete())){
    61. params.put("isDelete", film.getIsDelete());
    62. }
    63. if(!isEmpty(film.getPic())){
    64. params.put("pic", film.getPic());
    65. }
    66. List listAll = filmService.listByMap(params);
    67. model.addAttribute("list", listAll);
    68. return "film/film";
    69. }
    70. /*********************************查询列表【分页】 @param film 电影的对象
    71. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    72. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    73. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    74. * @return 一个字符串,根据字符串的值来跳转到相应页面
    75. */
    76. @RequestMapping(value = "/findByObj")
    77. public String findByObj(Film film, Model model, HttpServletRequest request, HttpServletResponse response) {
    78. //分页查询
    79. Pager pagers = filmService.findByEntity(film);
    80. model.addAttribute("pagers", pagers);
    81. //存储查询条件
    82. model.addAttribute("obj", film);
    83. return "film/film";
    84. }
    85. /**
    86. * 根据传入的sql,去数据库中查询,最后跳转到对应的页面
    87. *
    88. * @param film 电影的对象
    89. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    90. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    91. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    92. * @return 一个字符串,根据字符串的值来跳转到相应页面
    93. */
    94. @RequestMapping(value = "/findBySql")
    95. public String findBySql(Film film, Model model, HttpServletRequest request, HttpServletResponse response) {
    96. //分页查询
    97. String sql = "SELECT * FROM film WHERE isDelete = 0 ";
    98. if(!isEmpty(film.getName())){
    99. sql += " and name like '%"+film.getName()+"%'";
    100. }
    101. if(!isEmpty(film.getContent())){
    102. sql += " and content like '%"+film.getContent()+"%'";
    103. }
    104. if(!isEmpty(film.getIsDelete())){
    105. sql += " and isDelete like '%"+film.getIsDelete()+"%'";
    106. }
    107. if(!isEmpty(film.getPic())){
    108. sql += " and pic like '%"+film.getPic()+"%'";
    109. }
    110. sql += " ORDER BY ID DESC ";
    111. Pager pagers = filmService.findBySqlRerturnEntity(sql);
    112. model.addAttribute("pagers", pagers);
    113. //存储查询条件
    114. model.addAttribute("obj", film);
    115. return "film/film";
    116. }
    117. /**
    118. * 根据传入的map,查询数据库后,根据return的值跳转到对应的JSP中
    119. *
    120. * @param film 电影的对象
    121. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    122. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    123. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    124. * @return 一个字符串,根据字符串的值来跳转到相应页面
    125. */
    126. @RequestMapping(value = "/findByMap")
    127. public String findByMap(Film film, Model model, HttpServletRequest request, HttpServletResponse response) {
    128. //通过map查询
    129. Map params = new HashMap();
    130. if(!isEmpty(film.getName())){
    131. params.put("name", film.getName());
    132. }
    133. if(!isEmpty(film.getContent())){
    134. params.put("content", film.getContent());
    135. }
    136. if(!isEmpty(film.getIsDelete())){
    137. params.put("isDelete", film.getIsDelete());
    138. }
    139. if(!isEmpty(film.getPic())){
    140. params.put("pic", film.getPic());
    141. }
    142. //分页查询
    143. Pager pagers = filmService.findByMap(params);
    144. model.addAttribute("pagers", pagers);
    145. //存储查询条件
    146. model.addAttribute("obj", film);
    147. return "film/film";
    148. }
    149. /**********************************【增删改】 @return 一个字符串,根据字符串的值来跳转到相应页面*/
    150. @RequestMapping(value = "/add")
    151. public String add() {
    152. return "film/add";
    153. }
    154. /**
    155. * 根据ID查看表的某一条数据
    156. *
    157. * @param id 主键ID
    158. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    159. * @return 一个字符串,根据字符串的值来跳转到相应页面
    160. */
    161. @RequestMapping(value = "/view")
    162. public String view(Integer id,Model model) {
    163. Film obj = filmService.load(id);
    164. List listBySqlReturnEntity = commentService.listBySqlReturnEntity("SELECT * FROM comment WHERE filmId="+id+" order by addTime desc");
    165. model.addAttribute("obj",obj);
    166. model.addAttribute("list",listBySqlReturnEntity);
    167. //查询视频列表
    168. List listBySqlReturnEntity2 = filmDetailService.listBySqlReturnEntity("SELECT * FROM film_detail WHERE filmId = "+id);
    169. model.addAttribute("datails",listBySqlReturnEntity2);
    170. return "film/view";
    171. }
    172. /**
    173. * 添加数据后跳转到jsp
    174. *
    175. * @param file 文件对象,对应前端传来的文件,比如图片,视频等
    176. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    177. * @param film 电影的对象
    178. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    179. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    180. * @return 一个字符串,根据字符串的值来跳转到相应页面
    181. * @throws IllegalStateException the illegal state exception
    182. * @throws IOException the io exception
    183. */
    184. @RequestMapping(value = "/exAdd")
    185. public String exAdd(@RequestParam(value = "file", required = false) MultipartFile file,HttpServletRequest request,Film film, Model model, HttpServletResponse response) throws IllegalStateException, IOException {
    186. if (!file.isEmpty()){
    187. System.out.println("开始");
    188. long startTime=System.currentTimeMillis();
    189. System.out.println("fileName:"+file.getOriginalFilename());
    190. String n = UUIDUtils.create();
    191. String path=Thread.currentThread().getContextClassLoader().getResource("").getPath().substring(0,Thread.currentThread().getContextClassLoader().getResource("").getPath().length()-16)+"/upload/"+n+file.getOriginalFilename();
    192. System.out.println("===================================================");
    193. System.out.println(path);
    194. File newFile=new File(path);
    195. //通过CommonsMultipartFile的方法直接写文件(注意这个时候)
    196. file.transferTo(newFile);
    197. film.setPic("\\upload\\"+n+file.getOriginalFilename());
    198. }
    199. film.setIsDelete(0);
    200. filmService.insert(film);
    201. return "redirect:/film/findBySql.action";
    202. }
    203. /**
    204. * 跳转到更新页面
    205. *
    206. * @param id 主键ID
    207. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    208. * @return 一个字符串,根据字符串的值来跳转到相应页面
    209. */
    210. @RequestMapping(value = "/update")
    211. public String update(Integer id,Model model) {
    212. Film obj = filmService.load(id);
    213. model.addAttribute("obj",obj);
    214. return "film/update";
    215. }
    216. /**
    217. *更新数据后跳转到JSP
    218. *
    219. * @param file 文件对象,对应前端传来的文件,比如图片,视频等
    220. * @param film 电影的对象
    221. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    222. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    223. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    224. * @return 一个字符串,根据字符串的值来跳转到相应页面
    225. * @throws IllegalStateException the illegal state exception
    226. * @throws IOException the io exception
    227. */
    228. @RequestMapping(value = "/exUpdate")
    229. public String exUpdate(@RequestParam(value = "file", required = false) MultipartFile file,Film film, Model model, HttpServletRequest request, HttpServletResponse response) throws IllegalStateException, IOException {
    230. if (!file.isEmpty()){
    231. System.out.println("开始");
    232. long startTime=System.currentTimeMillis();
    233. System.out.println("fileName:"+file.getOriginalFilename());
    234. String n = UUIDUtils.create();
    235. String path=Thread.currentThread().getContextClassLoader().getResource("").getPath().substring(0,Thread.currentThread().getContextClassLoader().getResource("").getPath().length()-16)+"/upload/"+n+file.getOriginalFilename();
    236. System.out.println("===================================================");
    237. System.out.println(path);
    238. File newFile=new File(path);
    239. //通过CommonsMultipartFile的方法直接写文件(注意这个时候)
    240. file.transferTo(newFile);
    241. film.setPic("\\upload\\"+n+file.getOriginalFilename());
    242. }
    243. filmService.updateById(film);
    244. return "redirect:/film/findBySql.action";
    245. }
    246. /**
    247. * 数据删除
    248. *
    249. * @param id 主键ID
    250. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    251. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    252. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    253. * @return 一个字符串,根据字符串的值来跳转到相应页面
    254. */
    255. @RequestMapping(value = "/delete")
    256. public String delete(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
    257. Film load = filmService.load(id);
    258. load.setIsDelete(1);
    259. filmService.updateById(load);
    260. return "redirect:/film/findBySql.action";
    261. }
    262. // --------------------------------------- 华丽分割线 ------------------------------
    263. // --------------------------------------- 【下面是ajax操作的方法。】 ------------------------------
    264. /*********************************查询列表【不分页】 @param film 电影的对象
    265. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    266. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    267. * @return 一个字符串,根据字符串的值来跳转到相应页面
    268. */
    269. @RequestMapping(value = "/listAllJson", method = RequestMethod.POST)
    270. @ResponseBody
    271. public String listAllJson(Film film, HttpServletRequest request, HttpServletResponse response){
    272. List listAll = filmService.listAll();
    273. JSONObject jsonObject = new JSONObject();
    274. jsonObject.put("list", listAll);
    275. jsonObject.put("obj", film);
    276. return jsonObject.toString();
    277. }
    278. /**
    279. * 根据传入的对象查询数据,最后返回json格式的数据
    280. *
    281. * @param film 电影的对象
    282. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    283. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    284. * @return 一个字符串,根据字符串的值来跳转到相应页面
    285. */
    286. @RequestMapping(value = "/listByEntityJson", method = RequestMethod.POST)
    287. @ResponseBody
    288. public String listByEntityJson(Film film, HttpServletRequest request, HttpServletResponse response){
    289. List listAll = filmService.listAllByEntity(film);
    290. JSONObject jsonObject = new JSONObject();
    291. jsonObject.put("list", listAll);
    292. jsonObject.put("obj", film);
    293. return jsonObject.toString();
    294. }
    295. /**
    296. * 根据传入的map查询数据,最后返回json格式的数据
    297. *
    298. * @param film 电影的对象
    299. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    300. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    301. * @return 一个字符串,根据字符串的值来跳转到相应页面
    302. */
    303. @RequestMapping(value = "/listByMapJson", method = RequestMethod.POST)
    304. @ResponseBody
    305. public String listByMapJson(Film film,HttpServletRequest request, HttpServletResponse response){
    306. //通过map查询
    307. Map params = new HashMap();
    308. if(!isEmpty(film.getName())){
    309. params.put("name", film.getName());
    310. }
    311. if(!isEmpty(film.getContent())){
    312. params.put("content", film.getContent());
    313. }
    314. if(!isEmpty(film.getIsDelete())){
    315. params.put("isDelete", film.getIsDelete());
    316. }
    317. if(!isEmpty(film.getPic())){
    318. params.put("pic", film.getPic());
    319. }
    320. List listAll = filmService.listByMap(params);
    321. JSONObject jsonObject = new JSONObject();
    322. jsonObject.put("list", listAll);
    323. jsonObject.put("obj", film);
    324. return jsonObject.toString();
    325. }
    326. /**
    327. * 根据传入的对象查询数据,最后返回json格式的数据
    328. *
    329. * @param film 电影的对象
    330. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    331. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    332. * @return 一个字符串,根据字符串的值来跳转到相应页面
    333. */
    334. @RequestMapping(value = "/findByObjJson", method = RequestMethod.POST)
    335. @ResponseBody
    336. public String findByObjByEntityJson(Film film, HttpServletRequest request, HttpServletResponse response) {
    337. //分页查询
    338. Pager pagers = filmService.findByEntity(film);
    339. JSONObject jsonObject = new JSONObject();
    340. jsonObject.put("pagers", pagers);
    341. jsonObject.put("obj", film);
    342. return jsonObject.toString();
    343. }
    344. /**
    345. * 根据传入的对象查询数据,最后返回json格式的数据
    346. *
    347. * @param film 电影的对象
    348. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    349. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    350. * @return 一个字符串,根据字符串的值来跳转到相应页面
    351. */
    352. @RequestMapping(value = "/findByMapJson", method = RequestMethod.POST)
    353. @ResponseBody
    354. public String findByMapJson(Film film,HttpServletRequest request, HttpServletResponse response) {
    355. //通过map查询
    356. Map params = new HashMap();
    357. if(!isEmpty(film.getName())){
    358. params.put("name", film.getName());
    359. }
    360. if(!isEmpty(film.getContent())){
    361. params.put("content", film.getContent());
    362. }
    363. if(!isEmpty(film.getIsDelete())){
    364. params.put("isDelete", film.getIsDelete());
    365. }
    366. if(!isEmpty(film.getPic())){
    367. params.put("pic", film.getPic());
    368. }
    369. //分页查询
    370. Pager pagers = filmService.findByMap(params);
    371. JSONObject jsonObject = new JSONObject();
    372. jsonObject.put("pagers", pagers);
    373. jsonObject.put("obj", film);
    374. return jsonObject.toString();
    375. }
    376. /**
    377. * 根据传入的数据进行添加操作,返回是否成功的json
    378. *
    379. * @param film 电影的对象
    380. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    381. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    382. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    383. * @return 一个字符串,根据字符串的值来跳转到相应页面
    384. */
    385. @RequestMapping(value = "/exAddJson", method = RequestMethod.POST)
    386. @ResponseBody
    387. public String exAddJson(Film film, Model model, HttpServletRequest request, HttpServletResponse response) {
    388. filmService.insert(film);
    389. JSONObject jsonObject = new JSONObject();
    390. jsonObject.put("message", "添加成功");
    391. return jsonObject.toString();
    392. }
    393. /**
    394. * 根据传入的数据进行更新操作,返回是否成功的json
    395. *
    396. * @param film 电影的对象
    397. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    398. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    399. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    400. * @return 一个字符串,根据字符串的值来跳转到相应页面
    401. */
    402. @RequestMapping(value = "/exUpdate.json", method = RequestMethod.POST)
    403. @ResponseBody
    404. public String exUpdateJson(Film film, Model model, HttpServletRequest request, HttpServletResponse response) {
    405. //1.通过实体类修改,可以多传修改条件
    406. filmService.updateById(film);
    407. //2.通过主键id修改
    408. //filmService.updateById(film);
    409. JSONObject jsonObject = new JSONObject();
    410. jsonObject.put("message", "修改成功");
    411. return jsonObject.toString();
    412. }
    413. /**
    414. * 根据传入的数据进行更删除操作,返回是否成功的json
    415. *
    416. * @param id 主键ID
    417. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    418. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    419. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    420. * @return 一个字符串,根据字符串的值来跳转到相应页面
    421. */
    422. @RequestMapping(value = "/delete.json", method = RequestMethod.POST)
    423. @ResponseBody
    424. public String exDeleteJson(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
    425. ///1.通过主键删除
    426. filmService.deleteById(id);
    427. /*以下是多种删除方式*/
    428. // //2.通过实体条件删除
    429. // filmService.deleteByEntity(film);
    430. // //3.通过参数删除
    431. // //通过map查询
    432. // Map params = new HashMap();
    433. //
    434. // if(!isEmpty(film.getName())){
    435. // params.put("name", film.getName());
    436. // }
    437. //
    438. // if(!isEmpty(film.getContent())){
    439. // params.put("content", film.getContent());
    440. // }
    441. //
    442. // if(!isEmpty(film.getIsDelete())){
    443. // params.put("isDelete", film.getIsDelete());
    444. // }
    445. //
    446. // if(!isEmpty(film.getPic())){
    447. // params.put("pic", film.getPic());
    448. // }
    449. //
    450. // filmService.deleteByMap(params);
    451. // //4.状态删除
    452. // Film load = filmService.getById(film.getId())
    453. // load.setIsDelete(1);
    454. // filmService.updateById(load);
    455. //5.状态删除
    456. //Film load = filmService.load(id);
    457. //load.setIsDelete(1);
    458. //filmService.updateById(load);
    459. JSONObject jsonObject = new JSONObject();
    460. jsonObject.put("message", "删除成功");
    461. return jsonObject.toString();
    462. }
    463. /**
    464. * 保存上传的文件然后跳转到对应的JSP
    465. *
    466. * @param file 文件对象,对应前端传来的文件,比如图片,视频等
    467. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    468. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    469. * @return 一个字符串,根据字符串的值来跳转到相应页面
    470. */
    471. @RequestMapping(value = "/saveFile")
    472. public String saveFile(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, Model model) {
    473. System.out.println("开始");
    474. String path = request.getSession().getServletContext().getRealPath("/upload");
    475. String fileName = file.getOriginalFilename();
    476. System.out.println(path);
    477. File targetFile = new File(path, fileName);
    478. if(!targetFile.exists()){
    479. targetFile.mkdirs();
    480. }
    481. //保存
    482. try {
    483. file.transferTo(targetFile);
    484. } catch (Exception e) {
    485. e.printStackTrace();
    486. }
    487. return "";
    488. }
    489. /**
    490. * 保存上传的多个文件然后跳转到对应的JSP
    491. *
    492. * @param files 文件对象,对应前端传来的文件,比如图片,视频等s
    493. * @param id 主键ID
    494. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    495. * @return 一个字符串,根据字符串的值来跳转到相应页面
    496. */
    497. @RequestMapping(value = "/saveFiles")
    498. public String saveFiles(@RequestParam("file") CommonsMultipartFile[] files,Integer id,HttpServletRequest request){
    499. for(int i = 0;i
    500. System.out.println("fileName---------->" + files[i].getOriginalFilename());
    501. if(!files[i].isEmpty()){
    502. int pre = (int) System.currentTimeMillis();
    503. try {
    504. //拿到输出流,同时重命名上传的文件
    505. String filePath = request.getRealPath("/upload");
    506. File f=new File(filePath);
    507. if(!f.exists()){
    508. f.mkdirs();
    509. }
    510. String fileNmae=new Date().getTime() + files[i].getOriginalFilename();
    511. File file=new File(filePath+"/"+pre + files[i].getOriginalFilename());
    512. if(!file.exists()){
    513. file.createNewFile();
    514. }
    515. files[i].transferTo(file);
    516. } catch (Exception e) {
    517. e.printStackTrace();
    518. System.out.println("上传出错");
    519. }
    520. }
    521. }
    522. return "";
    523. }
    524. // --------------------------------------- 华丽分割线 ------------------------------
    525. }

    登录管理控制器

    1. /**
    2. * 这个类是Login控制器,负责接收JSP的值,补充数据后,然后跳转到其他页面
    3. */
    4. @Controller
    5. @RequestMapping("/login")
    6. public class LoginController extends BaseController{
    7. @Autowired
    8. private ManageService manageService;
    9. @Autowired
    10. private UserService userService;
    11. @Autowired
    12. private CommentService commentService;
    13. @Autowired
    14. private FilmService filmService;
    15. @Autowired
    16. private CollectService collectService;
    17. /**
    18. * Login string.
    19. *
    20. * @return 一个字符串,根据字符串的值来跳转到相应页面
    21. */
    22. @RequestMapping("/login")
    23. public String login(){
    24. return "login/login";
    25. }
    26. /**
    27. * U login string.
    28. *
    29. * @return 一个字符串,根据字符串的值来跳转到相应页面
    30. */
    31. @RequestMapping("/uLogin")
    32. public String uLogin(){
    33. return "login/uLogin";
    34. }
    35. /**
    36. * 跳转主页
    37. *
    38. * @return 一个字符串,根据字符串的值来跳转到相应页面
    39. */
    40. @RequestMapping("/index")
    41. public String index(){
    42. return "login/index";
    43. }
    44. /**
    45. * To login string.
    46. *
    47. * @param manage 管理员类的对象
    48. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    49. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    50. * @return 一个字符串,根据字符串的值来跳转到相应页面
    51. */
    52. @RequestMapping("/toLogin")
    53. @ResponseBody
    54. public String toLogin(Manage manage, HttpServletRequest request, HttpServletResponse response){
    55. Manage byEntity = manageService.getByEntity(manage);
    56. JSONObject jsonObject = new JSONObject();
    57. if(byEntity == null){
    58. jsonObject.put("res", 0);
    59. }else{
    60. request.getSession().setAttribute("role", byEntity.getType());
    61. request.getSession().setAttribute("mid", byEntity.getId());
    62. request.getSession().setAttribute("xm",byEntity.getRealName());
    63. jsonObject.put("res", 1);
    64. }
    65. return jsonObject.toString();
    66. }
    67. /**
    68. * Ulogin string.
    69. *
    70. * @param manage 管理员类的对象
    71. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    72. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    73. * @return 一个字符串,根据字符串的值来跳转到相应页面
    74. */
    75. @RequestMapping("/ulogin")
    76. public String ulogin(User manage, HttpServletRequest request, HttpServletResponse response){
    77. User byEntity = userService.getByEntity(manage);
    78. JSONObject jsonObject = new JSONObject();
    79. if(byEntity == null){
    80. return "redirect:/login/uIndex.action";
    81. }else{
    82. request.getSession().setAttribute("role", 1);
    83. request.getSession().setAttribute("mid", byEntity.getId());
    84. request.getSession().setAttribute("xm",byEntity.getName());
    85. return "redirect:/login/uIndex.action";
    86. }
    87. }
    88. /**
    89. * Res string.
    90. *
    91. * @param user 用户对象
    92. * @return 一个字符串,根据字符串的值来跳转到相应页面
    93. */
    94. @RequestMapping("/res")
    95. public String res(User user) {
    96. user.setIsDelete(0);
    97. userService.insert(user);
    98. return "redirect:/login/uIndex.action";
    99. }
    100. /**
    101. * U index string.
    102. *
    103. * @param type 用户的类型,根据值来判断
    104. * @param name 名字
    105. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    106. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    107. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    108. * @return 一个字符串,根据字符串的值来跳转到相应页面
    109. */
    110. @RequestMapping(value = "/uIndex")
    111. public String uIndex(Integer type,String name, Model model, HttpServletRequest request, HttpServletResponse response) {
    112. String sql = "SELECT * FROM film WHERE isDelete = 0 ";
    113. if (type != null ){
    114. sql+=" and type = "+type;
    115. }
    116. if (StringUtils.isNoneBlank(name)){
    117. sql += " and name like '%"+name+"%'";
    118. }
    119. sql+=" order by id desc";
    120. Pager findBySqlRerturnEntity = filmService.findBySqlRerturnEntity(sql);
    121. model.addAttribute("type", type);
    122. model.addAttribute("name", name);
    123. model.addAttribute("pagers", findBySqlRerturnEntity);
    124. String sql2 = "SELECT * FROM film WHERE isDelete = 0 order by id desc limit 0,10 ";
    125. List findBySqlRerturnEntity2 = filmService.listBySqlReturnEntity(sql2);
    126. model.addAttribute("pagers2", findBySqlRerturnEntity2);
    127. return "login/uIndex";
    128. }
    129. /**
    130. * Tuichu string.
    131. *
    132. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    133. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    134. * @return 一个字符串,根据字符串的值来跳转到相应页面
    135. */
    136. @RequestMapping("/tuichu")
    137. public String tuichu( HttpServletRequest request, HttpServletResponse response){
    138. HttpSession session = request.getSession();
    139. session.invalidate();
    140. return "redirect:/login/login.action";
    141. }
    142. /**
    143. * 根据ID查看表的某一条数据
    144. *
    145. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    146. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    147. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    148. * @return 一个字符串,根据字符串的值来跳转到相应页面
    149. */
    150. @RequestMapping("/view")
    151. public String view( HttpServletRequest request, HttpServletResponse response, Model model){
    152. Object attribute = request.getSession().getAttribute("mid");
    153. if (attribute == null){
    154. return "redirect:/login/uIndex.action";
    155. }
    156. Integer userId = Integer.valueOf(attribute.toString());
    157. User load = userService.load(userId);
    158. model.addAttribute("obj", load);
    159. return "login/view";
    160. }
    161. /**
    162. * Sc string.
    163. *
    164. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    165. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    166. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    167. * @return 一个字符串,根据字符串的值来跳转到相应页面
    168. */
    169. @RequestMapping("/sc")
    170. public String sc( HttpServletRequest request, HttpServletResponse response, Model model){
    171. Object attribute = request.getSession().getAttribute("mid");
    172. if (attribute == null){
    173. return "redirect:/login/uIndex.action";
    174. }
    175. Integer userId = Integer.valueOf(attribute.toString());
    176. User load = userService.load(userId);
    177. model.addAttribute("obj", load);
    178. List listBySqlReturnEntity = collectService.listBySqlReturnEntity("SELECT * FROM collect WHERE userId = "+userId);
    179. model.addAttribute("list", listBySqlReturnEntity);
    180. return "login/sc";
    181. }
    182. /**
    183. * Pl string.
    184. *
    185. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    186. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    187. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    188. * @return 一个字符串,根据字符串的值来跳转到相应页面
    189. */
    190. @RequestMapping("/pl")
    191. public String pl( HttpServletRequest request, HttpServletResponse response, Model model){
    192. Object attribute = request.getSession().getAttribute("mid");
    193. if (attribute == null){
    194. return "redirect:/login/uIndex.action";
    195. }
    196. Integer userId = Integer.valueOf(attribute.toString());
    197. User load = userService.load(userId);
    198. model.addAttribute("obj", load);
    199. List listBySqlReturnEntity = commentService.listBySqlReturnEntity("SELECT * FROM comment WHERE userId = "+userId);
    200. model.addAttribute("list", listBySqlReturnEntity);
    201. return "login/pl";
    202. }
    203. /**
    204. * Delete sc string.
    205. *
    206. * @param id 主键ID
    207. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    208. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    209. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    210. * @return 一个字符串,根据字符串的值来跳转到相应页面
    211. */
    212. @RequestMapping("/deleteSc")
    213. public String deleteSc( Integer id,HttpServletRequest request, HttpServletResponse response, Model model){
    214. Object attribute = request.getSession().getAttribute("mid");
    215. if (attribute == null){
    216. return "redirect:/login/uIndex.action";
    217. }
    218. Integer userId = Integer.valueOf(attribute.toString());
    219. collectService.deleteById(id);
    220. return "redirect:/login/sc.action";
    221. }
    222. /**
    223. * Utuichu string.
    224. *
    225. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    226. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    227. * @return 一个字符串,根据字符串的值来跳转到相应页面
    228. */
    229. @RequestMapping("/utuichu")
    230. public String utuichu( HttpServletRequest request, HttpServletResponse response){
    231. HttpSession session = request.getSession();
    232. session.invalidate();
    233. return "redirect:/login/uIndex.action";
    234. }
    235. /**
    236. * Toupdate string.
    237. *
    238. * @param user 用户对象
    239. * @param request request对象,JSP内置对象,不一定用到,一般用来做传值或者保存数据到前台,或者获取session
    240. * @param response response对象,JSP内置对象,不一定用到,一般用来向前端返回值
    241. * @param model model对象,Spring框架的,在这里用来向JSP页面传值
    242. * @return 一个字符串,根据字符串的值来跳转到相应页面
    243. */
    244. //toupdate
    245. @RequestMapping("/toupdate")
    246. public String toupdate(User user, HttpServletRequest request, HttpServletResponse response, Model model){
    247. Object attribute = request.getSession().getAttribute("mid");
    248. if (attribute == null){
    249. return "redirect:/login/uIndex.action";
    250. }
    251. Integer userId = Integer.valueOf(attribute.toString());
    252. User load = userService.load(userId);
    253. load.setEmail(user.getEmail());
    254. load.setIdCard(user.getIdCard());
    255. load.setName(user.getName());
    256. load.setNickname(user.getNickname());
    257. load.setPassword(user.getPassword());
    258. load.setPhone(user.getPhone());
    259. userService.updateById(load);
    260. HttpSession session = request.getSession();
    261. session.invalidate();
    262. return "redirect:/login/uIndex.action";
    263. }
    264. @RequestMapping("/head")
    265. private String head(){
    266. return "inc/head";
    267. }
    268. @RequestMapping("/wel")
    269. private String left(){
    270. return "login/welcome";
    271. }
    272. }

    如果也想学习本系统,下面领取。关注并回复:131ssm

  • 相关阅读:
    对硬件编程的一点理解---vitis使用
    TCP/IP五层协议栈(2)
    Vue---8种组件传值方式总结,总有一款适合你
    Vue3 封装 Element Plus Menu 无限级菜单组件
    华为机试 - 连续出牌数量
    长度最小的子数组(滑动窗口)
    I.MX6UL的uboot移植
    湘潭大学软件工程数据库2(题型,复习资源和计划)
    CC攻击演示
    【稳定性】关于缩短MTTR的探索
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/126542928