学习【黑马旅游网】总结

花了大概两周的下班时间,学习了下传智博客的黑马旅游网项目,从最开始的把mysql脚本转换为sql脚本,idea maven的使用,以及对servlet的再次熟悉,上次接触servlet都是2016年了,基本上是忘完了。感觉主要是熟悉了idea这个厉害的编码的工具的使用。前端的代码 样式 脚本都是已经有了的。所以前端我没怎么练习,主要是写java代码。
 
这次的练习,让我体会到了项目分层的技术的好处。dao层只写sql相关的,不写验证,业务。
service层会写些验证和业务,servlet层就是只获取数据和回传数据。再加上使用面向接口编程,我只想到再数据层里,可以不改变代码的情况,只是把SqlServer的dao层换成mySql的dao层,对于业务层,如果没配置依赖倒置,就手动改哈new mysqldaoimp就可以了,里面的调用方法都遵循接口的方法准则。所以这就很方便。但对于业务层的面向接口我还没有什么体会,但我的理解是,如果业务有变化,只需换种实现,调用dao层的servlet层同样如果没配置依赖倒置,改哈new serviceimp就行了。分层让代码的变动对其他的代码的影响减小了,利于项目的升级和改造。这就是分层和面向接口的一个好处。
 
它的不足,就是麻烦,像我这个简单的代码,都分层,增加一个方法,就要写dao层,写service层,还要增加接口和实现,是麻烦。不过这让我想到再学asp.net 也是传智播客的.net视频,有个t4模板的东西,直接通过t4模板生成 dao层,servlet层,我觉得像那些费时重复的代码就应该学学使用t4模板来减少工作量,我也是首次接触idea工具,不知道有没有什么插件能减少这种代码。
 
除了这些项目上的,技术上主要是首次接触maven,就像,net的nuget一样,我第一次接触maven就把maven的仓库改成了阿里的仓库,但是阿里的仓库里没有 tomcat8.0以上的插件,有7版本的,后来我就再网上找,找到个仓库地址,去下载的时候,发现,有个东西始终下载不下来,后来经过查看,发现那个网上的仓库地址里面的目录更改了,我直接用网站打开maven下载时的地址,发现对应的东西已经找不到了,我就一级一级的去找目录,发现有个目录根本就不存在了。项目上我使用的sqlserver+c3p0所以传智播客的模板项目里的pom.xml没得我要的lib,我就把以前的lib加进去,也就是再项目根目录建个与src文件夹同级的lib文件夹,并作为libiary,还再src根目录下放了c3p的配置文件,这样做完之后,我允许代码,发现配置文件没起作用,后来发现配置文件要放到resources文件夹下,它应该是在main目录下面。配置起作用了,但是又出现driver驱动 class not found,后来发现,需要把sqlserver驱动的jar包配置到pom.xml上去。后来就成功运行起项目了。但是发现tomcat启动起来了,但是 无法访问到网站,我复制了 console窗口的一句最后以.war结尾的句子百度,发现是要在pom.xml的tomcat的配置里加上<ignorePackaging>true</ignorePackaging>后来 tomcat 就启动起来了,红色的日志信息也出来了,网站也能访问了。
 
代码上,我感觉获得新东西很少很少,就有个beanutils的东西直接将request的parameter转换为对象,不需要一个个的获取赋值了。jdbctemplate 当查询结果为null时,会直接抛出 emptyresultAcees..什么的异常。对于String类型的字符串 在idea上不能用==比较,我些c#写惯了,喜欢用==,后来发现这样判断不得行,得用equal。String.split 在c#里,传分割的字符,但是在java里传的正则表达式,我用||分割,在java里得写成\|\|。还有就是想像asp.net那样使用cache,发现似乎servlet里的没有cache对象,我就想缓存一下几个菜单,不用每次都去查数据库。后来我就用全局变量 servletcontext.setAttribute来用,不晓得这样用有什么问题不。
原文地址:https://www.cnblogs.com/HelloQLQ/p/14310522.html