流程:
¤ 客户请求匹配Action URI 样式的路径。
¤ 容器将请求传递给ActionServlet。
¤ 如果这个是模块化应用,ActionServlet 选择响应的模块。
¤ ActionServlet 查询路径的映射。
¤ 如果映射标明了一个form bean,ActionServlet 看是否已经有一个实例,或者创建一个新的实例。如果已经有一个form bean,ActionServlet 重设它,并根据HTTP请求重新组装它。
¤ 如果 mapping 的 validate 属性设置为 true, 它将调用 form bean 的validate 方法。
¤ 如果失败,Servlet 将控制转发到input 属性标明的路径,控制流终止。
¤ 如果mapping 标明一个Action 类型,如果它已经存在或已经实例化,它将被重用。
¤ Action的perform 或 execute 方法被调用,并传递一个实例化的form bean (或者 null)。
¤ Action 可以组装form bean, 调用业务对象,以及其他需要做的事情。
¤ Action 返回一个ActionForward 给ActionServlet。
¤ 如果ActionForward 指向另一个 Action URI,重新开始; 否则,显示页面或者其他资源,流程结束。
--------------------------
ajax缓存:当再次请求同一url时,浏览器会直接取出缓存里的内容返回,而不向服务器端发送请求.这只有在提交方式使用get时才会发生,解决方法是在url后面加上一个参数来告诉浏览器这是一个新的请求,通常可以用new Date()来生成时间戳.而post方式提交每次都会向服务器发送请求,不要考虑缓存.