相比于以前的项目,新的使用点在于使用了邮箱进行注册,而且能从设置的QQ邮箱往163邮箱发送激活注册然后跳转到登录页面的功能,而且使用了激活码code作为唯一标识,把status的值为"N"还是"Y"作为是否激活的标识。
1.使用MailUtils工具类在注册的时候点击注册按钮的时候向163邮箱发送一个激活注册的按钮:
2.点击邮箱中的登录按钮后就跳转到旅游网的登录页面:
3.使用工具类UuidUtil工具类生成唯一的激活码code,使用激活码status作为注册的用户是否完成的标识:
需要注意的:
路径跳转错误导致404:
注册时表框的实现出错的地方:
因为注册时用到了激活码,所以在登录时不仅要判断用户名和密码是否正确,还要判断用户是否去邮箱中激活了就是判断数据库中status的值是否为"Y"。信息都正确时把user存入session中,在提示姓名功能中会从session中获取到user然后更新每一次登录的姓名,格式为"欢迎您,xxx"。 退出登录功能就是把session中的数据销毁然后重定向到login.html页面。
1.登录功能:比较简单
2.提示姓名:以前还没用过这个小功能
3.退出登录功能:比较简单
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200606094954139.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2phd25oYWhh,size_16,color_FFFFFF,t_70
**
把以前写的单个的servlet写到一个UserServlet中,在UserServlet中写上注册,登录,退出登录,激活等方法替代了之前的servlet,使代码更简洁。
1.在baseServlet中序列化json的方法,以后只需要调用传参就行了,简化了很多
分析发现,分类的数据在每一次页面加载后都会重新请求数据库来加载,对数据库的压力比较大,而且分类的数据不会经常发生变化,所以使用redis来缓存这个数据.
使用了redis后,每次启动项目记得启动redis.
使用PageBean去封装页码相关的数据,在后台获取了数据后把pageBean传给前台,使用ajax去异步加载数据,从浏览器发送请求获取到数据的同时把数据封装到HTML页面中,不然展示的只是一堆数据没有图片。
1.**
2.
3.页码中多出一个 0
实现的功能是在搜索框中输入汉字能搜索到相关的旅游信息,要使用一个新的参数rname,rname的值对应着数据库中的旅游线路的名称
1.修改RouteDaoImpl的方法,增加一个rname参数
StringBuilder的用法:
避免空指针异常:
1.分析,一个RouteService对应三个Dao,分别通过 rid 找到route,通过rid 找到图片信息存入route,通过sid 找到商家存入route
2.使用ajax异步加载,把请求获得的数据封装到HTML中,拼接字符串就行了。
当点击收藏的按钮后,发送ajax请求,判断用户是否登录:1.当登录后,点击按钮就收藏了。2.当没有登录时,给出提示信息,跳转到登录的login.html
点击后添加到搜藏:
搜藏按钮的前台效果优化:看不懂的功能可以先注释掉,然后刷新网页看看优化的效果。