基于Springboot vue的在线网络小说阅读网站的设计与实现
摘 要
现在是互联网快速发展的时代,网络是一种新媒体的类型,被称为“第四媒体”,随着越来越多的人进入互联网时代,网络阅读一种由文本的变化所带来的新的阅读方式,借助计算机、网络技术来获取多媒体合成信息和知识的阅读行为,对人们来说是一个新的阅读体验,改变了阅读的媒介(以前是纸质的),是时代的进步。
基于Springboot vue的在线网络小说阅读网站主要实现了阅读书籍、搜索书籍、收藏自己喜欢的书籍等功能。管理员可以管理用户、管理作者、管理书架,可以切换页面主题有暗黑模式和明亮模式,还可以切换简体、繁体、英语三种语言使得后台管理更加方便。
本系统在IDEA编译软件下,使用纯面向对象的Java语言,Springboot作为后端框架,MySQL数据库等技术进行开发,使用VUE对网站前端界面进行设计,用Navicat for MySQL管理MySQL数据库。
【548】基于springboot vue前后端分离的小说阅读网站源码和论文PPT
关键词 Springboot;阅读;Java语言;MySQL数据库
在计算机技术与互联网时代飞速发展的现代社会,网络已经在我们的生活中随处可见了,人们身边的网络也在时移俗易,并且在不断的改变人们的生活方式。人们所生活的环境已经到了二十一世纪万物都信息化的时代,网络是人们生活、学习与工作不可分割的一部分了。这意味着数字媒体作为我们日常生活的一个组成部分无处不在[1]。现如今网络上各类多媒体网站的飞速发展,给我们提供了一个明确的开发系统的方向,本系统的开发是基于Springboot vue的在线网络小说阅读网站。网络上的多媒体提供一个对内容丰富,使用方便的环境,越来越多网络使用者喜欢上了这种足不出户也可以浏览到自己喜欢的小说的阅读方式。从纸质阅读转换到数字阅读,这是科技带来的趋势[2]。通过对网络上成熟的小说网站进行调查发现,现阶段的一些网站,在用户体验上,网站首页的美化上,网站的制作技术上或多或少都存在了一些不足之处,我所开发的在线网络小说阅读网站通过书评的功能,给用户们提供一个相互交流通道,用户将自己创作作品发布到这个网站上让更多的人看到自己的文字,而其他人可以在网站寻找自己想浏览的小说还可以发表自己对他人小说的看法建议,用户能根据他人的评论获取创新灵感,加强了用户与网站之间的粘合度。基于Springboot的在线网络小说阅读网站的存在也可以减少买实体小说的数量,可以节约一些因为实体产出所用的树木纸张资源。在网络计算机科学技术飞速发展的现代社会,我国的网站,网页开发的技术也一跃千里,但小说网站的开发与使用仍然停留在发展中的阶段,还有很大的上升空间,在这种无论是技术还是逻辑体系都在发展中的背景下,本文详细介绍了一个在线网络小说阅读网站的设计和实现过程。
package com.java.book.controller;
import com.alibaba.fastjson.JSONObject;
import com.java.book.domain.Consumer;
import com.java.book.service.ConsumerService;
import com.java.book.utils.Consts;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 前端用户控制类
*/
@RestController
@RequestMapping("/consumer")
public class ConsumerController {
@Autowired
private ConsumerService consumerService;
/**
* 添加前端用户
*/
@RequestMapping(value = "/add",method = RequestMethod.POST)
public Object addConsumer(HttpServletRequest request){
JSONObject jsonObject = new JSONObject();
String username = request.getParameter("username").trim(); //账号
String password = request.getParameter("password").trim(); //密码
String sex = request.getParameter("sex").trim(); //性别
String phoneNum = request.getParameter("phoneNum").trim(); //手机号
String email = request.getParameter("email").trim(); //电子邮箱
String birth = request.getParameter("birth").trim(); //生日
String introduction = request.getParameter("introduction").trim();//签名
String location = request.getParameter("location").trim(); //地区
String avator = request.getParameter("avator").trim(); //头像地址
if(username==null||username.equals("")){
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"用户名不能为空");
return jsonObject;
}
Consumer consumer1 = consumerService.getByUsername(username);
if(consumer1!=null){
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"用户名已存在");
return jsonObject;
}
if(password==null||password.equals("")){
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"密码不能为空");
return jsonObject;
}
//把生日转换成Date格式
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date birthDate = new Date();
try {
birthDate = dateFormat.parse(birth);
} catch (ParseException e) {
e.printStackTrace();
}
//保存到前端用户的对象中
Consumer consumer = new Consumer();
consumer.setUsername(username);
consumer.setPassword(password);
consumer.setSex(new Byte(sex));
consumer.setPhoneNum(phoneNum);
consumer.setEmail(email);
consumer.setBirth(birthDate);
consumer.setIntroduction(introduction);
consumer.setLocation(location);
consumer.setAvator(avator);
boolean flag = consumerService.insert(consumer);
if(flag){ //保存成功
jsonObject.put(Consts.CODE,1);
jsonObject.put(Consts.MSG,"添加成功");
return jsonObject;
}
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"添加失败");
return jsonObject;
}
/**
* 修改前端用户
*/
@RequestMapping(value = "/update",method = RequestMethod.POST)
public Object updateConsumer(HttpServletRequest request){
JSONObject jsonObject = new JSONObject();
String id = request.getParameter("id").trim(); //主键
String username = request.getParameter("username").trim(); //账号
String password = request.getParameter("password").trim(); //密码
String sex = request.getParameter("sex").trim(); //性别
String phoneNum = request.getParameter("phoneNum").trim(); //手机号
String email = request.getParameter("email").trim(); //电子邮箱
String birth = request.getParameter("birth").trim(); //生日
String introduction = request.getParameter("introduction").trim();//签名
String location = request.getParameter("location").trim(); //地区
if(username==null||username.equals("")){
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"用户名不能为空");
return jsonObject;
}
if(password==null||password.equals("")){
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"密码不能为空");
return jsonObject;
}
//把生日转换成Date格式
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date birthDate = new Date();
try {
birthDate = dateFormat.parse(birth);
} catch (ParseException e) {
e.printStackTrace();
}
//保存到前端用户的对象中
Consumer consumer = new Consumer();
consumer.setId(Integer.parseInt(id));
consumer.setUsername(username);
consumer.setPassword(password);
consumer.setSex(new Byte(sex));
consumer.setPhoneNum(phoneNum);
consumer.setEmail(email);
consumer.setBirth(birthDate);
consumer.setIntroduction(introduction);
consumer.setLocation(location);
boolean flag = consumerService.update(consumer);
if(flag){ //保存成功
jsonObject.put(Consts.CODE,1);
jsonObject.put(Consts.MSG,"修改成功");
return jsonObject;
}
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"修改失败");
return jsonObject;
}
/**
* 删除前端用户
*/
@RequestMapping(value = "/delete",method = RequestMethod.GET)
public Object deleteConsumer(HttpServletRequest request){
String id = request.getParameter("id").trim(); //主键
boolean flag = consumerService.delete(Integer.parseInt(id));
return flag;
}
/**
* 根据主键查询整个对象
*/
@RequestMapping(value = "/selectByPrimaryKey",method = RequestMethod.GET)
public Object selectByPrimaryKey(HttpServletRequest request){
String id = request.getParameter("id").trim(); //主键
return consumerService.selectByPrimaryKey(Integer.parseInt(id));
}
/**
* 查询所有前端用户
*/
@RequestMapping(value = "/allConsumer",method = RequestMethod.GET)
public Object allConsumer(HttpServletRequest request){
return consumerService.allConsumer();
}
/**
* 更新前端用户图片
*/
@RequestMapping(value = "/updateConsumerPic",method = RequestMethod.POST)
public Object updateConsumerPic(@RequestParam("file") MultipartFile avatorFile, @RequestParam("id")int id){
JSONObject jsonObject = new JSONObject();
if(avatorFile.isEmpty()){
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"文件上传失败");
return jsonObject;
}
//文件名=当前时间到毫秒+原来的文件名
String fileName = System.currentTimeMillis()+avatorFile.getOriginalFilename();
//文件路径
String filePath = System.getProperty("user.dir")+System.getProperty("file.separator")+"avatorImages";
//如果文件路径不存在,新增该路径
File file1 = new File(filePath);
if(!file1.exists()){
file1.mkdir();
}
//实际的文件地址
File dest = new File(filePath+System.getProperty("file.separator")+fileName);
//存储到数据库里的相对文件地址
String storeAvatorPath = "/avatorImages/"+fileName;
try {
avatorFile.transferTo(dest);
Consumer consumer = new Consumer();
consumer.setId(id);
consumer.setAvator(storeAvatorPath);
boolean flag = consumerService.update(consumer);
if(flag){
jsonObject.put(Consts.CODE,1);
jsonObject.put(Consts.MSG,"上传成功");
jsonObject.put("avator",storeAvatorPath);
return jsonObject;
}
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"上传失败");
return jsonObject;
} catch (IOException e) {
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"上传失败"+e.getMessage());
}finally {
return jsonObject;
}
}
/**
* 前端用户登录
*/
@RequestMapping(value = "/login",method = RequestMethod.POST)
public Object login(HttpServletRequest request){
JSONObject jsonObject = new JSONObject();
String username = request.getParameter("username").trim(); //账号
String password = request.getParameter("password").trim(); //密码
if(username==null||username.equals("")){
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"用户名不能为空");
return jsonObject;
}
if(password==null||password.equals("")){
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"密码不能为空");
return jsonObject;
}
//保存到前端用户的对象中
Consumer consumer = new Consumer();
consumer.setUsername(username);
consumer.setPassword(password);
boolean flag = consumerService.verifyPassword(username,password);
if(flag){ //验证成功
jsonObject.put(Consts.CODE,1);
jsonObject.put(Consts.MSG,"登录成功");
jsonObject.put("userMsg",consumerService.getByUsername(username));
return jsonObject;
}
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"用户名或密码错误");
return jsonObject;
}
}
package com.java.book.controller;
import com.alibaba.fastjson.JSONObject;
import com.java.book.domain.Writer;
import com.java.book.service.WriterService;
import com.java.book.utils.Consts;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 作家控制类
*/
@RestController
@RequestMapping("/writer")
public class WriterController {
@Autowired
private WriterService writerService;
/**
* 添加作家
*/
@RequestMapping(value = "/add",method = RequestMethod.POST)
public Object addWriter(HttpServletRequest request){
JSONObject jsonObject = new JSONObject();
String name = request.getParameter("name").trim(); //姓名
String sex = request.getParameter("sex").trim(); //性别
String pic = request.getParameter("pic").trim(); //头像
String birth = request.getParameter("birth").trim(); //生日
String location = request.getParameter("location").trim();//地区
String introduction = request.getParameter("introduction").trim();//简介
//把生日转换成Date格式
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date birthDate = new Date();
try {
birthDate = dateFormat.parse(birth);
} catch (ParseException e) {
e.printStackTrace();
}
//保存到作家的对象中
Writer writer = new Writer();
writer.setName(name);
writer.setSex(new Byte(sex));
writer.setPic(pic);
writer.setBirth(birthDate);
writer.setLocation(location);
writer.setIntroduction(introduction);
boolean flag = writerService.insert(writer);
if(flag){ //保存成功
jsonObject.put(Consts.CODE,1);
jsonObject.put(Consts.MSG,"添加成功");
return jsonObject;
}
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"添加失败");
return jsonObject;
}
/**
* 修改作家
*/
@RequestMapping(value = "/update",method = RequestMethod.POST)
public Object updateWriter(HttpServletRequest request){
JSONObject jsonObject = new JSONObject();
String id = request.getParameter("id").trim(); //主键
String name = request.getParameter("name").trim(); //姓名
String sex = request.getParameter("sex").trim(); //性别
String birth = request.getParameter("birth").trim(); //生日
String location = request.getParameter("location").trim();//地区
String introduction = request.getParameter("introduction").trim();//简介
//把生日转换成Date格式
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date birthDate = new Date();
try {
birthDate = dateFormat.parse(birth);
} catch (ParseException e) {
e.printStackTrace();
}
//保存到作家的对象中
Writer writer = new Writer();
writer.setId(Integer.parseInt(id));
writer.setName(name);
writer.setSex(new Byte(sex));
writer.setBirth(birthDate);
writer.setLocation(location);
writer.setIntroduction(introduction);
boolean flag = writerService.update(writer);
if(flag){ //保存成功
jsonObject.put(Consts.CODE,1);
jsonObject.put(Consts.MSG,"修改成功");
return jsonObject;
}
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"修改失败");
return jsonObject;
}
/**
* 删除歌手
*/
@RequestMapping(value = "/delete",method = RequestMethod.GET)
public Object deleteWriter(HttpServletRequest request){
String id = request.getParameter("id").trim(); //主键
boolean flag = writerService.delete(Integer.parseInt(id));
return flag;
}
/**
* 根据主键查询整个对象
*/
@RequestMapping(value = "/selectByPrimaryKey",method = RequestMethod.GET)
public Object selectByPrimaryKey(HttpServletRequest request){
String id = request.getParameter("id").trim(); //主键
return writerService.selectByPrimaryKey(Integer.parseInt(id));
}
/**
* 查询所有作家
*/
@RequestMapping(value = "/allWriter",method = RequestMethod.GET)
public Object allWriter(HttpServletRequest request){
return writerService.allWriter();
}
/**
* 根据作家名字模糊查询列表
*/
@RequestMapping(value = "/writerOfName",method = RequestMethod.GET)
public Object writerOfName(HttpServletRequest request){
String name = request.getParameter("name").trim(); //歌手名字
return writerService.writerOfName("%"+name+"%");
}
/**
* 根据性别查询
*/
@RequestMapping(value = "/writerOfSex",method = RequestMethod.GET)
public Object WriterOfSex(HttpServletRequest request){
String sex = request.getParameter("sex").trim(); //性别
return writerService.writerOfSex(Integer.parseInt(sex));
}
/**
* 更新作家图片
*/
@RequestMapping(value = "/updateWriterPic",method = RequestMethod.POST)
public Object updateWriterPic(@RequestParam("file") MultipartFile avatorFile, @RequestParam("id")int id){
JSONObject jsonObject = new JSONObject();
if(avatorFile.isEmpty()){
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"文件上传失败");
return jsonObject;
}
//文件名=当前时间到毫秒+原来的文件名
String fileName = System.currentTimeMillis()+avatorFile.getOriginalFilename();
//文件路径
String filePath = System.getProperty("user.dir")+System.getProperty("file.separator")+"img"
+System.getProperty("file.separator")+"writerPic";
//如果文件路径不存在,新增该路径
File file1 = new File(filePath);
if(!file1.exists()){
file1.mkdir();
}
//实际的文件地址
File dest = new File(filePath+System.getProperty("file.separator")+fileName);
//存储到数据库里的相对文件地址
String storeAvatorPath = "/img/writerPic/"+fileName;
try {
avatorFile.transferTo(dest);
Writer writer = new Writer();
writer.setId(id);
writer.setPic(storeAvatorPath);
boolean flag = writerService.update(writer);
if(flag){
jsonObject.put(Consts.CODE,1);
jsonObject.put(Consts.MSG,"上传成功");
jsonObject.put("pic",storeAvatorPath);
return jsonObject;
}
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"上传失败");
return jsonObject;
} catch (IOException e) {
jsonObject.put(Consts.CODE,0);
jsonObject.put(Consts.MSG,"上传失败"+e.getMessage());
}finally {
return jsonObject;
}
}
}