项目描述
临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给大家介绍一篇基于JavaWeb的网上销售系统设计与实现。
功能需求
本网上销售系统通过分析和确定系统的角色和功能划分,按照业务合理区分为不同的菜单功能模块。从用户角度出发,对每个功能的需求实现点进行人性化详细的构思。对每个功能的细节点进行分析设计整合完成整个网上销售系统的设计。这两类的主要功能如下:
(1)前端网页:
1、网站首页
2、用户登录注册
3、全部商品
4、新闻公告
5、咨询客服
6、详情下单
7、个人中心
(2)后台管理
1、后台主页
2、购物车管理
3、订单信息管理
4、留言管理
5、个人中心
6、商品信息管理
7、管理员登录
部分效果图
部分代码
/**
* 前台、后台、登录。
* 和修改密码项
*/
public class LoginCtrl extends HttpServlet {
// 构造函数
public LoginCtrl() {
super();
}
// 析构函数
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
// get 访问得时候运行这个方法
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 将get 方法得内容运行到Post 方法中
this.doPost(request, response);
}
// 输出弹出框、并跳转到指定页面
public void go(String url, HttpServletRequest request, HttpServletResponse response) {
try {
// 获取输出流
PrintWriter out = response.getWriter();
// 输出到控制台
System.out.println(request.getAttribute("error"));
// 判断有没有错误、有得话就输出弹出框
if (request.getAttribute("error") != null) {
out.println("<script>alert('" + request.getAttribute("error") + "');location.href='" + url + "'</script>");
out.close();
return;
}
// 加载指定jsp 页面、
request.getRequestDispatcher(url).forward(request, response);
} catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// 跳转到某个页面
public void gor(String url, HttpServletRequest request, HttpServletResponse response) {
try {
// 执行页面跳转
response.sendRedirect(url);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 执行post 方法
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设定编码为 utf-8
response.setContentType("text/html;charset=utf-8");
// 获取输出流
PrintWriter out = response.getWriter();
// 判断执行那个 if 判断内容
String ac = request.getParameter("ac");
if (ac == null) ac = "";
// 生成数据库查询对象
CommDAO dao = new CommDAO();
// 获取当前时间
String date = Info.getDateStr();
// 获取当前日期
String today = date.substring(0, 10);
// 获取当前年月
String tomonth = date.substring(0, 7);
// 前台登录代码
if (ac.equals("login")) {
// 获取前台填写得账号
String username = request.getParameter("username");
// 获取前台填写得密码
String password = request.getParameter("pwd");
// 判断页面上选择的权限
String utype = request.getParameter("cx");
// 获取填写得验证码
String pagerandom = request.getParameter("pagerandom") == null ? "" : request.getParameter("pagerandom");
// 获取生成验证码时保存在session 中得验证码
String random = (String) request.getSession().getAttribute("random");
// 对比验证码是否正确、不正确则输出验证码错误
if (!pagerandom.equals(random) && request.getParameter("a") != null) {
request.setAttribute("error", "验证码错误");
go("index.jsp", request, response);
} else {
String sql1 = "";
if (utype.equals("用户")) {
sql1 = "select * from yonghu where yonghuming='" + username + "' and mima='" + password + "' ";
}
// 查询数据库中得信息判断账号密码得正确性
Map map = dao.find(sql1);
// map 不为空则是登录成功
if (!map.isEmpty()) {
// 获取数据循环
Iterator iter = map.keySet().iterator();
// 设置session
request.getSession().setAttribute("username", username);
request.getSession().setAttribute("login", utype);
request.getSession().setAttribute("cx", utype);
while (iter.hasNext()) {
// 这个循环设置用户得信息进session 中
String key = (String) iter.next();
String val = (String) map.get(key);
request.getSession().setAttribute(key, val);
}
// 跳转到index.jsp
gor("index.jsp", request, response);
} else {
// 否则提示账号或密码错误
request.setAttribute("error", "账号或密码错误");
go("index.jsp", request, response);
}
}
}
// 后台登录
if (ac.equals("adminlogin")) {
// 后台管理员登录
// 获取前台填写得账号
String username = request.getParameter("username");
// 获取前台填写得密码
String password = request.getParameter("pwd");
// 判断页面上选择的权限
String utype = request.getParameter("cx");
// 获取填写得验证码
String pagerandom = request.getParameter("pagerandom") == null ? "" : request.getParameter("pagerandom");
// 获取生成验证码时保存在session 中得验证码
String random = (String) request.getSession().getAttribute("random");
// 对比验证码是否正确、不正确则输出验证码错误
if (!pagerandom.equals(random) && request.getParameter("a") != null) {
request.setAttribute("error", "验证码错误");
go("login.jsp", request, response);
} else {
String sql1 = "";
if (utype.equals("管理员")) {
sql1 = "select * from admins where username='" + username + "' and pwd='" + password + "' ";
}
// 查询数据库中得信息判断账号密码得正确性
Map map = dao.find(sql1);
// map 不为空则是登录成功
if (!map.isEmpty()) {
// 获取数据循环
Iterator iter = map.keySet().iterator();
// 设置session
request.getSession().setAttribute("username", username);
request.getSession().setAttribute("cx", utype);
request.getSession().setAttribute("login", utype);
while (iter.hasNext()) {
// 这个循环设置用户得信息进session 中
String key = (String) iter.next();
String val = (String) map.get(key);
request.getSession().setAttribute(key, val);
}
// 跳转到main.jsp
gor("main.jsp", request, response);
} else {
// 否则提示账号或密码错误
request.setAttribute("error", "账号或密码错误");
go("login.jsp", request, response);
}
}
}
//修改密码
if (ac.equals("adminuppass")) {
// 获取前台填写得原密码
String olduserpass = request.getParameter("ymm");
// 获取前台填写得新密码
String userpass = request.getParameter("xmm1");
// 获取前台填写得确认密码
String copyuserpass = request.getParameter("xmm2");
// println(Info.getUser(request).get("id").toString());
// 判断当前权限p
String cx = (String) request.getSession().getAttribute("login");
//String oldPassword = "";
// 获取当前登录用户的账号
String username = request.getSession().getAttribute("username").toString();
Map m = null;
String biao = "";
if (cx.equals("管理员")) {
biao = "admins";
m = Query.make(biao).where("username", username).where("pwd", olduserpass).find();
// dao.getmaps("username", (String) request.getSession().getAttribute("username"), "admins");
}
if (cx.equals("用户")) {
biao = "yonghu";
m = Query.make(biao).where("yonghuming", username).where("mima", olduserpass).find();
// dao.getmaps("yonghuming", (String) request.getSession().getAttribute("username"), "yonghu");
}
// 尝试登录一下原密码、如果为null 或 空map则提示原密码错误
if (m == null || m.isEmpty()) {
// 提示原密码错误
request.setAttribute("error", "原密码错误");
go("mod.jsp", request, response);
} else {
//String id = (String)user.get("id");
// 否则更新成新密码
String sql = "";
if (cx.equals("管理员")) {
sql = "UPDATE admins SET pwd='" + userpass + "' WHERE username='" + username + "'";
}
if (cx.equals("用户")) {
sql = "UPDATE yonghu SET mima='" + userpass + "' WHERE yonghuming='" + username + "'";
}
//执行更新密码
dao.commOper(sql);
// 提示密码修改成功
request.setAttribute("error", "密码修改成功");
go("mod.jsp", request, response);
}
}
dao.close();
out.flush();
out.close();
}
public void init() throws ServletException {
// Put your code here
}
}
安装部署需求
eclipse运行启动
系统部署
系统开发后,在生产环境配置项目运行环境,具体步骤如下:
安装linux或者windows10操作系统;
安装JDK1.8并配置环境变量;
安装MySQL5.7版本以上版本数据库,创建数据库并执行脚本创建表;
在eclipse中运行打包;
本项目用到的技术和框架
1.开发语言:Java
2.开发模式:B/S
3.数据库:MySQL5.7
4.框架:Servlet+JSP
本项目中的关键点
此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。
环境工具
开发工具 Eclipse
语言 JDK1.8 、Servlet+JDBC+JSP
硬件:笔记本电脑;
软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
操作系统:Windows 10;
其它软件:截图工具、常用浏览器;
以上是本系统的部分功能展示,如果你的选题正好相符,那么可以做毕业设计或课程设计使用。