基于javaweb的二手图书商城平台(java+ssm+jsp+js+jquery+mysql)
基于javaweb的二手图书商城平台(java+ssm+jsp+js+jquery+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的二手图书商城平台(java+SSM+JSP+JS+jquery+Mysql)
项目介绍
用户角色包含以下功能: 用户登录,查看商品详情,按分类查看,查看我的书架,上传二手书等功能。 PS:这个没有管理员角色。
环境需要
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.是否Maven项目:是;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+CSS+JavaScript+jquery
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ssm_sebook_market 登录
图书管理控制层:
@Controller
public class BookController {
@Autowired
private BookService bookService;
@Autowired
private LendService lendService;
private Date getDate(String pubstr) {
try {
SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd”);
return df.parse(pubstr);
} catch (ParseException e) {
e.printStackTrace();
return new Date();
@RequestMapping(“/queryBook.html”)
public ModelAndView queryBookDo(String searchWord) {
if (bookService.matchBook(searchWord)) {
ArrayList books = bookService.queryBook(searchWord);
ModelAndView modelAndView = new ModelAndView(“admin_books”);
modelAndView.addObject(“books”, books);
return modelAndView;
} else {
return new ModelAndView(“admin_books”, “error”, “没有匹配的图书”);
@RequestMapping(“/reader_querybook_do.html”)
public ModelAndView readerQueryBookDo(String searchWord) {
if (bookService.matchBook(searchWord)) {
ArrayList books = bookService.queryBook(searchWord);
ModelAndView modelAndView = new ModelAndView(“reader_books”);
modelAndView.addObject(“books”, books);
return modelAndView;
} else {
return new ModelAndView(“reader_books”, “error”, “没有匹配的图书”);
@RequestMapping(“/admin_books.html”)
public ModelAndView adminBooks() {
ArrayList books = bookService.getAllBooks();
ModelAndView modelAndView = new ModelAndView(“admin_books”);
modelAndView.addObject(“books”, books);
return modelAndView;
@RequestMapping(“/book_add.html”)
public ModelAndView addBook() {
return new ModelAndView(“admin_book_add”);
@RequestMapping(“/book_add_do.html”)
public String addBookDo(@RequestParam(value = “pubstr”) String pubstr, Book book, RedirectAttributes redirectAttributes) {
book.setPubdate(getDate(pubstr));
if (bookService.addBook(book)) {
redirectAttributes.addFlashAttribute(“succ”, “图书添加成功!”);
} else {
redirectAttributes.addFlashAttribute(“succ”, “图书添加失败!”);
return “redirect:/admin_books.html”;
@RequestMapping(“/updatebook.html”)
public ModelAndView bookEdit(HttpServletRequest request) {
long bookId = Long.parseLong(request.getParameter(“bookId”));
Book book = bookService.getBook(bookId);
ModelAndView modelAndView = new ModelAndView(“admin_book_edit”);
modelAndView.addObject(“detail”, book);
return modelAndView;
@RequestMapping(“/book_edit_do.html”)
public String bookEditDo(@RequestParam(value = “pubstr”) String pubstr, Book book, RedirectAttributes redirectAttributes) {
book.setPubdate(getDate(pubstr));
if (bookService.editBook(book)) {
redirectAttributes.addFlashAttribute(“succ”, “图书修改成功!”);
} else {
redirectAttributes.addFlashAttribute(“error”, “图书修改失败!”);
return “redirect:/admin_books.html”;
@RequestMapping(“/admin_book_detail.html”)
public ModelAndView adminBookDetail(HttpServletRequest request) {
long bookId = Long.parseLong(request.getParameter(“bookId”));
Book book = bookService.getBook(bookId);
ModelAndView modelAndView = new ModelAndView(“admin_book_detail”);
modelAndView.addObject(“detail”, book);
return modelAndView;
@RequestMapping(“/reader_book_detail.html”)
public ModelAndView readerBookDetail(HttpServletRequest request) {
long bookId = Long.parseLong(request.getParameter(“bookId”));
Book book = bookService.getBook(bookId);
ModelAndView modelAndView = new ModelAndView(“reader_book_detail”);
modelAndView.addObject(“detail”, book);
return modelAndView;
@RequestMapping(“/admin_header.html”)
public ModelAndView admin_header() {
return new ModelAndView(“admin_header”);
@RequestMapping(“/reader_header.html”)
public ModelAndView reader_header() {
return new ModelAndView(“reader_header”);
@RequestMapping(“/reader_books.html”)
public ModelAndView readerBooks(HttpServletRequest request) {
ArrayList books = bookService.getAllBooks();
ReaderCard readerCard = (ReaderCard) request.getSession().getAttribute(“readercard”);
ArrayList myAllLendList = lendService.myLendList(readerCard.getReaderId());
ArrayList myLendList = new ArrayList<>();
for (Lend lend : myAllLendList) {
// 是否已归还
if (lend.getBackDate() == null) {
myLendList.add(lend.getBookId());
ModelAndView modelAndView = new ModelAndView(“reader_books”);
modelAndView.addObject(“books”, books);
modelAndView.addObject(“myLendList”, myLendList);
return modelAndView;
登录管理控制层:
@Controller
public class LoginController {
private LoginService loginService;
@Autowired
public void setLoginService(LoginService loginService) {
this.loginService = loginService;
@RequestMapping(value = {“/”, “/login.html”})
public String toLogin(HttpServletRequest request) {
request.getSession().invalidate();
return “index”;
@RequestMapping(“/logout.html”)
public String logout(HttpServletRequest request) {
request.getSession().invalidate();
return “redirect:/login.html”;
@RequestMapping(“/admin_main.html”)
public ModelAndView toAdminMain(HttpServletResponse response) {
return new ModelAndView(“admin_main”);
@RequestMapping(“/reader_main.html”)
public ModelAndView toReaderMain(HttpServletResponse response) {
return new ModelAndView(“reader_main”);
@RequestMapping(“/admin_repasswd.html”)
public ModelAndView reAdminPasswd() {
return new ModelAndView(“admin_repasswd”);
@RequestMapping(“/admin_repasswd_do”)
public String reAdminPasswdDo(HttpServletRequest request, String oldPasswd, String newPasswd, String reNewPasswd, RedirectAttributes redirectAttributes) {
Admin admin = (Admin) request.getSession().getAttribute(“admin”);
long id = admin.getAdminId();
String password = loginService.getAdminPassword(id);
if (password.equals(oldPasswd)) {
if (loginService.adminRePassword(id, newPasswd)) {
redirectAttributes.addFlashAttribute(“succ”, “密码修改成功!”);
return “redirect:/admin_repasswd.html”;
} else {
redirectAttributes.addFlashAttribute(“error”, “密码修改失败!”);
return “redirect:/admin_repasswd.html”;
} else {
redirectAttributes.addFlashAttribute(“error”, “旧密码错误!”);
return “redirect:/admin_repasswd.html”;
@RequestMapping(“/reader_repasswd.html”)
public ModelAndView reReaderPasswd() {
return new ModelAndView(“reader_repasswd”);
@RequestMapping(“/reader_repasswd_do”)
public String reReaderPasswdDo(HttpServletRequest request, String oldPasswd, String newPasswd, String reNewPasswd, RedirectAttributes redirectAttributes) {
ReaderCard reader = (ReaderCard) request.getSession().getAttribute(“readercard”);
long id = reader.getReaderId();
String password = loginService.getReaderPassword(id);
if (password.equals(oldPasswd)) {
if (loginService.readerRePassword(id, newPasswd)) {
redirectAttributes.addFlashAttribute(“succ”, “密码修改成功!”);
return “redirect:/reader_repasswd.html”;
} else {
redirectAttributes.addFlashAttribute(“error”, “密码修改失败!”);
return “redirect:/reader_repasswd.html”;
} else {
redirectAttributes.addFlashAttribute(“error”, “旧密码错误!”);
return “redirect:/reader_repasswd.html”;
//配置404页面
@RequestMapping(“*”)
public String notFind() {
return “404”;
配置管理控制层:
@Configuration
@EnableWebMvc
@ComponentScan(“com.library.controller”)
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setSuffix(“.jsp”);
return resolver;
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler(“/img/**”)
.addResourceLocations(“/static/img/”);
registry.addResourceHandler(“/js/**”).addResourceLocations(“/static/js/”);
registry.addResourceHandler(“/css/**”).addResourceLocations(“/static/css/”);
基于javaweb的二手图书商城平台(java+ssm+jsp+js+jquery+mysql)相关推荐
- Java项目:二手图书商城平台(java+SSM+JSP+JS+jquery+Mysql)
源码获取:俺的博客首页 "资源" 里下载! 项目介绍 用户角色包含以下功能: 用户登录,查看商品详情,按分类查看,查看我的书架,上传二手书等功能. PS:这个没有管理员角色. 环境 ...
- 基于javaweb的网上图书商城系统(java+ssm+jsp+mysql+redis+jwt+shiro+rabbitmq+easyui)
基于javaweb的网上图书商城系统(java+ssm+jsp+mysql+redis+jwt+shiro+rabbitmq+easyui) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥ ...
- 基于javaweb的社区居民户籍管理系统(java+ssm+jsp+js+html+mysql)
基于javaweb的社区居民户籍管理系统(java+ssm+jsp+js+html+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/my ...
- 基于javaweb的红酒朔源管理系统(java+ssm+jsp+layui+jquery+mysql)
基于javaweb的红酒朔源管理系统(java+ssm+jsp+layui+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea ...
- 基于javaweb的企业绩效考核管理系统(java+ssm+jsp+bootstrap+jquery+mysql)
基于javaweb的企业绩效考核管理系统(java+ssm+jsp+bootstrap+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclips ...
- 基于javaweb的茶叶商城管理系统(java+ssm+jsp+ajax+jquery+mysql)
基于javaweb的茶叶商城管理系统(java+ssm+jsp+ajax+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/ ...
- 基于javaweb的音乐专辑商城系统(java+ssm+jsp+jquery+mysql)
基于javaweb的音乐专辑商城系统(java+ssm+jsp+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myecl ...
- 基于javaweb的在线甜品商城系统(java+ssm+jsp+javascript+mysql)
基于javaweb的在线甜品商城系统(java+ssm+jsp+javascript+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/m ...
- 基于javaweb的茶叶售卖商城系统(java+ssm+jsp+easyui+mysql)
基于javaweb的茶叶售卖商城系统(java+ssm+jsp+easyui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myecl ...
最新文章
- [译]WPF 应用程序和MVVM设计模式 ——Josh Smith
- git-commit
- nginx https ssl 配置
- squid3.0缓存服务器编译安装
- error 1044 (42000):access denied for user ''@'localhost' to database 'mysql'
- Python3----- assert(断言)
- java反编译工具Java Decompiler
- Unity3D游戏开发,适配阿拉伯地区文本显示
- 游戏开发者,游戏开发教程
- 离线安装openOffice
- 华师计算机考研英语过线,华师大学长:考研英语我是如何考到77分的!
- 盘点中国未来最具潜力的IT培训学校前5名
- 形象标识 新松机器人_新松机器人自动化股份有限公司
- lol进服务器时文件损坏,LOL文件损坏怎么修复
- 微信小游戏开新手攻略
- 徐工培训计算机,走进徐工,迈向成功——徐工数元教育2018大型培训纪实
- 利用USGS网站下载Landsat系列影像(个人总结的小技巧,适用新手小白)
- PHP面试技巧——如何克服面试中紧张的情绪?
- VRRP——Master选举
- 抓包分析SSL/TLS连接建立过程【总结】
热门文章
- HENAU 冬令营训练赛1(ioi赛制)
- 得物购买截图生成_电商订单是如何生成的?它有何奥秘?
- linux的文件隐藏属性
- Masson快速视频制作教程(03) - 选择非线性编辑软件
- 窝布靠谱-58kaopu-窝布笑话-笑话大全-唯美图片-神回复
- python代码实现的特效_Python 实现PS滤镜的旋涡特效
- 英文名Tyron的起始
- python报错input_python - BeautifulSoup报错input conversion failed due to input error
- wow.js让页面滚动得更有趣
- Spark交集/差集/并集/拉链