伙伴云客服论坛»论坛 S区 S客户管理 查看内容

0 评论

0 收藏

分享

JavaWeb项目总结,超市订单管理系统

参考的狂神的Web综合项目,新加了一个邮件验证功能,以及屡次验证失败群发管理邮件报警功能,邮件创建/发送的创建工具类参数比较多,所以采用了构造形式实现,其他都与狂神的代码大同小异 (或许SQL写得不一样(滑稽))
主要还是复习MVC的思想和JavaWeb那些内容吧。
构造:

JavaWeb项目总结,超市订单管理系统-1.jpg

由上图可知,总共可以分为5个模块
    Dao层负责直接与数据库停止交互Servlet层负责调用Dao层相应方法执行一些业务逻辑操作。POJO层数据库中数据对应的实体类Servlet层衔接视图与模型jsp…这个不是我写的,照搬的狂神的
代码实现就不讲,详细的去看狂神的视频,主要学习了一种思路吧(俺上面那个箭头画反了,应该从底到顶,写一个小模块测一下)。
最后讲一下构造器形式:
由于俺加那个邮件功能的工具类参数有点多,所以用的建造者设计形式。
建造者形式俺的理解就是,对一个类的构建(实例化)交给一个建造者来创建,需要设置什么参数就告诉它要做什么工作,然后完活。
《Effective Java》建议超越4参数的情况下就可以考虑使用构造者形式,主要就是类的构成复杂(简单的说参数多),或者参数的初始化的顺序影响类的功能的情况下就考虑使用它了。
  1. publicclassSendEmailextendsThread{private List<String> toEmail;private String subject;private String content;private String fromEmail;private String fromEmailPassword;publicstaticclassBuilder{private List<String> toEmail;private String subject;private String content;private String fromEmail;private String fromEmailPassword;public  SendEmail build(){returnnewSendEmail(this);}public Builder toEmail(List<String> list){this.toEmail = list;returnthis;}public Builder subject(String subject){this.subject = subject;returnthis;}public Builder content(String content){this.content = content;returnthis;}public Builder fromEmail(String fromEmail){this.fromEmail = fromEmail;returnthis;}public Builder fromEmailPassword(String fromEmailPassword){this.fromEmailPassword = fromEmailPassword;returnthis;}}.........无关代码
复制代码
  1. //使用代码
  2.         SendEmail email =newSendEmail.Builder().content("建造者形式的尝试").fromEmail("").fromEmailPassword("").subject("建造者形式").toEmail(list).build();
复制代码
目前没处置的问题:
1.js乱码:
    设置为UTF-8和js文本自身设置为UTF-8(无效)将js文本设置为带dom的utf-8然后设置为GB2312(非动态传参有效)
  1. InternetAddress[] objects =(InternetAddress[])toEmail.stream().map(t->{try{returnnewInternetAddress(t);}catch(AddressException e){
  2.                 e.printStackTrace();}return null;}).toArray();
复制代码
这段代码会报类型强转异常,提示ObjectInternetAddress不在一个loder中,详细为啥不在一个加载器中就不行就不得而知了。
  1. Exception in thread "Thread-0" java.lang.ClassCastException:
  2. class [Ljava.lang.Object; cannot be converted to class
  3. [Ljavax.mail.internet.InternetAddress;
  4. ([Ljava.lang.Object;
  5.   located in the loader 'bootstrap' Module of java.base;
  6.   [Ljavax.mail.internet.InternetAddress;
  7.   located in the unnamed module of the loader "app")
复制代码
项目地址,有需要的自取

回复

举报 使用道具

相关帖子
全部回复
暂无回帖,快来参与回复吧
本版积分规则 高级模式
B Color Image Link Quote Code Smilies

萌妹子不装萌
注册会员
主题 15
回复 17
粉丝 0
|网站地图
快速回复 返回顶部 返回列表