今天在看李兴华《JavaWeb实战经典》时候,看到了用JSP+DAO整合起来做了一个数据库的增删改查操作。程序不难,但是具备借鉴意义。一般来说javaweb项目主要操作就是操作数据库,其本质也就是操作数据库。什么mvc,javabean从某种角度都是多余的,如果用户会写sql,那要View干什么,直接数据库查找不就好了?
一般来说可以实现一个最简单BS项目,可以有这么几个模式:
1 JSP + JDBC 这样写jsp里面全是java代码,很不利于维护与扩展。
2 JSP + DAO 这样业务逻辑还是写在jsp里面了
3 JSP + Servlet + JDBC(MVC) 这样好处是可以在跳转servlet时候调用下层服务,也就是业务逻辑。(JSP页面美观化可以使用EL,JSTL)
4 各种框架组合。Spring,Struts,Hibernate。Spring是接管所有层的框架。Struts是web层的框架,Hibernate是持久层框架。据我所知,持久层成熟产品很多,单就数据连接池这里有C3P0,Apache 的DBCP,Alibaba Druid(号称世界上最快的连接池),总之java世界里,只要想不到,没有实现不了的。
5 以上只是单机情况下的框架,如果到了分布式环境以及高并发环境下,设计的复杂程度将跨越一个数量级。分布式环境下的session,cookies怎么放?怎么设计分布式session框架?JVM怎么调优?I/O读取?.....暂时没研究。
画了一章李兴华老师书里案例的调用关系图: