SMBMS超市管理系统
环境搭建
注意设置jsp的头为<%@ page pageEncoding=“UTF-8”%>,解决中文乱码
欢迎页面
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
登录
- dao层和service层都需要实现接口和实现类分离
- 常用的变量可以提取在一个常量类
- dao层相当于定义数据
- service层进行静态实现
- servlet层完成动态交互
- 用户信息可以存储到seesion中,因为整个网站都会用到这个数据
注销和退出
只需要从seesion中删除你的用户信息就可以了,直接动态实现
初始过滤
没有登录就强制登录
//System.out.println(req.getContextPath());//Super
//jsp页面获取,重定向时传递的参数
resq.sendRedirect(req.getContextPath()+"/login.jsp?error="+ URLEncoder.encode("请先登录,谢谢","utf-8"));
${param.get("error")}
修改密码
StrinUtils.isNullOREmpty(“newPassword”)
从seesion中找到用户对象,然后修改密码.
修改成功后seesion中删除用户信息.
将动态修改密码的servlet提取成一个方法,然后在原本的servlet中需要判断表单不为空(有值),且等于名字,实际就是保证表单正确,然后调用修改密码的方法.
原因是因为以后可能会从前端传递很多的表单过来,所以需要判断表单的正确性.
ajax验证密码
阿里的focjson依赖
直接从seesion中获取ajax传递过来的oldpassword
记得设置seesion的过期时间
用Map集合来存储数据,如果seesion中没有用户信息,就是用户不存在或者过期了.
然后依次判断旧密码不输入,输入错误和输入成功的可能性,都对应着ajax的sceess函数中的值,如map.put(“result”,“true”)
用户管理
封装是在实体类(属性私有,getset方法)的基础上,对set/get方法进行数据限定
页面工具类:pageUtil
dao层:根据用户名和用户角色查询数据库count.
用StringBuilter和Arraylist进行sql语句的拼接
可以给select字段设置别名,最后返回别名的数据就行了
用户管理列表
角色列表
去数据库查询,返回list列表
servlet层要判断:如果角色列表的值存在,就把这个值给真实的角色变量
获取参数,限定判断,调用dao,得到结果,返回前端
总共三个sql方法,servlet中获取数据,然后对应的传到前端
文件上传
表单需要设置一个属性来支持文件上传
请用post请求,因为get请求浏览器会限制请求数据的大小.
记得重写doPost()
jar包,common-io,fileupload
保证:外部不可访问:文件放在web-inf下,
用UUID或其他算法,使文件名唯一.
限制文件类型,最大值和判断后缀名合法性
jvm java栈和本地方法栈(native修饰的,由C或C++实现).
jni.h = java native interface
上传成功后去这里找文件
也就是target目录下的,你的项目中的,WEB-INF下
发送邮件
mail.jar(必须是javax.mail1.4.7版本,不然MailSSLSocketFactory会报错) 和activetion.jar ,抓包,请 求中有资源的 真实路径,直接访问就可以了,有时http会快一些
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
MIME就是附件(二进制文件)
Maven项目创建时,gav不能有中文
必须要有授权码,否则会报错:身份验证失败异常
java.util.concurrent.ExecutionException: javax.mail.AuthenticationFailedException: 502 Invalid input from 36.61.73.16 to newxmesmtplogicsvrsza8.qq.com
必须要有授权码,否则会报错:身份验证失败异常
java.util.concurrent.ExecutionException: javax.mail.AuthenticationFailedException: 502 Invalid input from 36.61.73.16 to newxmesmtplogicsvrsza8.qq.com