——————————DescriptionStart——————————
运行环境 Java≥8、MySQL≥5.7、Tomcat≥8
开发工具 eclipse/idea/myeclipse/sts等均可配置运行
适用 课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的JSP+Servlet图书商城管理系统(java+servlet+jsp+jdbc+tomcat+mysql)
项目介绍
1 2 3 4 5 6 7 8 前台用户(member表) user1 123456 user2 123456 user3 123456 user4 123456 后台管理员(sysuser表) admin 123456
本项目包含前后台,前台为普通用户登录,后台为管理员登录。 管理员角色包含以下功能: 管理员登录,会员信息管理,用户信息管理,资讯管理,链接管理,滚动广告管理,图书类别管理,图书出版社管理,图书管理,图书库存管理,订单管理,留言管理等功能。
用户角色包含以下功能: 按分类查看,查看商品详情,用户登录,加入购物车,提交订单,查看订单,查看站内资讯,提交留言,修改个人资料,新增收货地址等功能。
环境需要
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、8.0等版本均可; 6.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目;
技术栈
Servlet、JSP、JDBC、MySQL5.7/8.0、Tomcat8等
使用说明
使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目; 3. 将项目中util/SimpleDataSource.java配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入http://localhost:8080/jsp_tushushop/ 登录 用户账号/密码:user/123456 管理员账号/密码:admin/admin
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 imgtype = ((FileItem) items.get(1 )).getString(); imgtype = Info.getUTFStr(imgtype); FileItem fileItem = (FileItem) items.get(0 ); if (fileItem.getName() != null && fileItem.getSize() != 0 ) { if (fileItem.getName() != null && fileItem.getSize() != 0 ) { File fullFile = new File(fileItem.getName()); img = Info.generalFileName(fullFile.getName()); File newFile = new File( request.getRealPath("/upfile/" ) + "/" + img); try { fileItem.write(newFile); } catch (Exception e) { e.printStackTrace(); } } else { } } } String cksql = "select * from imgadv where imgtype='banner'" ; ArrayList cklist = (ArrayList) dao.select(cksql); if (imgtype.equals("banner" ) && cklist.size() != 0 ) { request.setAttribute("no" , "" ); go("/admin/imgadvadd.jsp" , request, response); } else { String sql = "insert into imgadv (filename,imgtype) " + "values('" + img + "','" + imgtype + "')" ; dao.commOper(sql); request.setAttribute("suc" , "" ); go("/admin/imgadvadd.jsp" , request, response); } } catch (Exception e1) { e1.printStackTrace(); request.setAttribute("no" , "" ); request.getRequestDispatcher("/admin/imgadvadd.jsp" ).forward( request, response); } } if (ac.equals("imgadvedit" )) { String id = request.getParameter("id" ); HashMap map = dao.select("select * from imgadv where id=" + id) .get(0 ); try { String img = map.get("filename" ).toString(); request.setCharacterEncoding("utf-8" ); RequestContext requestContext = new ServletRequestContext( request); if (FileUpload.isMultipartContent(requestContext)) {
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 String sub1,sub2,subLowcase1,subLowcase2; sub1=sub2=subLowcase1=subLowcase2=""; int start=0,end; boolean done=true; if(source==null) return null; if(from==null||from.equals("")||to==null||to.equals("")) return source; while(done){ start=sourceLowcase.indexOf(from,start); if(start==-1) { break; } subLowcase1=sourceLowcase.substring(0,start); sub1=source.substring(0,start); end=sourceLowcase.indexOf(to,start); if(end==-1){ end=sourceLowcase.indexOf("/>",start); if(end==-1) { done=false; } } else{ end=end+to.length(); subLowcase2=sourceLowcase.substring(end,source.length()); sub2=source.substring(end,source.length()); sourceLowcase=subLowcase1+subLowcase2; source=sub1+sub2; } //System.out.println(start+" "+end); } return source.replaceAll(" ", ""); } public static void delPic(String path,String img) { if(img!=null) { if(!img.equals("")) { File file1=new File(path + "/" + img);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 } buf.append(" "); if (this.currentPage == this.pageNumber) buf.append("末页 "); else buf.append("<a href ='").append(this.path).append("¤tPage=") .append(this.pageNumber).append(parameter).append( "' class ='ls' > ").append("末页") .append("</a > </font > "); // //////////////////// // for (int i = 0; i < this.pageNumber; i++) { // if (this.currentPage == i + 1) { // buf.append("<font color =red > [" + (i + 1) + "]</font > ").append( // " "); // } else { // buf.append("<a href ='").append(this.path).append( // "¤tPage=").append(i + 1).append(parameter) // .append("' style ='TEXT-DECORATION:none' > ").append( // "[" + (i + 1) + "]").append("</a > "); // } // } buf.append("<select class ='input-xlarge' onchange =\ "javascript:window.location ='").append( this.path).append("¤tPage=' +").append ( "this.options [this.selectedIndex ].value ").append (parameter ) .append ("\"> "); for (int i = 0; i < this.pageNumber; i++) { if (this.currentPage == i + 1) buf.append("<option value =" + (i + 1) + " selected =\ "selected \"> " + (i + 1) + "</option > "); else buf.append("<option value =" + (i + 1) + " > " + (i + 1) + "</option > "); } buf.append("</select > "); this.info = buf.toString(); } public Collection getCollection() { return collection; } public long getCount() {
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 FileItem fileItem = (FileItem) items.get(0 ); if (fileItem.getName() != null && fileItem.getSize() != 0 ) { if (fileItem.getName() != null && fileItem.getSize() != 0 ) { File fullFile = new File(fileItem.getName()); img = Info.generalFileName(fullFile.getName()); File newFile = new File( request.getRealPath("/upfile/" ) + "/" + img); try { fileItem.write(newFile); } catch (Exception e) { e.printStackTrace(); } } else { } } } String sql = "update imgadv set filename='" + img + "' where id=" + id; dao.commOper(sql); request.setAttribute("suc" , "" ); go("/admin/imgadvedit.jsp?id=" + id, request, response); } catch (Exception e1) { e1.printStackTrace(); request.setAttribute("error" , "" ); request.getRequestDispatcher("/admin/imgadvedit.jsp?id=" + id) .forward(request, response); } } if (ac.equals("memberunamecheck" )) { String uname = request.getParameter("username" ); ArrayList cklist = (ArrayList) dao .select("select * from member where uname='" + uname + "' and delstatus='0' " ); if (cklist.size() > 0 ) { out.print("false" ); } else { out.print("true" ); } } if (ac.equals("checkgoodkc" )) { String gid = request.getParameter("gid" ); String sl = request.getParameter("sl" );
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 + "','" + savetime + "')" ); request.setAttribute("suc" , "操作成功!" ); go("/admin/userlist.jsp" , request, response); } if (ac.equals("useredit" )) { String id = request.getParameter("id" ); String userpwd = request.getParameter("userpwd" ); String email = request.getParameter("email" ) == null ? "" : request .getParameter("email" ); String realname = request.getParameter("realname" ) == null ? "" : request.getParameter("realname" ); String sex = request.getParameter("sex" ) == null ? "" : request .getParameter("sex" ); String addr = request.getParameter("addr" ) == null ? "" : request .getParameter("addr" ); String idcard = request.getParameter("idcard" ) == null ? "" : request.getParameter("idcard" ); String tel = request.getParameter("tel" ) == null ? "" : request .getParameter("tel" ); String delstatus = "0" ; String savetime = Info.getDateStr(); dao.commOper("update sysuser set userpwd='" + userpwd + "',email='" + email + "',realname='" + realname + "'," + "sex='" + sex + "',addr='" + addr + "',idcard='" + idcard + "',tel='" + tel + "' where id=" + id); request.setAttribute("suc" , "操作成功!" ); go("/admin/userlist.jsp" , request, response); } if (ac.equals("pwdedit" )) { String oldpwd = request.getParameter("oldpwd" ); String newpwd = request.getParameter("newpwd" ); HashMap oldmap = dao.select( "select * from sysuser where id=" + admin.get("id" )).get(0 ); if (oldpwd.equals(oldmap.get("userpwd" ))) { dao.commOper("update sysuser set userpwd = '" + newpwd + "' where id=" + admin.get("id" )); request.setAttribute("info" , "密码修改成功!" ); } else { request.setAttribute("info" , "旧密码不正确!" );
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 ArrayList cklist = (ArrayList) dao .select("select * from member where uname='" + uname + "' and upass='" + upass + "' and delstatus='0'" ); if (cklist.size() > 0 ) { session.setAttribute("member" , cklist.get(0 )); go("/index.jsp" , request, response); } else { request.setAttribute("no" , "用户名或密码错误!" ); go("/login.jsp" , request, response); } } if (ac.equals("frontexit" )) { session.removeAttribute("member" ); go("/index.jsp" , request, response); } if (ac.equals("goodsadd" )) { try { String goodno = Info.getAutoNo(); String goodname = "" ; String fid = "" ; String sid = "" ; String goodpp = "" ; String price = "" ; String filename = "" ; String note = "" ; String shstatus = "通过" ; String istj = "no" ; String savetime = Info.getDateStr(); String tprice = "" ; request.setCharacterEncoding("utf-8" ); RequestContext requestContext = new ServletRequestContext( request); if (FileUpload.isMultipartContent(requestContext)) { DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setRepository(new File(request .getRealPath("/upfile/" ) + "/" )); ServletFileUpload upload = new ServletFileUpload(factory); upload.setSizeMax(100 * 1024 * 1024 ); List items = new ArrayList(); items = upload.parseRequest(request); goodname = ((FileItem) items.get(0 )).getString(); goodname = Info.getUTFStr(goodname);
——————————PayStart——————————
项目链接: https://javayms.github.io?id=590023051907201al https://javayms.pages.dev?id=590023051907201al