目录
一、让中央控制器动态加载储存子控制器
通过建模我们可以知道,最终configModel对象会包含config.xml中的所有子控制器
同时,为了解决中央控制器能够动态加载字控制器的信息,那么我们只需要引入configModel对象即可
config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- config标签:可以包含0~N个action标签 -->
<config>
<action path="/book" type="com.maomao.web.BookAction">
<forward name="failed" path="/demo2.jsp" redirect="false" />
<forward name="success" path="/demo3.jsp" redirect="true" />
</action>
<action path="/order" type="com.maomao.web.OrderAction">
<forward name="failed" path="/login.jsp" redirect="false" />
<forward name="success" path="/main.jsp" redirect="true" />
</action>
</config>
优化DisPatcherServlet.java
package com.maomao.framework;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
/**
* 中央控制器:
* 主要职能:接受浏览器结束,找到对应的处理人
* @author Administrator
*
*/
//@WebServlet("*.action")
public class DisPatcherServlet extends HttpServlet{
// private Map<String, Action> actions=new HashMap<String, Action>();
private ConfigModel configModel;
// 程序启动时,只会加载一次
@Override
public void init() throws ServletException {