基于Springboot的漫畫網(wǎng)站平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
一、項(xiàng)目簡(jiǎn)介
本項(xiàng)目基于Springboot實(shí)現(xiàn)開(kāi)發(fā)了一個(gè)漫畫主題的網(wǎng)站,實(shí)現(xiàn)了一個(gè)比漂亮的動(dòng)漫連載的網(wǎng)站系統(tǒng)。前端用戶注冊(cè)登陸后可以在線查看漫畫連載信息等,對(duì)個(gè)人信息進(jìn)行管理等操作。后臺(tái)管理用戶登陸后可以實(shí)現(xiàn)用戶管理,動(dòng)漫管理,反饋管理,更新預(yù)告管理,漫畫排行管理等相關(guān)功能模塊,界面設(shè)計(jì)優(yōu)雅大方,比較適合做畢業(yè)設(shè)計(jì)和課程設(shè)計(jì)使用。
二、環(huán)境介紹
語(yǔ)言環(huán)境:Java: jdk1.8
數(shù)據(jù)庫(kù):Mysql: mysql5.7
應(yīng)用服務(wù)器:Tomcat: tomcat8.5.31
開(kāi)發(fā)工具:IDEA或eclipse
后臺(tái)開(kāi)發(fā)技術(shù):Springboot+Mybatis
前后開(kāi)發(fā)技術(shù):Layui+Bootstrap
三、系統(tǒng)展示
系統(tǒng)前端展示

用戶注冊(cè)

登陸

個(gè)人中心

后臺(tái)管理 admin/111111


用戶管理

漫畫管理

最近更新

更新預(yù)告

精品力薦

友情鏈接

漫畫排行

反饋列表

