打字猴:1.70048455e+09
1700484550 图38-4 核心控制器类图
1700484551
1700484552 由于类图中的部分输入参数类型较长,省略掉了,请读者仔细看代码。首先阅读FilterDispatcher代码,如代码清单38-1所示。
1700484553
1700484554 代码清单38-1 核心控制器
1700484555
1700484556 public class FilterDispatcher implements Filter{
1700484557
1700484558 //定义一个值栈辅助类
1700484559
1700484560 private ValueStackHelper valueStackHelper=new ValueStackHelper();
1700484561
1700484562 //应用IActionDispatcher
1700484563
1700484564 IActionDispather actionDispatcher=new ActionDispatcher();
1700484565
1700484566 //servlet销毁时要做的事情
1700484567
1700484568 public void destroy(){
1700484569
1700484570 }
1700484571
1700484572 //过滤器必须实现的方法
1700484573
1700484574 public void doFilter(ServletRequest request,ServletResponse response,
1700484575
1700484576 FilterChain chain)throws IOException,ServletException{
1700484577
1700484578 //转换为HttpServletRequest
1700484579
1700484580 HttpServletRequest req=(HttpServletRequest)request;
1700484581
1700484582 HttpServletResponse res=(HttpServletResponse)response;
1700484583
1700484584 //传递到其他过滤器处理
1700484585
1700484586 chain.doFilter(req,res);
1700484587
1700484588 //获得从HTTP请求的ACTION名称
1700484589
1700484590 String actionName=getActionNameFromURI(req);
1700484591
1700484592 //对ViewManager的应用
1700484593
1700484594 ViewManager viewManager=new ViewManager(actionName);
1700484595
1700484596 //所有参数放入值栈
1700484597
1700484598 ValueStack valueStack=valueStackHelper.putIntoStack(req);
1700484599
[ 上一页 ]  [ :1.70048455e+09 ]  [ 下一页 ]