您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

GQAjaxTestServlet.java 2.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package com.google.gwt.query.servlet;
  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5. import java.util.Enumeration;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import com.google.gwt.query.client.plugins.ajax.Ajax;
  11. public class GQAjaxTestServlet extends HttpServlet {
  12. private static final long serialVersionUID = 1L;
  13. private String name = this.getClass().getSimpleName() + " ";
  14. @SuppressWarnings("unused")
  15. private void dumpHeaders(HttpServletRequest req) {
  16. System.out.println(name + req.getMethod() + " " + req.getContentType());
  17. @SuppressWarnings("unchecked")
  18. Enumeration<String> en = req.getHeaderNames();
  19. while (en.hasMoreElements()) {
  20. String s = (String) en.nextElement();
  21. System.out.println(name + s + " " + req.getHeader(s));
  22. }
  23. }
  24. @Override
  25. protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  26. String t = req.getParameter("timeout");
  27. if (t != null && t.matches("\\d+")) {
  28. try {
  29. int ms = Integer.parseInt(t);
  30. System.out.println(name + "sleeping: " + ms);
  31. Thread.sleep(ms);
  32. } catch (Exception e) {
  33. }
  34. return;
  35. }
  36. String data = "";
  37. if (req.getMethod().equalsIgnoreCase("get")) {
  38. data = req.getParameter("data") != null ? req.getParameter("data") : "";
  39. if (req.getParameter("callback") != null) {
  40. data = req.getParameter("callback") + "(" + data + ");";
  41. }
  42. } else if (req.getMethod().equalsIgnoreCase("post")
  43. && req.getContentType() != null
  44. && req.getContentType().toLowerCase().startsWith(Ajax.JSON_CONTENT_TYPE)) {
  45. BufferedReader reader = req.getReader();
  46. String line;
  47. while ((line = reader.readLine()) != null) {
  48. data += line;
  49. }
  50. }
  51. String origin = req.getHeader("Origin");
  52. if ("true".equals(req.getParameter("cors")) && origin != null) {
  53. resp.addHeader("Access-Control-Allow-Origin", origin);
  54. if ("true".equals(req.getParameter("credentials"))) {
  55. resp.addHeader("Access-Control-Allow-Credentials", "true");
  56. }
  57. String method = req.getHeader("Access-Control-Request-Method");
  58. if (method != null) {
  59. resp.addHeader("Access-Control-Allow-Methods", method);
  60. resp.setHeader("Allow", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS");
  61. }
  62. String headers = req.getHeader("Access-Control-Request-Headers");
  63. if (headers != null) {
  64. resp.addHeader("Access-Control-Allow-Headers", headers);
  65. }
  66. }
  67. PrintWriter p = resp.getWriter();
  68. p.print(data);
  69. p.flush();
  70. p.close();
  71. System.out.println(name + "returns: " + data);
  72. }
  73. }