Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Servlet 3.0 startAsync


Автор: Atum 16.11.2012, 10:21
добрый день ! такие вот вопросы : 


как в /result.jsp - передать параметр str 


есть Сервлет : 
Код

@WebServlet(name = "NewServlet", urlPatterns = {"/NewServlet"},asyncSupported=true)
public class NewServlet extends HttpServlet {

 
    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here. You may use following sample code. */
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet NewServlet</title>");            
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet NewServlet at " + request.getContextPath() + "</h1>");
            out.println("</body>");
            out.println("</html>");
            
             AsyncContext aCtx;
                    aCtx = request.startAsync(request, response);
                    
            int limit = 20;
            BlockingQueue q = new ArrayBlockingQueue(limit);
            ThreadPoolExecutor executor =  new ThreadPoolExecutor(limit, limit, 20, TimeUnit.SECONDS, q);
            executor.execute(new MyAsyncService(aCtx));
            
        } finally {            
           // out.close();   Если откомментировать то не работает как хочется 
        }
    }




есть класс - 
Код

public class MyAsyncService implements Runnable {
    private AsyncContext ctx;
    public MyAsyncService(AsyncContext ctx) {
      this.ctx = ctx;
    }
    public void run() {
        try {
           
                   String str= "test";
                // Может быть вызвана долгая операция с последующим выводом
                    Thread.sleep(10000);
                  
                    ctx.dispatch("/result.jsp");
                 
          
  }
    
}




как в /result.jsp - передать параметр str ?

Автор: Klio 16.11.2012, 10:29
а если просто дописать:
Код

ctx.dispatch("/result.jsp?str="+test);


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)