package servlet_tests; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServlet; import javax.servlet.AsyncContext; import java.io.IOException; import java.io.PrintWriter; import java.lang.Thread.*; /* This is an implementation of Servlet3.0-i18n-24 */ public class TestAsyncServletGB2312 extends HttpServlet { String strValue = "\u7b80\u4e2d\u6d4b\u8bd5"; @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { req.setCharacterEncoding("GB2312"); resp.setContentType("text/html;charset=GB2312"); PrintWriter out = resp.getWriter(); out.println(""); out.println("AsyncContext Test"); out.println(""); out.println(""); out.println("\n"+ "
\n"+ "req.startAsync()
\n"+ "
"); out.println("resp.getCharacterEncoding(): " + resp.getCharacterEncoding() + "
" + "
"); out.println("start Servlet_1: " + strValue + "
"); out.flush(); // Start async operation AsyncContext ctx = req.startAsync(); new Thread(new Executor(ctx)).start(); out.println("complete Servlet_1, starting Servlet_2 ..." + "
" + "
"); out.flush(); } public class Executor implements Runnable { private AsyncContext ctx = null; public Executor(AsyncContext ctx)throws IOException, ServletException{ this.ctx = ctx; } public void run(){ try { //Wait two seconds, to simulate the execution of business method Thread.sleep(2000); PrintWriter out = ctx.getResponse().getWriter(); out.println("Servlet_2: "+ strValue + "
"); out.println("complete Servlet_2"); out.println(""); out.flush(); ctx.complete(); } catch (Exception e) { e.printStackTrace(); } } } public void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }