java 图书管理系统(一)jdbc + servlet + sql server + html

简单实现图书购买的管理系统
(因为目前还没有学习JSP,所以一些界面的实现比较笨拙,也不美观)

功能:

1、用户登录功能
2、用户注册功能
3、显示图书功能
4、删除图书功能
5、添加图书功能
6、修改图书功能
7、添加购物车功能
8、查看购物车功能
9、清空购物车(结账)功能
10、历史订单功能
11、图书列表页的访问人数统计功能
12、字符过滤器
13、实现数据库操作工具类的单例模式

功能具体描述:

所有图书操作都必须在已登录的状态下进行

1、用户登录时需要输入用户名和密码,并与数据库中已有用户的用户名和密码进行比对,同时用户登录时需要区分用户身份(普通用户/管理员),身份不同,所进入的界面不同:管理员可以对图书进行浏览、删除、添加操作, 也可以加入购物车、结账;普通用户只能浏览图书、加入购物车、结账。
2、用户注册时,所注册的用户名不可与数据库中已有的用户重名,不区别用户身份。
3、把数据库中的图书信息显示到页面上。
4、根据图书名称删除指定图书。
5、所要添加图书的图书名称不可与数据库中的图书名称相同。
6、根据图书id修改图书的其他属性(图书名称、图书描述、图书价格…),修改的图书名不可与数据库已有图书的图书名称相同。
7、点击添加购物车时,将图书加入到购物车中(类似于我们平时网上购物加入购物车的操作)。
8、点击查看购物车时,将购物车中图书的信息显示在界面中,并显示商品数量和商品总价。
9、清空购物车中的商品,并提示“结账成功”。
10、历史订单功能:包括生成订单,查看历史订单;每个用户只能查看自己的历史订单。
11、选取合适的监听器实现统计图书列表页的访问人数(注:同一用户同一时段内多次访问图书列表页时,计数为1次;注销后重新登录访问图书列表页时计数值加1)。
12、对所有页面进行字符过滤功能。

知识点

1、Servlet
点击查看 Servlet 知识整理一
点击查看 Servlet 知识整理二
2、Session会话管理
3、过滤器Filter
4、监听器Listener
5、JDBC数据库连接技术

项目中所写代码的包的结构

在这里插入图片描述
在这里插入图片描述

用户登录和注册功能

我所实现的简单的登录界面和注册界面:

用户登录界面
用户注册界面

关键代码

(声明:因为在doPost方法中调用了doGet方法,所以功能的实现我均写在了doGet方法内)

1、用户登录界面html中的关键代码:
在这里插入图片描述
2、登录失败显示界面的相关代码:
在这里插入图片描述
3、处理用户登录的Servlet中的关键代码:

protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 获取请求参数
		String uName = request.getParameter("uName");
		String uPwd = request.getParameter("uPwd");
		String logIn = request.getParameter("logIn");
		if (null != uName && null != uPwd) {
			// 根据请求参数构造User对象
			User user = new User();
			user.setUName(uName);
			user.setUPwd(uPwd);
			// 调用服务层接口查询用户是否存在
			boolean b = new UserService().isExistUser(user);
			if (b) {// 如果存在该用户,则跳转到首页显示图书信息
				List<Object> userLogin = (List<Object>) getServletContext().getAttribute("userLogin");
				// 将用户存入ServletContext
				getServletContext().setAttribute("user", uName);
				getServletContext().setAttribute("admin", logIn);
				//将用户名添加到List中,用来记录登录的人数(包含数据库中含有但登录失败的人)
				userLogin.add(uName);
				response.sendRedirect("book.action");
			} else {
				response.sendRedirect("loginfalse.html");
			}
		}
	}

4、用户注册界面html中的关键代码:
在这里插入图片描述
5、处理用户处注册的Servlet中的关键代码:

protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 获取用户信息
		String uName = request.getParameter("uName");
		String uPwd = request.getParameter("uPwd");
		String uPwdCopy = request.getParameter("uPwdCopy");
		if (!uName.equals("") && !uPwd.equals("") && !uPwdCopy.equals("") && uPwd.equals(uPwdCopy)) {// 两次密码相同
			// 将用户信息添加到数据库
			User user = new User();
			user.setUName(uName);
			user.setUPwd(uPwd);
			boolean flag = new UserService().regestUser(user);
			if (flag) {
				// 跳转到登录页面
				response.sendRedirect("login.html");
			} else {
				response.sendRedirect("regest.html");
			}
		} else {// 两次密码不相同或用户名、密码为空
			response.sendRedirect("regest.html");
		}
	}

6、UserService中的对应方法

/**
	 * 判断用户是否存在
	 * 
	 * @param user 待判断的用户
	 * @return 存在则返回true,否则返回false
	 */
	public boolean isExistUser(User user) {
		// 获取待判断的用户信息
		String uName = user.getUName();
		String uPwd = user.getUPwd();
		// 根据用户信息拼接sql语句
		String sql = "select * from UserInfo where user_name = '" + uName + "' and user_pwd = '" + uPwd + "'";
		System.out.println(sql);
		boolean b = false;
		try {
			b = dbUtil.isExist(sql);
		} catch (ClassNotFoundException | SQLException e) {
			e.printStackTrace();
		}
		return b;
	}

	/**
	 * 注册用户
	 * 
	 * @param user 待注册的用户
	 * @return 注册是否成功,成功返回true,否则返回false
	 */
	public boolean regestUser(User user) {
		// 获取用户信息
		String uName = user.getUName();
		String uPwd = user.getUPwd();
		int n = -1;// 存储插入的记录数
		try {
			String select = "select user_name from UserInfo where user_name='" + uName + "'";
			boolean isExist = dbUtil.isExist(select);
			if (!isExist) {
				// 拼接插入用户的sql语句
				String sql = "insert into UserInfo(user_name, user_pwd) values('" + uName + "', '" + uPwd + "')";
				// 将用户的信息插入用户表中
				n = dbUtil.addDataToTable(sql);
			}
		} catch (ClassNotFoundException | SQLException e) {
			e.printStackTrace();
		}
		return n > 0 ? true : false;

	}

点击查看图书购买管理系统的相关代码

点击查看 图书列表页的显示功能、管理员添加、修改、删除图书功能

点击查看购物车、历史订单相关功能关键代码

点击查看图书列表界面访问人数统计、字符过滤、数据库单例模式实现的相关代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FF小迷糊吖~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值