这是因为(我只要一个对象,却发现返回给我3个对象)因此就会报错
我的情况是controller那里加List List myOrder = orderService.findMyOrdersByUsername(username);
关于Javaweb_servlet的总结
开发流程 数据库—》实体层pojo—》jdbc.properties(这个一般cope好了)—》工具类utils—》dao层(数据访问)—》service(服务层),一般到具体的业务,如登录,注册(service里面的实现方法显然是userDao.userDaoImpl里面的方法)—》Servlet–》web.xml
有正向开发和反向开发
注意要养成的两个习惯:1 写好的层最好测试一下,减少不必要的错误
2.要写注释,具体点好,起码知道在干什么?!
dao数据访问层,全称为data access object,属于一种比较底层,比较基础的bai操作,具体到对于某个表、某个实体的增删改查
service层:service层叫服务层,被称为服务,肯定是相比之下比较高层次的一层结构,相当于将几种操作封装起来。
部分代码
2、Servlet登录注册怎么实现的?
登录
用户在浏览器输入用户名、密码(id带过来),然后用post方法提交
前端可以做用户校验,安全考虑,用正则表达式来实现,直接百度
如用户名4到16位 var uPattern = /[1]{4,16}$/;
密码最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
var pPattern = /.(?=.{6,})(?=.\d)(?=.[A-Z])(?=.[a-z])(?=.*[!@#/;
提交到服务器,我们Servlet来处理,doPost方法直接根据idea的提示直接生成空方法,然后
(思路讲述一下servlet中联系到service业务中具体的流程,如登录)
1、请求参数username,password
2、得到参数用userService调用login方法
service实现类方法:userDao调用数据库查询用户名和密码。到数据库去查,如果有的话,查询成功,没有的话,查询失败。
数据库查询只是语句不一样,方法一样的,可以封装到BaseDao里面去,提高开发效率
3、如果检查用户名和密码不正确,则登录失败,请求转发回到login.html
4、如果检查用户名和密码正确,则登录成功,跳转到登录成功界面login_success.html(可以是登录后的主页)
注册:
用户在浏览器输入用户名、密码、确认密码。。。等等,然后用post方法提交
前端可以做用户校验,安全考虑,用正则表达式来实现,直接百度
如用户名4到16位 var uPattern = /[2]{4,16}$/;
密码最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
var pPattern = /.(?=.{6,})(?=.\d)(?=.[A-Z])(?=.[a-z])(?=.*[!@#/;
等等。。。。原则上验证能在前端完成就在前端完成。
提交到服务器,我们Servlet来处理,doPost方法直接根据idea的提示直接生成空方法,然后
1、请求参数username,password,email,验证码等等,看注册需要的信息
2、检查验证码是否正确-----》不正确直接请求转发会regist.html
3、检查用户名可用
userService调用existsUsername(username)自定义方法
service实现类方法:userDao调用数据库查询用户名。
到数据库去查,如果有的话,用户名存在,请求转发回到register.html
,没有的话,用户名可用
数据库查询只是语句不一样,方法一样的,可以封装到BaseDao里面去,提高开发效率
4、用户名可用,则登录成功,调用service保存到数据库,这样我们可用在数据库看到注册信息,同样的套路userService—>userServiceImpl—>userDao.保存方法(user)----》userDaoImpl
insert into t_user(username,password…) values(?,?..)
okok
跳转到登录成功界面login_success.html(可以是登录后的主页)
本文使用 文章同步助手 同步
网友评论