控制层主要用来转发从视图层传来的数据和请求到相对应的模型层,因此,实现它最好的方式莫过于使用Servlet了。当从视图层获取请求后,首先通过对web.xml文件的配置,使其转入Servlet,在Servlet中完成对页面中数据的封装和对相应模型的选择,然后再到相应的模型层进行数据处理;当在模型层数据处理完毕后,通过RequestDispatcher将处理后的数据返回相应的视图页面.在Servlet中,将使用doPost()来处理相应的中转请求,如果开发人员使用get提交方式,则使用如下方式进行处理。示例代码如下:
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
doPost(req, res);
}
//使用post提交方式
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
do_Dispatcher (req, res);
}
— 不论采用get还是post提交方式,都将执行do_Dispatcher(req, res)方法。
— do_Dispatcher(req, res)是用来处理视图层发送来的请求的方法。
直接使用request方式来获取从页面提交的数据,在要获取的数据比较多的情况下,会比较烦琐,而且直接将request传递给模型层不符合Model 2规范。所以,这里将对从页面传来的值进行封装,将其放在一个Map中,然后再传递给模型层,这样在模型层就可以直接使用Map