四、核心代碼展示
package com.mhd.manhuadui.web;
import com.mhd.manhuadui.Pojo.Admin;
import com.mhd.manhuadui.Pojo.Comicrank;
import com.mhd.manhuadui.Pojo.MyService;
import com.mhd.manhuadui.Service.AdminService;
import com.mhd.manhuadui.Util.MD5Util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.Properties;
@Controller
@RequestMapping("/admin")
//@SessionAttributes(value = {"a_id","adminname","adminpassword"})
public class AdminController {
@Autowired
private AdminService adminService;
//進(jìn)入后臺(tái)首先跳轉(zhuǎn)到登錄頁(yè)面
@GetMapping
public String LoginPage() {
return "admin/lyear_pages_login";
}
//轉(zhuǎn)向后臺(tái)主頁(yè)
@GetMapping("/a")
public String index() {
return "admin/index";
}
/**
* 管理員注銷登錄
* @param session
* @return
*/
@GetMapping("/loginout")
public String loginout(HttpSession session) {
session.removeAttribute("admin");
return "redirect:/admin";
}
/**
*管理員登錄驗(yàn)證
*/
@PostMapping("/logincheck")
public String logincheck(@RequestParam String adminname,
@RequestParam String adminpassword,
HttpSession session,
RedirectAttributes attributes,
HttpServletRequest request,
Model model) {
Admin a=new Admin();
a.setAdminname(adminname);
a.setAdminpassword(MD5Util.code(adminpassword));
Admin admin = adminService.adminlogin(a);
if(admin!=null) {
session.setAttribute("admin",admin);
// attributes.addFlashAttribute("admin",admin);
model.addAttribute("admin",admin);
//如果登錄成功跳轉(zhuǎn)到管理員首頁(yè),防止表單重復(fù)提交
return "redirect:/admin/main.html";
} else {
attributes.addFlashAttribute("error","賬號(hào)或者密碼錯(cuò)誤");
return "redirect:/admin";
}
}
@GetMapping("/top")
public String top() {
return "admin/top";
}
/**
* 獲取服務(wù)器信息
* @return
*/
@GetMapping("/right")
public String right(MyService myService,HttpServletRequest request,Model model) {
//服務(wù)器環(huán)境
Properties props = MyService.getSystemProperties();
String system = props.getProperty("os.name");
//java版本
String jdkversion =props.getProperty("java.specification.version");
//數(shù)據(jù)庫(kù)版本號(hào)
String sqlname = adminService.getMysql();
//服務(wù)器IP地址
String ipaddress = request.getLocalAddr();
//服務(wù)器主機(jī)名
String domainname = request.getLocalName();
myService.setSystem(system);
myService.setJdkversion(jdkversion);
myService.setSqlname(sqlname);
myService.setIpaddress(ipaddress);
myService.setDomainname(domainname);
model.addAttribute("myService",myService);
model.addAttribute("usernumber",adminService.getUsernumber());
model.addAttribute("mhinfonumber",adminService.getMhinfonumber());
return "admin/right";
}
@GetMapping("/left")
public String left() {
return "admin/left";
}
}package com.mhd.manhuadui.web;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.mhd.manhuadui.Pojo.Img;
import com.mhd.manhuadui.Pojo.Mhinfo;
import com.mhd.manhuadui.Pojo.Mhlist;
import com.mhd.manhuadui.Service.ComicmainService;
import com.mhd.manhuadui.Service.ComicrankService;
import com.mhd.manhuadui.Service.TrailerService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import javax.jws.WebParam;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* 后臺(tái)漫畫管理控制器
*/
@Controller
@RequestMapping("/admin")
public class ComicmainController {
@Autowired
ComicmainService comicmainService;
/**
* 倒序顯示列表
* @param model
* @param start
* @param size
* @return
* @throws Exception
*/
@GetMapping("/comicmain")
public String comicmain(Model model,
@RequestParam(value = "start",
defaultValue = "0") int start,
@RequestParam(value = "size",
defaultValue = "5") int size) throws Exception {
PageHelper.startPage(start,size,"id desc");
List<Mhinfo> list = new ArrayList<>();
list = comicmainService.getAll();
PageInfo<Mhinfo> page= new PageInfo<>(list);
model.addAttribute("page",page);
return "admin/Comicmain";
}
/**
* 跳轉(zhuǎn)到添加漫畫頁(yè)面
*/
@GetMapping("/addcomic")
public String addcomic() {
return "admin/addcomic";
}
/**
*
*跳轉(zhuǎn)到更新漫畫頁(yè)面
*/
@GetMapping("updatecomic")
public String updatecomic() {
return "admin/updatecomic";
}
/**
* 添加漫畫
*/
@GetMapping("/AddComicCheck")
public String Addcomic(Model model, RedirectAttributes attributes, @RequestParam String mhname,
@RequestParam String authorname, @RequestParam Integer size,
@RequestParam String announcement, @RequestParam String state,
@RequestParam String category, @RequestParam String type,
@RequestParam String region, @RequestParam String Introduction,
@RequestParam String alias, @RequestParam String imgurl
) {
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
// Date date = new Date();
// String updatetime = sdf.format(date);
Mhinfo mhinfo = new Mhinfo();
mhinfo.setMhname(mhname);
mhinfo.setAuthorname(authorname);
mhinfo.setSize(size);
mhinfo.setAnnouncement(announcement);
mhinfo.setState(state);
mhinfo.setCategory(category);
mhinfo.setType(type);
mhinfo.setRegion(region);
mhinfo.setIntroduction(Introduction);
mhinfo.setAlias(alias);
mhinfo.setImgname("我是圖片");
mhinfo.setImgurl(imgurl);
mhinfo.setUpdatetime(new Date());
if(mhinfo!=null) {
comicmainService.savemh(mhinfo);
System.out.println("添加成功");
attributes.addFlashAttribute("message","添加成功,你可以繼續(xù)添加或者關(guān)閉頁(yè)面");
return "redirect:/admin/addcomic";
} else {
System.out.println("添加失敗");
attributes.addFlashAttribute("error","添加失敗");
return "redirect:/admin/addcomic";
}
}
/**
* 刪除漫畫
*/
@GetMapping("/deletemh")
public String deletemh(@RequestParam Integer id) {
comicmainService.remove(id);
System.out.println("刪除成功"+id);
return "redirect:/admin/comicmain";
}
/**
* 獲取漫畫內(nèi)容
*/
@GetMapping("/getId")
public String getId(int id,Model model) {
Mhinfo mhinfo = new Mhinfo();
mhinfo = comicmainService.getId(id);
model.addAttribute("list",mhinfo);
return "admin/updatecomic";
}
/**
* 更新漫畫
*/
@GetMapping("/update")
public String update(Model model, RedirectAttributes attributes, @RequestParam String mhname,
@RequestParam String authorname, @RequestParam Integer size,
@RequestParam String announcement, @RequestParam String state,
@RequestParam String category, @RequestParam String type,
@RequestParam String region, @RequestParam String Introduction,
@RequestParam String alias, @RequestParam String imgurl,
@RequestParam Integer id){
Mhinfo mhinfo = new Mhinfo();
mhinfo.setId(id);
mhinfo.setMhname(mhname);
mhinfo.setAuthorname(authorname);
mhinfo.setSize(size);
mhinfo.setAnnouncement(announcement);
mhinfo.setState(state);
mhinfo.setCategory(category);
mhinfo.setType(type);
mhinfo.setRegion(region);
mhinfo.setIntroduction(Introduction);
mhinfo.setAlias(alias);
mhinfo.setImgurl(imgurl);
mhinfo.setUpdatetime(new Date());
comicmainService.updatecomic(mhinfo);
System.out.println("更新成功");
return "redirect:/admin/comicmain";
}
/**
* 漫畫模糊查詢
*/
@GetMapping("/serachmh")
public String serachmh(@RequestParam String nameorauthor,Model model) {
List<Mhinfo> list = new ArrayList<>();
list = comicmainService.getnameorau(nameorauthor);
if(list.toString().equals("[]")) {
model.addAttribute("message","沒(méi)有搜索到相關(guān)數(shù)據(jù)");
return "admin/comicserach";
} else {
model.addAttribute("list", list);
return "admin/comicserach";
}
}
/**
* 獲取漫畫名跳轉(zhuǎn)到添加章節(jié)列表
*/
@GetMapping("/addtitle")
public String addtitle(String name,Model model) {
int id = comicmainService.sidbyname(name);
System.err.println(id);
model.addAttribute("id",id);
return "admin/addtitle";
}
/**
* 顯示章節(jié)列表
*/
@GetMapping("/titlelist")
public String titlelist(Integer id,Model model) {
List<Mhlist> list = new ArrayList<>();
Mhinfo m = new Mhinfo();
m = comicmainService.getId(id);
list = comicmainService.getmhlist(id);
model.addAttribute("list",list);
model.addAttribute("m",m);
return "admin/titlelist";
}
/**
* 添加章節(jié)列表
*/
@GetMapping("/AddTitle")
public String AddTitle(RedirectAttributes attributes,@RequestParam int id,@RequestParam String title) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String time = sdf.format(date);
Mhlist m = new Mhlist();
m.setM_id(id);
m.setCreatetime(time);
m.setTitle(title);
comicmainService.savemhlist(m);
System.out.println("保存成功");
attributes.addFlashAttribute("message","添加成功,可以繼續(xù)添加或者關(guān)閉會(huì)話框");
return "redirect:/admin/success";
}
@GetMapping("/success")
public String success() {
return "admin/success";
}
/**
* 漫畫圖片顯示列表
* @param id
* @param model
* @return
*/
@GetMapping("/mhimglist")
public String mhimglist(Integer id,Model model) {
List<Img> list = new ArrayList<>();
list = comicmainService.imglist(id);
String name = comicmainService.Selectnamebyid(id);
String title = comicmainService.Selecttitlebyid(id);
model.addAttribute("list",list);
model.addAttribute("name",name);
model.addAttribute("title",title);
return "admin/mhlist";
}
/**
* 跳轉(zhuǎn)到上傳漫畫圖片頁(yè)面
*/
@GetMapping("/addmhImg")
public String addmhimg() {
return "admin/addmhImg";
}
/**
* 上傳漫畫圖片
*/
@GetMapping("/addmhimgcheck")
public String addmhimgcheck(@RequestParam Integer id,@RequestParam String imgurl,RedirectAttributes attributes) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String createtime = sdf.format(date);
Img i = new Img();
i.setI_id(id);
i.setImgurl(imgurl);
i.setCreatetime(createtime);
comicmainService.Saveimg(i);
System.out.println("添加成功"+imgurl);
attributes.addFlashAttribute("message","添加成功你可以繼續(xù)添加或者關(guān)閉會(huì)話框");
return "redirect:/admin/addmhImg";
}
}package com.mhd.manhuadui.web;
import com.mhd.manhuadui.Pojo.Comicrank;
import com.mhd.manhuadui.Service.ComicrankService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 漫畫排名控制器
*/
@Controller
@RequestMapping("/admin")
public class ComicrankController {
@Autowired
ComicrankService comicrankService;
/**
* 漫畫排名
* @return
*/
@GetMapping("/comicrank")
public String comicrank(Model model) throws Exception {
List<Comicrank> list = comicrankService.getComicPaiming();
if(list!=null) {
model.addAttribute("c2",list);
return "admin/Comicrank";
}
else {
System.err.println("獲取內(nèi)容失敗");
return "redirect:/admin/index";
}
}
/**
* 更新漫畫排名
* @param c_id
* @param c_name
* @param c_words
* @return
*/
@GetMapping("/updatepaiming")
public String updatecomicrank(@RequestParam int c_id,@RequestParam String c_name,@RequestParam String c_words) {
Comicrank comicrank = new Comicrank();
comicrank.setC_id(c_id);
comicrank.setC_name(c_name);
comicrank.setC_words(c_words);
comicrankService.updategetid(comicrank);
System.out.println("更新成功");
return "redirect:/admin/comicrank";
// System.err.println("更心失敗");
// return "admin/updatecomicrank";
}
@GetMapping("/getid")
public String getId(int c_id,Model model) {
Comicrank comicrank = comicrankService.getone(c_id);
model.addAttribute("c",comicrank);
return "admin/updatecomicrank";
}
}五、項(xiàng)目總結(jié)
表結(jié)構(gòu)模型如下:

