在平時的項目中經常的用到請求分發,每次都要重復的寫如下代碼:
RequestDispatcher dispatcher = getServletContext()
.getRequestDispatcher("/public/errmsg.jsp");
dispatcher.forward(request, response);
我們可以一個
public abstract class ServletMNG
extends HttpServlet類,其中封裝此方法:
/**
* 請求重定向到指定的url。每個Servlet的方法都會用到
* @param request
* @param response
* @param url 重定向的url,可以代參數
* @author aimonica
*/
public void forward(HttpServletRequest request,
HttpServletResponse response, String url) {
try {
RequestDispatcher dispatcher = getServletContext()
.getRequestDispatcher(url);
dispatcher.forward(request, response);
}
catch (Exception ex) {
ex.printStackTrace(System.out);
handleException(response, ex);
}
}
其他的servlet都繼承此類。便可以在子類中通過以下方式輕松調用:forward(request,response,url).
項目有好多的地方,都可以用類似的封裝。