图书管理系统 day01

图书管理系统

1.功能分析与设计
2.注册与登录操作
3.添加商品操作
4.显示商品信息

订单与用户之间存在关系:1 对 多
要在订单表中生成一个外键来描述关系。
订单项:描述的商品与订单之间的关系
多对多关系
需要一个中间表来描述它们关系

创建数据库后,进行数据库 通过 source导入 sql文件

1.注册与登录
	
	1.注册
		1.注册功能演示
		2.代码实现
			regist.jsp页面------>UserServlet----->UserDao
			
			UserServlet中:
				1.获取验证码,判断它是否正确,如果正确,向下执行.
				  如果不正确,跳转到regist.jsp页面,显示错误信息
				  
				2.将所以请求参数封装到User对象中.在User类中创建一个validateRegist,
				这个方法会对请求参数进行校验,将错误信息封装到一个Map集合,在Servlet中
				判断集合长度是否>0就可以判断是否有错误信息,如果有,跳转到regist.jsp
				显示错误信息.
				
				3.调用UserService去完成注册操作  调用regist方法,传递User参数
					
				4.在regist方法中做了两件事情
					1.调用UserDao完成注册操作
					2.给注册的用户发送了一封激活邮件
					
					
			关于md5加密:
				在mysql数据库中通过  md5(字段);
					update users set password=md5(password);
					
				在java中可以通过代码实现
					MessageDigest.getInstance("md5")
					
		
	2.登录操作
		index.jsp---->page.jsp页面 有登录窗口
		
		会有登录窗口,提交时会访问UserServlet,会带一个请求参数  method=login
		在UserServlet中就可以判断当前操作是登录操作
		就会调用UserServlet中的login方法
		
		
		UserServlet---UserService----->UserDao
			
			1.userServlet中收集了用户名与密码
			2.UserService中调用UserDao中查找用户操作  findUserByUserNameAndPassword
			3.在UserService中判断了一下得到的User对象是否为null,如果为null,直接抛出一个自定义异常.
			4.如果查找到了用户,但是用户未激活,那么也不能登录成功,抛出了一个自定义异常.
			5.在UserServlet中捕获自定义异常,在page.jsp页面显示错误信息.
			6.在UserServlet中判断用户不为空,就将User存储到session中,并跳转到首面index.jsp,
			  自动跳转到page.jsp页面.
			  
		
		1.记住用户名
			当用户登录成功后,并且勾选了记住用户名操作,我们将用户的username存储到cookie中,
			持久化存储,并携带到浏览器端.
			在页面上通过el表达式获取username显示出来.
			
			在cookie中是否能存储中文,那么要是用户名是中文,我们可以存储username的utf-8码.
			在页面上,通过js将utf-8码解码.
			
		2.自动登录操作
			当用户登录成功后,并且勾选自动登录操作,我们将username,password都存储到cookie中,
			持久化存储,并携带到浏览器端.
			
			当下一次在访问时,我们可以通过Filter来拦截我们请求,判断cookie中是否有我们存储username,
			passowrd的这个cookie
			
			注意:自动登录时,有以下情况是不需要进行自动登录的.
				1.用户已经登录
				2.用户访问的路径是  login  regist这样的操作。
				
				
		3.注销操作
			我们用户登录成功后,会将用户存储到session中。
			注销操作就是将session销毁就可以以。
			session.invalidate()方法.
			
			点击注销访问UserServlet?method=logout
					
					
	------------------------------------------------------------------------------------------
	3.关于商品的添加
		添加商品操作其时是一个文件上传操作.添加商品时,需要添加一个商品图片,我们使用文件上传.
		commons-fileupload
		
		浏览器:
			1.method=post
			2.encType="multipart/form-data"
			3.<input type="file" name="f">组件
			
		点击添加图书连接,会访问 addProduct.jsp页面	
		
		AddProductServlet这个servlet中有两个工作:
			1.完成书箱图片的保存(上传操作)
			2.将信息存储到数据库.
				
				
		创建了一个Map<String,String[]>它用于封装所有请求参数
		通过BeanUtils.populate方法将请求参数直接封装到Product类中。

		可以调用ProductService中的添加图书的方法,完成图书添加操作

		当图片添加成功后,我们会跳转到index.jsp页面.

	4.关于查询图书操作
		
		1.查询全部
			index.jsp页面直接跳转到ProductServlet中.
			执行findAll操作,也就是查询出全部信息.
			
			调用ProductService----ProductDao完成查询操作,得到所有商品信息List<Product>
			
			转发到page.jsp页面,在page.jsp页面展示所有商品信息.
			
			
			
		2.根据id查询
			点击抢购书籍,会访问ProductServlet,
			product?method=findById&id=xxx
			会将这本书籍的id也携带到服务器端.
			
			会调用ProductService的findByid方法,根据id查找书籍,也就是得到一个Product对象.
			
			查找到商品后,跳转到productInfo.jsp页面,展示了商品信息
			
			上传的所有图片大小不确定的,怎样保证显示商品时,它的大小?
				
			通过一个工具类可以保证当前的商品的图片大小一致
			
			
			PicUtils putils = new PicUtils(this.getServletContext()
				.getRealPath(product.getImgurl()));
			putils.resize(200, 200);
			
			当添加商品时,会生成商品图片的一个缩略图,以方便我们在页面上显示。
			 
			在Product类中提供了一个getImgurl_s方法 ,这个方法,会根据商品图片的
			路径,获取到缩略图片的路径,我们就可以直接在页面上通过el表达工,获取
			缩略图的路径,显示出这个缩略图.
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图书借阅管理系统的主要任务是实现读者迅速检索查询,方便借阅归还图书,图书管理员高效的完成系统的各项基本操作,系统管理员是管理用户设置权限等操作,从图2.1可以看出图书借阅管理系统要完成一下功能: (1) 登录: 读者、图书管理员,系统管理员进入该系统必须登录,身份验证正确了才可以进入该系统,以不同身份进入该系统所对应的系统使用权限是不同的。 (2) 系统设置功能: 系统管理员可以设置图书馆相关的参数信息。 (3)用户管理功能: 对系统用户进行添加,修改,删除,权限设置等操作。 (4)查询功能: 对图书馆的馆藏图书,借阅历史,读者用户等信息进行查询。 (5)其他功能 系统管理员可以修改自己的密码,并且拥有其他用户所拥有的所有功能。 2、功能模型 图书管理员详细功能描述 读者管理功能: 对读者的类型和读者档案进行管理,包括添加,修改,删除读者类型和读者用户的相关信息,管理不同类型读者借阅图书的数量。 图书管理功能: 包括对图书类型和具体图书信息的管理,可以增加,修改,删除图书,丰富具体图书的信息,对不同图书进行分类操作。 图书借阅功能: 可以完成对读者借阅,续接和还书的操作。 系统查询功能: 查询图书相关资料,借阅历史和借阅到期题型. 修改密码功能: 可以修改自己的登录密码。 读者详细功能描述 (1) 修改登陆密码: 修改自己的登录密码。 (2) 查询功能: 对图书馆图书信息进行查询,对自己当前借阅书籍进行查询。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值