本文发表在 rolia.net 枫下论坛1) 有两个入口A与B的, 例如:http://127.0.0.1/A/login.html 与 http://127.0.0.1/B/login.html, the ActionServlet 只是通过process()转发request到RequestProcessor , 下面是ActionServlet 的process()源码
(注:转载)------------------------------
protected void process(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
RequestUtils.selectApplication(request,
getServletContext());
getApplicationConfig(
request).getProcessor().process(request, response);
}
RequestUtils是個工具類,ActionServlet呼叫其selectApplication()方法,藉由 request.getServletPath()來取得請求路徑以選擇應用程式模塊來處理請求,之後從ApplicationConfig物件取得 RequestProcessor物件,將使用者的請求委託它來進行處理
-----------------------------
2) 通过getApplicationConfig,我们得到了RequestProcessor,然后得到它的Process()方法.下面是Process()的主要方法:
-------
protected String processPath()
protected ActionForm processActionForm()
protected ActionMapping processMapping()
protected Action processActionCreate()
protected ActionForward processActionPerform()
processLocale()
protected void processForwardConfig()
...
--------
问题1? 在这里怎样让它与A的Struts-config-A.xml联系起来?也就是说怎样加载A的配置文件而不是B的Struts-config-B.xml呢?
问题2? 假如繼承RequestProcessor,並改寫其中的processXXXXX()方法來自定義請求的處理方式,那么要在struts-config.xml中使用<controller>標籤來定義还是在Struts-config-A.xml中来定义?
3)假设RequestProcessor在request中发现了是A的入口,通过Struts-config-A.xml找到了A的<Action>....</Action>,运行action,然后forward 到一个变量,再通过<Action>....</Action>找到了被forward的login.jsp.这时候观众看到了login的页面.
问题? 在login 的页面里怎样才能体现它是属于A的request 的呢?在观众填了姓名 和密码然后摁了发送键后.用您说的common config set...() 与 get...() 么? 也就是说A,B入口后怎样区分A,B的第二次请求?
聆风, 还有什么考虑不周的地方么? I use chinese words writting the above to make it easier to understand.更多精彩文章及讨论,请光临枫下论坛 rolia.net
(注:转载)------------------------------
protected void process(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
RequestUtils.selectApplication(request,
getServletContext());
getApplicationConfig(
request).getProcessor().process(request, response);
}
RequestUtils是個工具類,ActionServlet呼叫其selectApplication()方法,藉由 request.getServletPath()來取得請求路徑以選擇應用程式模塊來處理請求,之後從ApplicationConfig物件取得 RequestProcessor物件,將使用者的請求委託它來進行處理
-----------------------------
2) 通过getApplicationConfig,我们得到了RequestProcessor,然后得到它的Process()方法.下面是Process()的主要方法:
-------
protected String processPath()
protected ActionForm processActionForm()
protected ActionMapping processMapping()
protected Action processActionCreate()
protected ActionForward processActionPerform()
processLocale()
protected void processForwardConfig()
...
--------
问题1? 在这里怎样让它与A的Struts-config-A.xml联系起来?也就是说怎样加载A的配置文件而不是B的Struts-config-B.xml呢?
问题2? 假如繼承RequestProcessor,並改寫其中的processXXXXX()方法來自定義請求的處理方式,那么要在struts-config.xml中使用<controller>標籤來定義还是在Struts-config-A.xml中来定义?
3)假设RequestProcessor在request中发现了是A的入口,通过Struts-config-A.xml找到了A的<Action>....</Action>,运行action,然后forward 到一个变量,再通过<Action>....</Action>找到了被forward的login.jsp.这时候观众看到了login的页面.
问题? 在login 的页面里怎样才能体现它是属于A的request 的呢?在观众填了姓名 和密码然后摁了发送键后.用您说的common config set...() 与 get...() 么? 也就是说A,B入口后怎样区分A,B的第二次请求?
聆风, 还有什么考虑不周的地方么? I use chinese words writting the above to make it easier to understand.更多精彩文章及讨论,请光临枫下论坛 rolia.net