Servlet擅长数据的处理,应当尽量避免在Servlet中使用out流输出大量的HTML标记来显示数据。
MVC模式的核心思想是有效地组合“视图”、“模型”和“控制器”。
在JSP技术中,"视图"、"模型"和"控制器"的具体实现如下:
◆模型(Model):一个或多个JavaBean对象,用于存储数据,JavaBean主要提供简单的setXXX()方法和getXXX()方法,在这些方法中不涉及对数据的具体处理细节。
◆视图(View):一个或多个JSP页面,为模型提供数据显示,JSP页面主要使用 HTML标记和JavaBean标记来显示数据。
◆控制器(Controller):一个或多个Servlet对象,根据视图提交的要求进行数据处理操作,并将有关的结果存储到JavaBean中,然后Servlet使用重定向方式请求视图中的某个JSP页面更新显示,即让该JSP页面通过使用JavaBean标记显示控制器存储在JavaBean中的数据。
举例说明:
设计一个Web应用,有两个JSP页面(choiceDatabase.jsp和showRecord.jsp)、一个JavaBean和一个Servlet。用户在JSP页面choiceDatabase.jsp选择一个数据库中的表,提交给Servlet,该Servlet负责分页读取表中的记录,并把读取的记录存放到JavaBean中,然后请求JSP页面showRecord.jsp显示JavaBean中的数据。
showRecord.jsp页面提供了“上一页”和“下一页”按钮,用户在该页面可以继续请求控制器Servelt,以便读取上一页或下一页。将数据库查询结果保存到ResultSet对象后,就可以关闭和数据库的连接。
①模型(JavaBean)将ShowRecordByPage.java保存到目录D:\rain\snow\flower\grass中。进入上述目录编译并将编译后的字节码文件ShowRecordByPage.class复制到目录chaper9\WEB-INF\classes\flower\grass中。
②视图(JSP页面) choiceDatabase.jsp (效果如图9.8所示), showRecord .jsp (效果如图9.9所示)。
③控制器(Servlet)将下面的HandleDatabase.java保存到目录D:\rain\snow中。进入上述目录,编译HandleDatabase.java,并将编译后的字节码文件HandleDatabase.class复制到目录chaper9\WEB-INF\classes\rain\snow中 。