西木-学习篇之黑马旅游网项目bug解决及知识摘要
一、黑马旅游网项目知识摘要
1.博客陈述篇之web项目吐槽
- 终于到了自己做web项目的时候啦,都会遇到哪些问题呢
正如大家所说的,看似不难理解的项目代码,自己一步步去实现的时候仍然会有许多突发的问题,除了需要对项目整体结构和功能有系统化的理解,更多的是程序开发过程中对细心程度和知识系统储备(经验吧这就是。。)的要求。
2.博客技术篇之web项目问题阐述及处理
- 问题一: ajax异步请求所出现的无法从后台其他页面获取session对象的问题
- 问题二:angular-1.7.9.min.js文件未配置出现的页面加载问题
话不多说上解决方案!
Solution 1:
问题一中我们针对旅游网的login.html登录页面输入数据库中存在的用户名和密码,点击登录。但是发现个问题,本来我们希望将对应的用户名姓名显示在表头,即:欢迎,xxx;通过验证好的用户信息返回后存入session中进行响应。但是发现并没有成功,而是打开浏览器控制台发现如下错误。
这时候我们检查后台的service和Dao代码都没有错误,经过断点调试我们发现后台的查询操作和回显反值都没有问题,但是问题出在哪里了呢?这时候我们来看前台的ajax请求页面
对data内容进行跟踪,发现回调函数中data数据为null;
后台根据用户名和密码请求的user信息却是正常的
这时我们可以锁定问题出现在对异步请求处理的servlet层
我们设计中通过info的flag属性给前台响应验证信息,但是忘记了这个时候我们仍需要将后台查询的user数据包装载到session域中,因为我们前台还需要使用它的信息,但是如果只验证不存储,那么我们无法在输入用户名和密码后得到我们后续的自动响应信息。
至此,问题就解决完了。
这里我想强调一个问题:
就是ajax异步传输的模式中我们更需要注意对session的理解,它是异步传输中的第三方媒介,由于html页面无法直接通过动态获取比如通过js的el表达式等直接对数据进行操作,这时session的临时媒介能力就派上大用场了,我们可以将后台响应的数据返回并保存在其中,需要的时候获取出来,并且再不需要的时候费除掉。或者在下一次服务器连接后就自动消失了,有点类似于缓存一样的效果。
Solution 2:
问题二中我们针对旅游网的header.html页面加载时发现web控制台报错angular-1.7.9.min.js:80错误。
这也是我们js包中没有引入造成的
很简单我们可以自己创建一个angular.js文件来弥补
头文件名自行命名,内容可以百度去官网查看源码copy过来就好啦。
至此,问题二解决。
我们在做项目时候的bug其实都是对技术经验的挑战,出的问题多了在前期是个好事情。希望我们都再接再厉为了更好的技术沉淀,更美好的生活出发。