以上就是基于Springboot的漫畫網(wǎng)站平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Springboot漫畫網(wǎng)站的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 基于Springboot的高校社團(tuán)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- springboot實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- SpringBoot前后端分離實(shí)現(xiàn)個(gè)人博客系統(tǒng)
- springboot詳解實(shí)現(xiàn)車險(xiǎn)理賠信息管理系統(tǒng)代碼
- Springboot詳解實(shí)現(xiàn)食品倉(cāng)庫(kù)管理系統(tǒng)流程
- 基于Springboot疫苗接種行程管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于Springboot實(shí)現(xiàn)送水公司信息管理系統(tǒng)
相關(guān)文章
Feign遠(yuǎn)程調(diào)用參數(shù)里面內(nèi)容丟失的解決方案
這篇文章主要介紹了Feign遠(yuǎn)程調(diào)用參數(shù)里面內(nèi)容丟失的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
Java的StringBuilder在高性能場(chǎng)景下的正確用法
StringBuilder?對(duì)字符串的操作是直接改變字符串對(duì)象本身,而不是生成新的對(duì)象,所以新能開(kāi)銷小.與StringBuffer相比StringBuilder的性能略高,StringBuilder則沒(méi)有保證線程的安全,從而性能略高于StringBuffer,需要的朋友可以參考下2023-05-05
解決引用slf4j中Logger.info只打印出文字沒(méi)有數(shù)據(jù)的問(wèn)題
這篇文章主要介紹了解決引用slf4j中Logger.info只打印出文字沒(méi)有數(shù)據(jù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Springboot如何使用logback實(shí)現(xiàn)多環(huán)境配置?
上一篇文章中老顧介紹了logback基本配置,了解了日志配置的基本方式.我們平時(shí)在系統(tǒng)開(kāi)發(fā)時(shí),開(kāi)發(fā)環(huán)境與生產(chǎn)環(huán)境的日志配置會(huì)不一樣;那今天老顧就跟大家介紹一下如何實(shí)現(xiàn)多環(huán)境配置,需要的朋友可以參考下2021-06-06
idea如何修改文件的file is read-only問(wèn)題
這篇文章主要介紹了idea如何修改文件的file is read-only問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
SpringBoot @PathVariable使用時(shí)遇到的問(wèn)題及解決
這篇文章主要介紹了SpringBoot @PathVariable使用時(shí)遇到的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
spring通過(guò)構(gòu)造函數(shù)注入實(shí)現(xiàn)方法分析
這篇文章主要介紹了spring通過(guò)構(gòu)造函數(shù)注入實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了spring通過(guò)構(gòu)造函數(shù)注入的原理、實(shí)現(xiàn)步驟及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-10-10
Springboot以Repository方式整合Redis的方法
這篇文章主要介紹了Springboot以Repository方式整合Redis的方法,本文通過(guò)圖文并茂實(shí)例詳解給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
SpringBoot服務(wù)開(kāi)啟后通過(guò)端口訪問(wèn)無(wú)反應(yīng)的解決
這篇文章主要介紹了SpringBoot服務(wù)開(kāi)啟后通過(guò)端口訪問(wèn)無(wú)反應(yīng)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10

