• 项目说明及需求
  • 设计思路
  • 具体实现
    • 注册界面
    • 用户登录
    • 修改密码
    • 商品列表
    • 管理员登录
    • 管理员操作
    • 小黑屋
    • 管理库存服装
    • 删除添加更新商品信息
    • 数据库信息
  • 回顾与反思
  • 源码下载

项目说明及需求

  1. 建立和维护一个的Web网站
  2. 必须有数据库操作部分,即对表的增改删和浏览功能
  3. 要有浏览数据库内容的功能
  4. 最好有分页浏览功能。

设计思路

  • 我和另外一个同学两个人共同完成这个项目,考虑到时间的安排,以及需求,我们打算就做一个类似于淘宝的服装销售网站。
    其次,这个方案很好的符合我们的需求,初始需要一个数据库来构建商品目录,且只有管理员登录才能对该数据库经行操作修改。
    然后就是用户的需求,需要注册和登录才能够使用该平台。用户账户密码使用数据库经行存储。
    销售平台给出商品列表。


具体实现

平台:
Eclipse Jee Neon
MySQL 5.6
Tomcat v9.0 Server

注册界面

<%@ page language="java" import="java.util.*,java.sql.*"
contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%! boolean Check(String Name) {// 昵称格式:限16个字符,支持中英文、数字、减号或下划线String regStr = "^[a-zA-Z0-9_]{3,16}$";return Name.matches(regStr);}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>注册界面</title>
<style>
body{margin:0 15%;
}
h1{text-align:center;font-size:1.3em;font-family:"微软雅黑";color:#ffffff;padding-top:40px;
}
p{text-align:center;font-family:"微软雅黑";
}
.head img{float:left;margin-left:80px;margin-top:10px;
}
.middle img{float:left;margin-left:80px;margin-top:35px;
}
span{float:left;margin-left:40px;margin-top:25px;font-weight: bold;font-family:"微软雅黑";letter-spacing: 0.1em;font-size:2em;
}
.middle {float: left;margin-top: 20px;width: 1000px;height: 400px;background:url(https://images.pexels.com/photos/192632/pexels-photo-192632.jpeg?w=1260&h=750&auto=compress&cs=tinysrgb)no-repeat;
}
input{border-radius:5px;border: 1px solid #999999;box-shadow: 1px 1px 3px #cccccc;
}
form{width:320px;height:360px;background-color:rgba(113,119,116,0.3);margin-left:600px;margin-top:20px;text-align:center;position:relative;z-index:2;border-radius:5px;
}
#sub1{background-color:#E4393C;color:white;width:240px;height:30px;margin-left:20px;font-size:1em;font-family:"微软雅黑";
}
#user{width:200px;height:20px;margin-left:8px;font-family:"微软雅黑";
}
#psw{width:200px;height:20px;margin-left:8px;font-family:"微软雅黑";
}
#sub3{background-color:rgb(234,227,208);color:rgb(181,170,141);width:240px;height:30px;margin-left:20px;margin-top:14px;font-size:1em;font-family:"微软雅黑";
}
a[href] {text-decoration:none;font-family:"微软雅黑";color:#000000;
}
a[href]:hover {text-decoration:underline;font-family:"微软雅黑";color:red;
}form a[href]{color:red;
}
.tail{float:left;margin-top:35px;font-size:0.4em;font-family:"微软雅黑";width:100%;
}
footer_copyright{width:100%;
}
.tag1{float:left;margin-left:280px;width:100px;
}
.sep{float:left;margin-left:10px;width:5px;position:absolute;
}
.tag2{float:left;margin-left:50px;width:130px;position:absolute;
}
.tag3{float:left;margin-left:200px;position:absolute;
}
.footer_icon img{float:left;margin-left:250px;margin-top:13px;
}#redone {text-decoration:none;color:rgb(234,227,208);font-size:1.2em;
}</style>
</head>
<body>       <%StringBuilder table=new StringBuilder("");ResultSet rs = null;%><% request.setCharacterEncoding("utf-8");String msg = "123";String user = "";String psw = "";String psw1 = "";String puser="";String connectString = "jdbc:mysql://localhost:3306/14348043"+ "?autoReconnect=true&useUnicode=true"+ "&characterEncoding=UTF-8"+"&useSSL=true";  if(request.getMethod().equalsIgnoreCase("post")){msg="789";try{Class.forName("com.mysql.jdbc.Driver");Connection con = DriverManager.getConnection(connectString,"user", "123");Statement stmt = con.createStatement();user = request.getParameter("user");psw = request.getParameter("psw");puser=user;if(user==""){msg="请输入你的注册用户名!";%><script>alert("请输入你的注册用户名!");</script><%}else if(!Check(user)) {msg="用户名长度不合法";%><script>alert("用户名长度不合法");</script><%}else if(psw==""){msg="请输入你的注册密码!";%> <script>alert("请输入你的注册密码!");</script><%}else if(!Check(psw)){msg="密码只能是3-16位的数字,英文,下划线组合!";%><script>alert("密码只能是3-16位的数字,英文,下划线组合!");</script><%}else{//String sql="select psw from customer where user = "+user;String fmt="insert into customer(user,psw) values('%s', '%s')";String sql = String.format(fmt,user,psw);               int cnt = stmt.executeUpdate(sql);            if(cnt>0){                msg = "保存成功!";}%><script>alert("恭喜,您已经完成注册!");</script><%stmt.close();}               con.close();}catch (Exception e){msg="该用户名已经被注册,请更换用户名!";out.print(e);%><script>alert("该用户名已经被注册,请更换用户名!");</script><%}}%> <div class="head"><img
            src="https://gdp.alicdn.com/imgextra/i2/556855152/TB2qKGqnbBmpuFjSZFAXXaQ0pXa_!!556855152.jpg"width="950px" height="123px">      <div class="middle"> <img src="https://gdp.alicdn.com/imgextra/i2/556855152/TB2mWV4eB8kpuFjSspeXXc7IpXa_!!556855152.jpg" width="400px" height="332px">  <form action="http://localhost:8080/14348043/Register.jsp" method="post" name="f"><h1>账户注册</h1><p> 用 户 名: <input id="user" name="user" type="text" placeholder="输入6位的注册用户名" value=<%=puser%>></p><p> 设置密码 :<input id="psw" name="psw" type="password" placeholder="输入3-16位的数字英文,下划线组合"/></p><input id ="sub3" name="sub3" type="submit" value="立即注册"> <p id="redone">我已经注册,现在就<a href="http://localhost:8080/14348043/index.jsp">登录</a></p> </form>  </div> <div class="tail"><div class="footer_copyright"><span class="tag1">Web 2017</span><span class="sep">|</span><span class="tag2"><a href="#">H & J</a></span><span class="tag3"><a href="https://anwhere.github.io/Email/">联系邮箱</a></span></div><div class="footer_icon"><a href="https://anwhere.github.io/Email/"><img class="pic1" src="https://gdp.alicdn.com/imgextra/i1/556855152/TB2VyoThTcCL1FjSZFPXXXZgpXa_!!556855152.jpg" width="475x" height="83px"/></a></div></div>
</body>
</html>

用户登录

<!--   <span>欢迎登录</span> --></div>    <div class="middle"> <div id="slideMain"><div class="slides"><a href="https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-8600903382.31.xO5MNs&id=534652504040"> <img class="slide" src="https://gdp.alicdn.com/imgextra/i3/556855152/TB27pXunkqvpuFjSZFhXXaOgXXa_!!556855152.jpg" width="400px" height="404px"></a><a href="https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-8600903382.46.xO5MNs&id=547014682023"> <img class="slide" src="https://gdp.alicdn.com/imgextra/i3/556855152/TB2m48wdr_0UKFjy1XaXXbKfXXa_!!556855152.jpg" width="400px" height="404px"/></a><a href="https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-8600903382.67.xO5MNs&id=548259673114"> <img class="slide" src="https://gdp.alicdn.com/imgextra/i3/556855152/TB2h52_iHFkpuFjy1XcXXclapXa_!!556855152.jpg" width="400px" height="354px"/></a><a href="https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-8600903382.79.xO5MNs&id=546967300905"> <img class="slide" src="https://gdp.alicdn.com/imgextra/i1/556855152/TB2oT6CiHtlpuFjSspfXXXLUpXa_!!556855152.jpg" width="400px" height="354px"/></a></div></div><form action="http://localhost:8080/14348043/index.jsp" method="post" name="f"><h1>用户登录</h1><p> 用户: <input id="user" name="user" type="text" placeholder="这里输入用户名" value=<%= puser %>></p><p> 密码 :<input id="psw" name="psw" type="password" placeholder="这里输入密码"></p><input id ="sub1" name="sub1" type="submit" value="登录" /> <input id ="sub2" name="sub2" type="button" value="注册" onclick="location.href='http://localhost:8080/14348043/Register.jsp'"/>    <p id="forget"><a href="http://localhost:8080/14348043/ForgetPSW.jsp">忘记密码?</a></p> </form>   </div>     

修改密码

if(request.getMethod().equalsIgnoreCase("post")){try{Class.forName("com.mysql.jdbc.Driver");Connection con = DriverManager.getConnection(connectString,"user", "123");Statement stmt = con.createStatement();user = request.getParameter("user");psw = request.getParameter("psw");puser=user;if(user==""){msg="请输入你的用户名!";%><script>alert("请输入你的用户名!");</script><%}else if(!rexCheckuser(user)) {msg="用户名长度必须为6位!";%><script>alert("用户名长度必须为6位!");</script><%}else if(psw==""){msg="请输入你的新密码!";%> <script>alert("请输入你的新密码!");</script><%}else if(!rexCheckpsw(psw)){msg="密码只能是3-16位的数字,英文,下划线组合!";%><script>alert("密码只能是3-16位的数字,英文,下划线组合!");</script><%}else{rs=stmt.executeQuery("select user from customer where user = "+user);if(!rs.next()){msg = "用户名不存在,请重新注册!";%><script>alert("用户名不存在,请重新注册!");</script><%}else{String fmt="update customer set psw='"+psw+"' where user='"+user+"'";int cnt = stmt.executeUpdate(fmt);if(cnt>0){                  msg = "修改成功!";}%><script>alert("恭喜,您已经完成密码修改!");</script><%stmt.close();  }               }               con.close();}catch (Exception e){//msg="该用户名已经被注册,请更换用户名!";%><script>alert("该用户名已经被注册,请更换用户名!");</script><%}}%> 

商品列表

  <div class="all-goods">
<%      try{   if(!pgno.equals("1")){int pg=Integer.parseInt(pgno);pg=(pg-1)*10;while(pg > 0 && rs.next()){pg--;}}     while(rs.next() && (goods_num++ <= 10)){
%><div class="goods-border"><div class="goods"><div class="p-price">¥<span  class="J_price"><%=rs.getString("price")%></span></div><div class="p-name"><%=rs.getString("name")%></a></div><div class="p-shop"><%=rs.getString("keeper")%></div></div><!--goods end--></div><!--goods-border end-->
<%    }stmt.close();con.close();}catch(Exception e){msg = e.getMessage();}
%><div style="clear:both"></div><div class="jump"><span class="p-num"><a href="list.jsp?pgno=<%=pgno_pre%>&pgcnt=2&pid1=<%=s%>">上一页</a><span><%=pgno%></span><a href="list.jsp?pgno=<%=pgno_next%>&pgcnt=2&pid1=<%=s%>">下一页</a></span></div><!--jump end--></div><!--all-goods end-->

管理员登录

 if(request.getMethod().equalsIgnoreCase("post")){try{user = request.getParameter("user");psw = request.getParameter("psw");  if(user.equals("admin")&&psw.equals("111")){msg="登录成功";response.sendRedirect("manage.jsp");}else{msg="登录失败";%><script>alert("密码错误,请重新输入!");</script>
<%}}catch (Exception e){}}%>

管理员操作


<div class= "main"><div class="header"><h1>系统管理员操作</h1></div><div class="middle"><a href="BlackList.jsp">是小黑屋</a><a href="ItemList.jsp">服装管理</a></div>
</div>

小黑屋

if(request.getMethod().equalsIgnoreCase("post")){Class.forName("com.mysql.jdbc.Driver");Connection con = DriverManager.getConnection(connectString,"user", "123");Statement stmt = con.createStatement();try{id = request.getParameter("id"); if(id==""){%><script>alert("请输入用户ID!");</script><%}else{rs=stmt.executeQuery("select psw from customer where id = "+id); if(!rs.next()){msg = "用户名不存在!";%><script>alert("用户名不存在!");</script><%}else{String fmt="delete from customer where id = "+id;int cnt = stmt.executeUpdate(fmt);if(cnt>0){msg = "Delete Success!";%><script>alert("黑名单添加成功!");</script><%}stmt.close();con.close();}}}catch (Exception e){msg="出错";}}%>

管理库存服装

  <div class="main"><div class="header"><h1>管理库存服装</h1></div><div class="middle"><a href="DeleteItem.jsp">删除商品</a><a href="AddItem.jsp">添加商品</a><a href="UpdateItem.jsp">更新商品信息</a><a href="manage.jsp">返回管理员操作界面</a></div></div>

删除、添加、更新商品信息


增加与删除类似


数据库信息

包括用户信息表和商品信息表

回顾与反思

实际上这个系统的基本架构十分完整,只不过在UI和数据库丰富度上还不够完善,仍然有很大的修改和提升空间。

源码下载

项目源码
【newshop】

Web程序设计项目【附源码】相关推荐

  1. 闲来无事,用java写了一个魔方小程序。附源码

    闲来无事,用java写了一个魔方小程序.附源码 使用三维数组.相对来说还是简单.呵呵. import java.util.ArrayList; import java.util.List; impor ...

  2. java实现魔方_闲来无事,用java写了一个魔方小程序。附源码 | 学步园

    闲来无事,用java写了一个魔方小程序.附源码 使用三维数组.相对来说还是简单.呵呵. import java.util.ArrayList; import java.util.List; impor ...

  3. 开发 web 程序服务 之 源码分析

    文章目录 开发 web 程序服务 之 源码分析 前言 http 包源码 路由部分 监听和服务部分 mux 库源码 源码分析 创建路由 路由匹配 总结 开发 web 程序服务 之 源码分析 前言 本文的 ...

  4. c语言跳一跳辅助源码,.NET 开发一个微信跳一跳辅助程序(附源码)

    原标题:.NET 开发一个微信跳一跳辅助程序(附源码) 来源:中国.NET研究协会 cnblogs.com/dotnet-org-cn/p/8149693.html 前言 微信更新了,出现了一个小游戏 ...

  5. 安卓篇-我自己的第一个安卓程序(附源码链接)

    在上一期的教程中我们已经成功把安卓工作室(以下简称AS)安装到了我们的电脑上啦~那么这一期我们就要来创建属于我们自己的第一个安卓程序,并且运行到模拟器上. 上期内容传送门~~~ 如何安装Android ...

  6. 如何利用python抖音涨粉代码_Python实现抖音关键词热度搜索小程序(附源码)

    原博文 2020-06-03 19:03 − 今天给大家带来一个抖音热词小程序,废话不多说,直接上代码 import requests import json import urllib.parse ...

  7. 零基础一天学会开发制作一个微信小程序【附源码】

    时至如今,微信已然成为一个全民通用的工具,相应的微信小程序开发已经是一个热门的开发项目. 小程序的前端代码和web是极其相似的,wxml和html.wxss和css以及js,现在还经常将wxss读作c ...

  8. 使用duilib开发半透明异形窗体程序(附源码和demo)

    转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/43532791 半透明异形窗体的功能在之前维护的老版本的duilib里面已 ...

  9. 数字信号 fft c源码_如何制作一个简单的人体动态识别微信小程序(附源码)

    知乎小白第一次写专栏,还请多指教. 先放成果. GitHub源码: lrioxh/HAR-applet-of-Wechat​github.com b站演示视频: 居然不需要服务器?!如何制作一个简单的 ...

  10. java文件批量改名代码_[原创]JAVA版批量更名程序(附源码)(要求加分)

    这是上学时JAVA课程的课程实践,因为学习好,老师让写一个比较有难度的程序出来,不要随便写个简单的来应付. 当时也不知道什么类型的程序在JAVA里比较有难度,正好在JAVA中文论坛里看到有人问用JAV ...

最新文章

  1. java的static和private_static关键字什么意思?Java中是否可以覆盖一个private或者是static的方法?...
  2. 运动目标检测单高斯背景建模
  3. android java标准时间_Android 时间 日期 相关
  4. 《Adobe Flash Professional CC经典教程》——1.15 复习
  5. 计算机主机拆解,计算机硬件系统及主机拆解..ppt
  6. java random api_API中的Scanner、Random、ArrayList、String类
  7. 机器视觉烟包行业质量检测解决方案
  8. c++十六进制转十进制_二、八、十、十六进制转换不用计算,Excel 进制转换函数大全奉上...
  9. [C++]2-3 倒三角形
  10. 谈谈软件人的职业规划
  11. Excel-VBA 快速上手(四、Excel 程序事件、工作簿事件、工作表事件)
  12. Educational Codeforces Round 7 F. The Sum of the k-th Powers(拉格朗日插值)
  13. 计算机太极之光,且看今朝,刚柔并济,叱咤风云
  14. 短信跳转到微信关注公众号的方案
  15. android实现日历
  16. 绝地求生更新维护限时领取星魂套装
  17. 创新实验室实习生每周工作总结【实习第七周】
  18. 2016-年蓝桥杯C-(A组)赛题-网友年龄
  19. 九秀直播助手下载|九秀直播助手下载
  20. linux ubuntu环境下 android jdk sdk eclipse adt 以及手机连接无法识别的解决方法

热门文章

  1. 用Vue做个最简单的搜索框
  2. matlab解含gamma函数的方程组,matlab积分结果中的gamma()函数参数问题,急求解答!!!...
  3. 十八、Linux驱动之nor flash驱动
  4. 区块链技术在网络安全中的应用
  5. 阿里云服务器vCPU和CPU有什么区别?
  6. js携带参数实现页面跳转
  7. gd32f470总结
  8. springboot-前端js设置cookie的name、value值,后端利用name获取指定cookie的value值
  9. 代码检查工具Sonar
  10. 30 个免费的 Sketch 必备插件