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 ]
[
下一页 ]