基于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项目:是;

技术栈

  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. 将项目中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)相关推荐

  1. Java项目:二手图书商城平台(java+SSM+JSP+JS+jquery+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 用户角色包含以下功能: 用户登录,查看商品详情,按分类查看,查看我的书架,上传二手书等功能. PS:这个没有管理员角色. 环境 ...

  2. 基于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≥ ...

  3. 基于javaweb的社区居民户籍管理系统(java+ssm+jsp+js+html+mysql)

    基于javaweb的社区居民户籍管理系统(java+ssm+jsp+js+html+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/my ...

  4. 基于javaweb的红酒朔源管理系统(java+ssm+jsp+layui+jquery+mysql)

    基于javaweb的红酒朔源管理系统(java+ssm+jsp+layui+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea ...

  5. 基于javaweb的企业绩效考核管理系统(java+ssm+jsp+bootstrap+jquery+mysql)

    基于javaweb的企业绩效考核管理系统(java+ssm+jsp+bootstrap+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclips ...

  6. 基于javaweb的茶叶商城管理系统(java+ssm+jsp+ajax+jquery+mysql)

    基于javaweb的茶叶商城管理系统(java+ssm+jsp+ajax+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/ ...

  7. 基于javaweb的音乐专辑商城系统(java+ssm+jsp+jquery+mysql)

    基于javaweb的音乐专辑商城系统(java+ssm+jsp+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myecl ...

  8. 基于javaweb的在线甜品商城系统(java+ssm+jsp+javascript+mysql)

    基于javaweb的在线甜品商城系统(java+ssm+jsp+javascript+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/m ...

  9. 基于javaweb的茶叶售卖商城系统(java+ssm+jsp+easyui+mysql)

    基于javaweb的茶叶售卖商城系统(java+ssm+jsp+easyui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myecl ...

最新文章

  1. [译]WPF 应用程序和MVVM设计模式 ——Josh Smith
  2. git-commit
  3. nginx https ssl 配置
  4. squid3.0缓存服务器编译安装
  5. error 1044 (42000):access denied for user ''@'localhost' to database 'mysql'
  6. Python3----- assert(断言)
  7. java反编译工具Java Decompiler
  8. Unity3D游戏开发,适配阿拉伯地区文本显示
  9. 游戏开发者,游戏开发教程
  10. 离线安装openOffice
  11. 华师计算机考研英语过线,华师大学长:考研英语我是如何考到77分的!
  12. 盘点中国未来最具潜力的IT培训学校前5名
  13. 形象标识 新松机器人_新松机器人自动化股份有限公司
  14. lol进服务器时文件损坏,LOL文件损坏怎么修复
  15. 微信小游戏开新手攻略
  16. 徐工培训计算机,走进徐工,迈向成功——徐工数元教育2018大型培训纪实
  17. 利用USGS网站下载Landsat系列影像(个人总结的小技巧,适用新手小白)
  18. PHP面试技巧——如何克服面试中紧张的情绪?
  19. VRRP——Master选举
  20. 抓包分析SSL/TLS连接建立过程【总结】

热门文章

  1. HENAU 冬令营训练赛1(ioi赛制)
  2. 得物购买截图生成_电商订单是如何生成的?它有何奥秘?
  3. linux的文件隐藏属性
  4. Masson快速视频制作教程(03) - 选择非线性编辑软件
  5. 窝布靠谱-58kaopu-窝布笑话-笑话大全-唯美图片-神回复
  6. python代码实现的特效_Python 实现PS滤镜的旋涡特效
  7. 英文名Tyron的起始
  8. python报错input_python - BeautifulSoup报错input conversion failed due to input error
  9. wow.js让页面滚动得更有趣
  10. Spark交集/差集/并集/拉链