アットウィキロゴ

KS > practice > ResultGreetServlet

  1. package part1.greet;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5. import java.text.DateFormat;
  6. import java.text.SimpleDateFormat;
  7. import java.util.Date;
  8. import java.util.GregorianCalendar;
  9.  
  10. import javax.servlet.ServletException;
  11. import javax.servlet.http.HttpServlet;
  12. import javax.servlet.http.HttpServletRequest;
  13. import javax.servlet.http.HttpServletResponse;
  14.  
  15. /**
  16.  * Servlet implementation class ResultGreetServlet
  17.  */
  18. public class ResultGreetServlet extends HttpServlet {
  19. private static final long serialVersionUID = 1L;
  20.  
  21. Date now = new Date();
  22.  
  23. private final DateFormat year = new SimpleDateFormat("yyyy");
  24. private final DateFormat month = new SimpleDateFormat("MM");
  25. private final DateFormat day = new SimpleDateFormat("dd");
  26. private final int yy = Integer.parseInt(year.format(now));
  27. private final int mm = Integer.parseInt(month.format(now)) - 1;
  28. private int dd = Integer.parseInt(day.format(now));
  29.  
  30. // おはようございます
  31. private final Date morning_after = new GregorianCalendar(yy, mm, dd, 05, 29, 59).getTime();
  32. private final Date morning_before = new GregorianCalendar(yy, mm, dd, 11, 00, 00).getTime();
  33. // こんにちは
  34. private final Date daytime_after = new GregorianCalendar(yy, mm, dd, 10, 59, 59).getTime();
  35. private final Date daytime_before = new GregorianCalendar(yy, mm, dd, 17, 00, 00).getTime();
  36. // こんばんは
  37. private final Date night_after = new GregorianCalendar(yy, mm, dd, 16, 59, 59).getTime();
  38. private final Date night_before = new GregorianCalendar(yy, mm, dd, 21, 30, 00).getTime();
  39. // おやすみなさい
  40. private final Date sleep_today_after = new GregorianCalendar(yy, mm, dd, 21, 29, 59).getTime();
  41. private final Date sleep_today_before = new GregorianCalendar(yy, mm, dd + 1, 00, 00, 00).getTime();
  42. private final Date sleep_nextday_after = new GregorianCalendar(yy, mm, dd - 1, 23, 59, 59).getTime();
  43. private final Date sleep_nextday_before = new GregorianCalendar(yy, mm, dd, 01, 30, 00).getTime();
  44.  
  45. private String choicePhrase(Date now) throws IsSleepingException {
  46.  
  47. String phrase = null;
  48.  
  49. if (now.after(morning_after) && now.before(morning_before)) {
  50. phrase = "おはようございます";
  51. } else if (now.after(daytime_after) && now.before(daytime_before)) {
  52. phrase = "こんにちは";
  53. } else if (now.after(night_after) && now.before(night_before)) {
  54. phrase = "こんばんは";
  55. } else if (now.after(sleep_today_after)
  56. && now.before(sleep_today_before)
  57. || now.after(sleep_nextday_after)
  58. && now.before(sleep_nextday_before)) {
  59. phrase = "おやすみなさい";
  60. } else {
  61. throw new IsSleepingException();
  62. }
  63.  
  64. return phrase;
  65. }
  66.  
  67. protected void doPost(HttpServletRequest request,
  68. HttpServletResponse response) throws ServletException, IOException {
  69. request.setCharacterEncoding("UTF-8");
  70. response.setContentType("text/html;charset=UTF-8");
  71. String name = request.getParameter("name");
  72.  
  73. if (name.equals("")) {
  74. String url = "/j2eepractice/entryGreet.do";
  75. response.sendRedirect(url);
  76. return;
  77. }
  78. PrintWriter out = response.getWriter();
  79.  
  80. DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  81.  
  82. out.println("<html><head></head><body><center>");
  83. out.println("表示日時: " + format.format(now));
  84. out.println("<br/>");
  85.  
  86. try {
  87. out.println(choicePhrase(now) + "、 " + name + "さん。");
  88. } catch (IsSleepingException e) {
  89. out.println("就寝中です!");
  90. }
  91. out.println("</center></body></html>");
  92.  
  93. }
  94.  
  95. }
  96.  
最終更新:2013年05月27日 21:24