第三次访问,execute方法被执行2次,以后在访问还是execute方法会被执行两次。下面是action的代码:
public class MyCaptcha extends ActionSupport implements SessionAware { @SuppressWarnings("rawtypes")
private Map session; @SuppressWarnings("rawtypes")
public void setSession(Map session) {
this.session = session; } @Override
public String execute() throws Exception {
System.out.println("action被执行————————————————————————————————");
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("image/png");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
ServletOutputStream outputStream = response.getOutputStream();
Captcha captcha = new Captcha();
captcha.generateImage(this.session, outputStream);
outputStream.close();
return NONE;
}}等高手解答!!

解决方案 »

  1.   

    return NONE   是什么?
      

  2.   


    我在execute方法里想控制台输出东西,可以确定是两次,重定向的跳转方式什么意思?
      

  3.   

    后来试着用servlet把验证码写到页面,直接在浏览器打开servlet的地址,发现servlet同样被执行两次。
    public class Efg extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    System.out.println("doGet------------------------");
    this.doPost(request, response);
    } public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    System.out.println("doPost------------------------");
    response.setContentType("image/png");
    response.setHeader("Pragma", "No-cache");
    response.setHeader("Cache-Control", "no-cache");
    response.setDateHeader("Expires", 0);
    HttpSession session = request.getSession();
    ServletOutputStream outputStream = response.getOutputStream();
    Captcha captcha = new Captcha();
    captcha.generateImage(session, outputStream);
    outputStream.close();
    }}
    估计问题是出现在Captcha这个类里面。