Mode I: 就是在开发中,将显示层,控制层,数据层的操作统一交给JSP或JavaBean来进行处理。
客户端通过访问JSP,调用里面的JavaBean,而通过JavaBean调用数据库,在JavaBean中包含了专门处理数据的操作,数据层主要以DAO为主,除了数据之外还有业务的处理。
开发中就存在一个问题,现在的程序要JSP+JavaBean一起开发完成后才可以使用,就会出现推诿的问题。分工不明确。所以,这种开发只适合于较快速的开发,但是后期维护困难。而且代码在JSP中,scriptlet代码非常多。
Mode II:Model-View-Controller
所有开发都以servlet为主题展开的,由servlet接收所有的客户端请求,之后根据请求调用响应的JavaBean,并将所有的结果返回给JSP,这就是MVC设计模式。
servlet特点:可以接受用户的请求参数,还可以调用java程序,而且本身是以java程序运行的,所以比JSP性能高,安全性也高。
最终servlet所有操作的内容都要交给JSP显示,这样servlet不方便显示的缺点就避免了。
1. JavaBean完成具体的单个的功能
2. JSP完成显示功能
3. Servlet完成连接JSP和JavaBean
JSP->Servlet->JavaBean,这种设计特别适合大型项目的开发,而且维护方便。
MVC设计模式中,最关键的部分就是使用RequestDispatcher接口,因为显示内容都通过此接口保存到JSP页面上显示。
MVC有自己的处理流程,实际上最重要的就是输出和跳转的问题。
由于所有内容都要交过JSP进行显示,最方便的属性范围就是request属性范围,例如以一个雇员列表操作威力,可以发现,JSP只是显示数据而已,但是这些数据要是通过MVC设计模式完成的话,肯定这些数据只是在一个JSP钟显示一次即可,而且servlet应该负责将所有的一次显示的内容交过JSP完成,那么最合适的属性范围就是request了。
因为之前强调过,能用page就不用reequest,能用request就不用session,能用session就不使用application。
从实际开发来讲,session属性范围用于登录验证使用较多,而request属性范围主要的功能就是在MVC设计模式上,将servlet内容交过JSP显示,而且这种显示在另外一次提交之后属性就消失了。