Javaweb——(day08)书城项目35subeiLY

<%@pagecontentType="text/html;charset=UTF-8"language="java"%>2、修改文件后缀名为:.jsp

3、使用IDEA搜索替换.html为.jsp

替换结果,及运行检测:

1.head中css、jquery、base标签——head.jsp

<%--静态包含base标签、css样式、jQuery文件--%> <%@includefile="/pages/common/head.jsp"%> 2.每个页面的页脚——footer.jsp

在实际的项目开发中,一个模块,一般只使用一个Servlet程序。

BaseServlet程序代码

BeanUtils工具类,经常用于把Map中的值注入到JavaBean中,或者是对象属性值的拷贝操作。

BeanUtils它不是Jdk的类。而是第三方的工具类。所以需要导包。

1、导入需要的jar包:

commons-beanutils-1.8.0.jar

commons-logging-1.1.1.jar

编写WebUtils工具类——WebUtil.java

importorg.apache.commons.beanutils.BeanUtils;importjava.util.Map;publicclassWebUtils{//把Map中的值注入到对应的JavaBean属性中。publicstaticTcopyParamToBean(Mapvalue,Tbean){try{System.out.println("注入之前:"+bean);//把所有请求的参数都注入到user对象中BeanUtils.populate(bean,value);System.out.println("注入之后:"+bean);}catch(Exceptione){e.printStackTrace();}returnbean;}}RegistServlet.java

web.xml配置

MVC全称:Model模型、View视图、Controller控制器。

MVC最早出现在JavaEE三层中的Web层,它可以有效的指导Web层的代码如何有效分离,单独工作。

View视图:只负责数据和界面的显示,不接受任何与显示数据无关的代码,便于程序员和美工的分工合作——JSP/HTML。

Controller控制器:只负责接收请求,调用业务层的代码处理请求,然后派发页面,是一个“调度者”的角色——Servlet。转到某个页面。或者是重定向到某个页面。

MVC是一种思想。

MVC的理念是将软件代码拆分成为组件,单独开发,组合使用(目的还是为了降低耦合度)。

MVC的作用还是为了降低耦合。让代码合理分层。方便后期升级和维护。

packagegithub.dao;importgithub.pojo.Book;importjava.util.List;publicinterfaceBookDao{publicintaddBook(Bookbook);publicintdeleteBookById(Integerid);publicintupdateBook(Bookbook);publicBookqueryBookById(Integerid);publicListqueryBooks();}BookDaoImpl实现类

BookDao的测试

BookService接口

packagegithub.service;importgithub.pojo.Book;importjava.util.List;publicinterfaceBookService{publicvoidaddBook(Bookbook);publicvoiddeleteBookById(Integerid);publicvoidupdateBook(Bookbook);publicBookqueryBookById(Integerid);publicListqueryBooks();}BookServiceImpl实现类:

packagegithub.service.impl;importgithub.dao.BookDao;importgithub.dao.impl.BookDaoImpl;importgithub.pojo.Book;importgithub.service.BookService;importjava.util.List;publicclassBookServiceImplimplementsBookService{privateBookDaobookDao=newBookDaoImpl();@OverridepublicvoidaddBook(Bookbook){bookDao.addBook(book);}@OverridepublicvoiddeleteBookById(Integerid){bookDao.deleteBookById(id);}@OverridepublicvoidupdateBook(Bookbook){bookDao.updateBook(book);}@OverridepublicBookqueryBookById(Integerid){returnbookDao.queryBookById(id);}@OverridepublicListqueryBooks(){returnbookDao.queryBooks();}}BookService的测试:

BookServlet程序中添加list方法

修改pages/manager/book_manager.jsp页面的数据遍历输出

BookServletgithub.web.BookServletBookServlet/manager/bookServlet运行结果如下:

当用户提交完请求,浏览器会记录下最后一次请求的全部信息。当用户按下功能键F5,就会发起浏览器记录的最后一次请求。

BookServlet程序中添加add方法

protectedvoidadd(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{//1、获取请求的参数==封装成为Book对象Bookbook=WebUtils.copyParamToBean(req.getParameterMap(),newBook());//2、调用BookService.addBook()保存图书bookService.addBook(book);//3、跳到图书列表页面///manager/bookServletaction=list//req.getRequestDispatcher("/manager/bookServletaction=list").forward(req,resp);resp.sendRedirect(req.getContextPath()+"/manager/bookServletaction=list");}修改book_edit.jsp页面

BookServlet程序中的delete方法

protectedvoiddelete(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{//1、获取请求的参数id,图书编程intid=WebUtils.parseInt(req.getParameter("id"),0);//2、调用bookService.deleteBookById();删除图书bookService.deleteBookById(id);//3、重定向回图书列表管理页面///book/manager/bookServletaction=listresp.sendRedirect(req.getContextPath()+"/manager/bookServletaction=list");}给WebUtils工具类添加转换int类型的工具方法

/***将字符串转换成为int类型的数据*@paramstrInt*@paramdefaultValue*@return*/publicstaticintparseInt(StringstrInt,intdefaultValue){try{returnInteger.parseInt(strInt);}catch(Exceptione){e.printStackTrace();}returndefaultValue;}修改删除的连接地址

$(function(){ //给删除的a标签绑定单击事件,用于删除的确认提示操作 $("a.deleteClass").click(function(){ //在事件的function函数中,有一个this对象。这个this对象,是当前正在响应事件的dom对象。 /** *confirm是确认提示框函数 *参数是它的提示内容 *它有两个按钮,一个确认,一个是取消。 *返回true表示点击了,确认,返回false表示点击取消。 */ returnconfirm("你确定要删除【"+$(this).parent().parent().find("td:first").text()+"】"); //returnfalse//阻止元素的默认行为===不提交请求 }); }); 运行结果如下:

更新【修改】的请求地址

protectedvoidgetBook(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{//1获取请求的参数图书编号intid=WebUtils.parseInt(req.getParameter("id"),0);//2调用bookService.queryBookById查询图书Bookbook=bookService.queryBookById(id);//3保存到图书到Request域中req.setAttribute("book",book);//4请求转发到。pages/manager/book_edit.jsp页面req.getRequestDispatcher("/pages/manager/book_edit.jsp").forward(req,resp);}在book_edit.jsp页面中显示修改的数据

运行结果如下:

在BookServlet程序中添加update方法

protectedvoidupdate(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{//1、获取请求的参数==封装成为Book对象Bookbook=WebUtils.copyParamToBean(req.getParameterMap(),newBook());//2、调用BookService.updateBook(book);修改图书bookService.updateBook(book);//3、重定向回图书列表管理页面//地址:/工程名/manager/bookServletaction=listresp.sendRedirect(req.getContextPath()+"/manager/bookServletaction=list");}解决book_edit.jsp页面,即要实现添加,又要实现修改操作。

分页模块的分析:

publicclassPage{publicstaticfinalIntegerPAGE_SIZE=4;//当前页码privateIntegerpageNo;//总页码privateIntegerpageTotal;//当前页显示数量privateIntegerpageSize=PAGE_SIZE;//总记录数privateIntegerpageTotalCount;//当前页数据privateListitems;publicIntegergetPageNo(){returnpageNo;}publicvoidsetPageNo(IntegerpageNo){this.pageNo=pageNo;}publicIntegergetPageTotal(){returnpageTotal;}publicvoidsetPageTotal(IntegerpageTotal){this.pageTotal=pageTotal;}publicIntegergetPageSize(){returnpageSize;}publicvoidsetPageSize(IntegerpageSize){this.pageSize=pageSize;}publicIntegergetPageTotalCount(){returnpageTotalCount;}publicvoidsetPageTotalCount(IntegerpageTotalCount){this.pageTotalCount=pageTotalCount;}publicListgetItems(){returnitems;}publicvoidsetItems(Listitems){this.items=items;}@OverridepublicStringtoString(){return"Page{"+"pageNo="+pageNo+",pageTotal="+pageTotal+",pageSize="+pageSize+",pageTotalCount="+pageTotalCount+",items="+items+'}';}}2.分页的初步实现BookDao.java代码:

IntegerqueryForPageTotalCount();ListqueryForPageItems(intbegin,intpageSize);BookDaoImpl.java代码:

@OverridepublicIntegerqueryForPageTotalCount(){Stringsql="selectcount(*)fromt_book";Numbercount=(Number)queryForSingle(sql);returncount.intValue();}@OverridepublicListqueryForPageItems(intbegin,intpageSize){Stringsql="select`id`,`name`,`author`,`price`,`sales`,`stock`,`img_path`imgPathfromt_booklimit,";returnqueryForList(Book.class,sql,begin,pageSize);}BookService.java代码:

Pagepage(intpageNo,intpageSize);BookServiceImpl.java代码:

@OverridepublicPagepage(intpageNo,intpageSize){Pagepage=newPage();//设置每页显示的数量page.setPageSize(pageSize);//求总记录数IntegerpageTotalCount=bookDao.queryForPageTotalCount();//求总页码IntegerpageTotal=pageTotalCount/pageSize;if(pageTotalCount%pageSize>0){pageTotal+=1;}//设置总页码page.setPageTotal(pageTotal);//设置当前页码page.setPageNo(pageNo);//求当前页数据的开始索引intbegin=(page.getPageNo()-1)*pageSize;//求当前页数据Listitems=bookDao.queryForPageItems(begin,pageSize);//设置当前页数据page.setItems(items);returnpage;}BookServlet.java程序的代码:

/***处理分页功能*@paramreq*@paramresp*@throwsServletException*@throwsIOException*/protectedvoidpage(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{//1获取请求的参数pageNo和pageSizeintpageNo=WebUtils.parseInt(req.getParameter("pageNo"),1);intpageSize=WebUtils.parseInt(req.getParameter("pageSize"),Page.PAGE_SIZE);//2调用BookService.page(pageNo,pageSize):Page对象Pagepage=bookService.page(pageNo,pageSize);//3保存Page对象到Request域中req.setAttribute("page",page);//4请求转发到pages/manager/book_manager.jsp页面req.getRequestDispatcher("/pages/manager/book_manager.jsp").forward(req,resp);}manager_menu.jsp中【图书管理】请求地址的修改:

publicvoidsetPageNo(IntegerpageNo){//数据边界的有效检查if(pageNo<1){pageNo=1;}if(pageNo>pageTotal){pageNo=pageTotal;}this.pageNo=pageNo;}BookService中page方法的修改:

@OverridepublicPagepage(intpageNo,intpageSize){Pagepage=newPage();//设置每页显示的数量page.setPageSize(pageSize);//求总记录数IntegerpageTotalCount=bookDao.queryForPageTotalCount();//设置总记录数page.setPageTotalCount(pageTotalCount);//求总页码IntegerpageTotal=pageTotalCount/pageSize;if(pageTotalCount%pageSize>0){pageTotal+=1;}//设置总页码page.setPageTotal(pageTotal);//设置当前页码page.setPageNo(pageNo);//求当前页数据的开始索引intbegin=(page.getPageNo()-1)*pageSize;//求当前页数据Listitems=bookDao.queryForPageItems(begin,pageSize);//设置当前页数据page.setItems(items);returnpage;}5.分页模块中,页码1,2,3,4,5的显示,要显示5个页码,并且页码可以点击跳转需求:显示5个连续的页码,而且当前页码在中间。除了当前页码之外,每个页码都可以点击跳到指定页。

1.在修改的请求地址上追加当前页码参数:

2.在book_edit.jsp页面中使用隐藏域记录下pageNo参数:

3.在服务器重定向的时候,获取当前页码追加上进行跳转:

1.在web下新建ClientBookServlet.java文件:

ClientBookServletgithub.web.ClientBookServletClientBookServlet/client/bookServlet4.将web文件夹下的index.jsp文件修改:

1.在page对象中添加url属性,并重新生成get、set方法与tostring:

2.在Servlet程序的page分页方法中设置url的分页请求地址:

1.修改client文件夹下的index.jsp文件:

2.在BookService.java文件下,新建如下方法:

3.ClientBookServlet.java文件添加如下代码:

@OverridepublicPagepageByPrice(intpageNo,intpageSize,intmin,intmax){Pagepage=newPage();//设置每页显示的数量page.setPageSize(pageSize);//求总记录数IntegerpageTotalCount=bookDao.queryForPageTotalCountByPrice(min,max);//设置总记录数page.setPageTotalCount(pageTotalCount);//求总页码IntegerpageTotal=pageTotalCount/pageSize;if(pageTotalCount%pageSize>0){pageTotal+=1;}//设置总页码page.setPageTotal(pageTotal);//设置当前页码page.setPageNo(pageNo);//求当前页数据的开始索引intbegin=(page.getPageNo()-1)*pageSize;//求当前页数据Listitems=bookDao.queryForPageItemsByPrice(begin,pageSize,min,max);//设置当前页数据page.setItems(items);returnpage;}

THE END
1.jsp购物课程设计报告20241218.docxjsp购物课程设计报告一教学目标本课程旨在让学生掌握Java Server PagesJSP技术,能够运用JSP设计并实现一个简单的购物。通过本课程的学习,学生将掌握JSP的基本语法内置对象标签库以及与数据库的交互等知识。理解JSP的基本语https://www.renrendoc.com/paper/370873889.html
2.最新网页设计的实训报告(八篇)网页设计的实训报告篇一 科学是发展生产力的根本前提,当今的社会是互联网蓬勃发展的世界,每当我们上网的时候,那一个个精美别致的网页给人是多么流畅顺利的感觉,无论是寻找资料还是网上商城购物,都给我们带来了方便快捷的好处,我想,科学技术的发展,离不开互联网的发展,而互联网的发展也离不开网页制作的发展,而只有把https://www.kaoyanmiji.com/wendang/4553900.html
3.Javaweb网上书城项目实验报告书课程设计报告书.docJavaweb-网上书城项目实验报告书-课程设计报告书.doc 20页内容提供方:k12教育文档 大小:2.16 MB 字数:约9.01千字 发布时间:2021-08-06发布于新疆 浏览人气:4827 下载次数:仅上传者可见 收藏次数:2 需要金币:*** 金币 (10金币=人民币1元)https://max.book118.com/html/2021/0805/8054115052003130.shtm
4.javaweb传智书城项目设计与开发【JavaWeb传智书城项目设计与开发】是一个综合性的实战项目,主要涵盖了JavaWeb开发中的诸多关键技术和实践。这个项目旨在提供一个完整的图书在线销售平台,具备用户管理、商品展示、购物车、订单处理等功能,同时还有管理员后台进行系统的管理和维护。 在用户注册与登录模块,项目使用了常见的身份验证机制,如MD5或SHA加密技术https://download.csdn.net/download/llabci/14038329
5.基于javaWeb的网上商城的设计与实现的源码基于Javaweb的网上商城项目源码(含前台、后台、数据库+文档).zip jsp实验报告,网上商城的实现,包括前台后台,文件上传下载功能,封面,目录,需求分析,详细设计,概要设计,系统测试,总结。文档格式正确。 网站模板商城,后台和前台两种操作方式,支持文件上传下载,留言,投稿,文件管理,管理员和普通用户的登录注册,内含详细操作https://www.iteye.com/resource/belong_me-10348970
6.网上书店开题报告(精选8篇)3孙卫琴。精通Struts:基于MVC的Java Web设计与开发。北京:电子工业出版社,20xx,12~79 4杨涛,王建桥,杨晓云。深入浅出struts2,北京:人民邮电出版社,20xx,25~68 网上书店开题报告 篇3 一、 论文选题的背景、意义 本系统描术了通过包括因特网在内的计算机网络来购买、销售和交换商品、服务信息的过程。随着社会的https://www.diyifanwen.com/fanwen/kaitibaogao/16251519.html
7.基于Javaweb的网上书城(教程及源码)码农集市专业分享IT编程学习基于Javaweb的网上书城(教程及源码)An**io 上传25.5 MB 文件格式 zip web javaweb 课程设计 网页 前台+后台的良心教程,手把手教你,教程是网盘在文本里有链接,用于课程设计。前台+后台的良心教程,手把手教你,教程是网盘在文本里有链接。点赞(0) 踩踩(0) 反馈 https://www.coder100.com/index/index/content/id/1040443
8.基于JavaWeb网上商城(以卖书为主)腾讯云开发者社区本文章是JavaWeb课程的课程设计 1.项目概况 1.1 课题背景、目的及意义 1.1.1 课题背景 随着互联网的普及和电子商务的兴起,网上图书销售是互联网电子商务在图书销售行业中的必然结果,这种新型的图书销售形式越来越受人们的欢迎,正在以不可阻挡的 气势替代着传统的图书销售模式。与其传统销售模式相比拥有许多优势,一是降https://cloud.tencent.com/developer/article/2099748
9.网上订餐开题报告6篇(全文)包括该领域的核心期刊、经典著作、专职部门的研究报告、重要观点和论述等,这是做文献综述的“必修课”毕业设计(论文)题目:网上书城——前台管理 一、课题研究的目的和意义 随着互联网Internet在中国的普及,Java web应用开发案例教程[M]。北京:清华大学出版社,20xx。 [6]明日科技。 Java Web从入门到精通(https://www.99xueshu.com/w/filed8jyppe8.html
10.基于Java的网上书店的设计与实现程序javaweb网上书城项目设计报告基于Java的网上书店的设计与实现程序 javaweb网上书城项目设计报告,文章目录JavaWeb-书城项目总结在数据库内创建需要的对象对应的表建立Bean对象建立Jdbc.Util工具类建立BaseDao类建立操作各个数据库表格数据的Dao层代码建立各个功能的Service,实现对各个Dao对象的功能调https://blog.51cto.com/u_12855/7445790
11.代码货栈代码货栈提供 计算机专业毕业设计项目源码,毕业设计开题报告,毕设答辩, Java毕业设计,Web毕业设计, 上千套毕业论文,论文任务书,开题报告,java,jsp,javaweb,php源码下载 源码分享,免费毕设指导代做https://www.cs-work.com/
12.javaweb实习报告范文经管文库(原现金交易版实习报告范文 一、实习目的 通过对java 语言、JavaWeb 、Oracle 数据库应用设计及 SQL语言的复习和锻炼https://bbs.pinggu.org/thread-13359925-1-1.html
13.网上书店开题报告(集锦7篇)在学习、工作生活中,我们都不可避免地要接触到报告,报告具有语言陈述性的特点。在写之前,可以先参考范文,下面是小编帮大家整理的网上书店开题报告,仅供参考,欢迎大家阅读。 网上书店开题报告1 一、课题的意义和目的 随着互联网的高速发展,电子商务的发展也愈加完善,网上购物的环境也逐步得到了很大的改善,这一系列的发https://www.ruiwen.com/kaitibaogao/6280435.html
14.java毕业设计合集,毕业再也不用愁php24、基于jsp的网上购书系统毕业设计(项目报告+答辩PPT+源代码+数据库+截图+部署视频)?点击查看项目整体介绍 ?点击查看毕业论文介绍 25、基于java的俄罗斯方块游戏系统毕业设计(项目报告+答辩PPT+源代码+数据库+截图+部署视频)?点击查看项目整体介绍 ?点击查看毕业论文介绍 26、https://blog.yyzq.team/post/314468.html
15.基于JavaEE的网上书城系统设计期刊[1]赵安学,胡瑞镇.基于JAVAEE的订单管理系统的设计与实现[J].科技创新与应用.2021,(4). [2]王爱华.购物车结算功能中的PHP预处理应用[J].信息技术与信息化.2021,(5).DOI:10.3969/j.issn.1672-9528.2021.05.033. [3]邓明杨,李忠雄.基于JAVA Web技术的网上书城的设计与实现[J].计算机产品与流通.2020,(5https://d.wanfangdata.com.cn/periodical/shanddz202111020
16.Java毕设源码网计算机专业源码网Java毕设源码网提供2023年最新计算机专业课程设计毕业设计项目源码下载分享,计算机专业毕业设计论文任务书开题报告, 计算机编程资料,java,jsp,javaweb,php,毕设代做,免费源码分享http://www.javabishe.cn/
17.java校友录源代码java同学录管理系统代码vb智能排课系统+论文 vb中介管理系统vb+access源代码+论文+开题报告+外文翻译+答辩ppt 学生宿舍管理系统 VC++ C++ 003指纹识别系统 java网络5子棋代码.doc 工商管理毕业论文 基于Web的网上评教系统.doc 计算机局域网组建与互连毕业设计论文 .doc 嵌入式系统开发要素的选择分析.doc http://shouzuofang.com/article/ddsdego.html
18.GitHub选题+开题报告+任务书+程序定制+安装调试+论文+答辩ppt 都可以做 序号项目github地址 作者微信:grapro666 QQ:931708230 (支持修改、 部署调试、 支持代做毕设) 接javaweb、python、小程序、H5、APP、各种管理系统、单片机、嵌入式等开发 选题+开题报告+任务书+程序定制+安装调试+论文+答辩ppt https://github.com/ynwynw/allProject
19.求大佬指教,学习Java看谁的视频最好?入门Java Web,推荐某谷的 Java Web教程,教程不仅包括前端三大技术,还有后端 Java 技术,最后还会带大家做一个书城项目。 https://www.bilibili.com/video/BV1Y7411K7zz 第四阶段:主流框架 这部分我们要学习的主流框架主要有 Spring、Spring MVC 和 MyBatis,俗称 SSM 框架。 曾经的 SSH 框架,即 Struts2、Springhttps://wd.znds.com/234724_1.html
20.java毕设项目下载【含文档+PPT+源码】基于SSM的网上书城系统【包运行成功】 原价:¥254 SSM 优惠价¥189 【含文档+PPT+源码】SpringBoot旅游信息管理系统【包运行成功】 原价:¥320 Spring Boot 优惠价¥256 【含文档+PPT+源码】基于SSM的企业求职招聘系统【包运行成功】 https://www.mf5.cn/