zoukankan      html  css  js  c++  java
  • url override and HttpSession implements session for form

    url 重写结合HttpSession实现会话管理之 form 提交

    package com.test;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import java.io.IOException;
    import java.io.PrintWriter;
    
    @WebServlet("/questionnaire")
    public class Questionnaire extends HttpServlet {
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
    
            PrintWriter out = response.getWriter();
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<meta charset='UTF-8'>");
            out.println("<title>问卷调查</title>");
            out.println("</head>");
            out.println("<body>");
            String page = request.getParameter("page");
            if(page == null) {                   // 第一頁問卷
                out.println("<form action='questionnaire' method='get'>");
                out.println("問題一:<input type='text' name='p1q1'><br>");
                out.println("問題二:<input type='text' name='p1q2'><br>");
                out.println("<input type='submit' name='page' value='page2'>");
                out.println("</form>");
            }
            else if("page2".equals(page)) {    // 第二頁問卷
                /**
                 * 下面这三行代码的顺序不可变
              */
                HttpSession session = request.getSession();
                String url = response.encodeURL("questionnaire");
                out.println("<form action="" + url + "" method="get">");
                session.setAttribute("p1q1", request.getParameter("p1q1"));
                session.setAttribute("p1q2", request.getParameter("p1q2"));
                out.println("問題三:<input type='text' name='p2q1'> <br>");
                out.println("<input type='submit' name='page' value='finish'>");
                out.println("</form>");
            }
            else if("finish".equals(page)) {    // 最後答案收集
                HttpSession session = request.getSession();
                out.println(session.getAttribute("p1q1") + "<br>");
                out.println(session.getAttribute("p1q2") + "<br>");
                out.println(request.getParameter("p2q1") + "<br>");
            }
            out.println("</body>");
            out.println("</html>");
            out.close();
        }
    
        @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);
        }
    }
  • 相关阅读:
    输入输出流
    servlet的生命周期
    谈谈Spring Ioc的理解
    Spring boot实例
    Spring boot快速入门
    Spring中JdbcTemplate的基础用法
    JVM 内存区域
    Spring中JdbcTemplate的基础用法
    Spring的自学之路之入门
    codves 1044 拦截导弹
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/10054814.html
Copyright © 2011-2022 走看看