returnMap.put("success", "/success.jsp");
returnMap.put("error", "/error.jsp");
returnMap.put("add", "/add.jsp");
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
//获取页面访问连接,
String path = request.getServletPath();//--/userAction.action
if(path!=null && path.equals("/test.jsp")){
chain.doFilter(request, response);
return;
}
try {
//获取访问的Action类的路径
String actionClass = actionMap.get(path);
//使用Action类的路径,并用java反射机制,获取Action类
Action action = (Action)
Class.forName(actionClass).newInstance();
//执行Action类的方法
String returnValue = action.execute();
//利用Action类的返回值,获取所对应的页面
String page = returnMap.get(returnValue);
//转发到对应的页面
request.getRequestDispatcher(page).forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
public void destroy() {
}
}
总结:struts2 的原理:
评论0