黑马Web旅游网案例总结

头部导航条分类信息展示

  1. html页面加载完发送Ajax请求,不需要参数。最后接收数据写入导航条。
  2. Servlet调用Service层方法,返回category对象,并转换为json发送给客户端。

Category{
int 索引
String 分类信息
}

  1. Service调用Dao层,返回List
  2. Dao层使用JdbcTemplate查询数据库

sql=“select * from tab_category”

旅游路线分类查找,分页显示功能

  1. html页面加载完发送Ajax请求,需要传递参数cid(分类id),分页需要加上currentPage(当前页)。
  2. Servlet接收参数,并校验参数,然后设定rowPage(每页显示数),调用Service层方法findPage(cid,currentPage,rowPage)//需要传这三个参数。返回PageBean对象

PageBean{
currentPage //当前页
rowPage //每页显示数
totalPage //总页数
totalCount //总条目
List //路线对象集合
}

  1. Service层调用Dao层方法,查询总条目数,查询路线对象集合,并封装为PageBean对象;
  2. Dao层 两个方法:1.查询总条目数。2.查询路线对象集合

旅游线路查询功能

  1. 前端发送Ajax请求,附带参数rid(旅游线路id)
  2. Servlet接收参数,调用Service层方法,返回Route对象,使用json发送给客户端浏览器。
  3. Service层调用Dao的方法,查询并封装成Route对象
  4. Dao层,根据需要查询的表创建对应的Dao接口,并实现方法。

总结

  • JdbcTemplate的queryForObject一般用于执行聚合函数的Sql语句,可以返回数值
  • 重写HttpServlet的service方法,使其能通过访问的URI调用子类对应的方法,并在Servlet中提供不同的方法,从而将减少Servlet个数,使一个Servlet对应一张表。
  • Caused by: java.lang.NullPointerException
    at cn.itcast.travel.web.servlet.UserServlet.getName

    Servlet中接收参数后先判断,避免空指针异常。
  • 谷歌浏览器的无痕窗口挺好用,调试时可以避免缓存的问题
  • html目前只能使用Ajax的异步请求方式动态获取服务端数据,实现页面在不重新加载情况下,动态更新页面的部分数据。(主要和jsp的区别)
  • html通过location.search获取参数,并用Ajax发送给服务端。
//根据传递过来的参数name获取对应的页面参数
function getParameter(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i");
    var r = location.search.substr(1).match(reg);
    if (r!=null) return (r[2]); return null;
}

你可能感兴趣的:(黑马Web旅游网案例总结)