まるるん備忘録

プログラミングやインフラ等、IT技術に関して気付いた事を書いているブログです。

MakeQuizServlet.java

※マーカーのようなものが引かれていますが、特に支障はないので気にしないで下さい。

MakeQuizServlet.java


import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns = {"/makequizservlet"})
public class MakeQuizServlet extends HttpServlet {

    protected void processRequest(HttpServletRequest request,

            HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");

        try (PrintWriter out = response.getWriter()) {
            request.setCharacterEncoding("UTF-8");

            String name = request.getParameter("name");

            Random r = new Random();
            int[] formula = new int[2];
            for(int i = 0; i < 2; i++) formula[i] = r.nextInt(99) + 1;

            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>問題</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h3>ようこそ" + name + "さん。この問題が解けるかな?</h3>");

            // 数が1桁なら、空白を多めに詰める
            switch(formula[0]){
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                case 8:
                case 9out.println("<h2 value=" + formula[0] + ">&nbsp;&nbsp;&nbsp;&nbsp;" + formula[0] + "</h2>"); break;
                defaultout.println("<h2 value=" + formula[0] + ">&nbsp;&nbsp;" + formula[0] + "</h2>"); break;
        }

            // 数が1桁なら、空白を多めに詰める
            switch(formula[1]){
                case 1:
                case 2:
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                case 8:
                case 9out.println("<h2 value=" + formula[1] + ">+&nbsp;&nbsp;" + formula[1] + "</h2>"); break;
                defaultout.println("<h2 value=" + formula[1] + ">+" + formula[1] + "</h2>");         break;
        }

            out.println("<hr>");
            out.println("<form action=teachanswerservlet method=POST>");
            out.println("<input type=text name=userAnswer value=0>");
            out.println("<input type=hidden name=formula1 value=" + formula[0] + ">");
            out.println("<input type=hidden name=formula2 value=" + formula[1] + ">");
            out.println("<input type=submit>");
            out.println("</form>");
            out.println("</body>");
            out.println("</html>");
        }
    }

    @Override
    protected void doGet(HttpServletRequest request,

            HttpServletResponse response) throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request,

            HttpServletResponse response) throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    public String getServletInfo() {
        return "Short description";
    }

}