利用隐藏域/HttpSession实现简易问卷

来源:互联网 发布:手机照片恢复软件免费 编辑:程序博客网 时间:2024/06/05 13:47
package hiddenfield;import java.io.IOException;import java.io.PrintWriter;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("/Question")public class Question extends HttpServlet {    private static final long serialVersionUID = 1L;    protected void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        request.setCharacterEncoding("utf-8");        response.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>question</title>");        out.println("</head>");        out.println("<body>");        String page = request.getParameter("page");//以关键字page做为之后页面信息的显示        out.println("<form action='Question' method='post'>");//由于是单个servlet页面,这里将提交页面设置为本页面        if(page==null){            out.println("问题一:<input type='text' name='p1q1'><br>");            out.println("问题一:<input type='text' name='p1q2'><br>");            out.println("<input type='submit' name='page' value='下一页'><br>");        }else if("下一页".equals(page)){            String p1q1 = request.getParameter("p1q1");            String p1q2 = request.getParameter("p1q2");            out.println("问题三:<input type='text' name='p2q1' ><br>");            out.println("<input type='hidden' name='p1q1' value='"+p1q1+"'><br>");            out.println("<input type='hidden' name='p1q2' value='"+p1q2+"'><br>");            out.println("<input type='submit' name='page' value='完成'>");            /*此处使用httpsession代替隐藏域,可以改善隐藏域带来的弊端*String p1q1 = request.getParameter("p1q1");            String p1q2 = request.getParameter("p1q2");            HttpSession session = request.getSession();            session.setAttribute("p1q1", p1q1);            session.setAttribute("p1q2", p1q2);            out.println("问题三:<input type='text' name='p2q1' ><br>");            out.println("<input type='submit' name='page' value='完成'>");**            */        }else if("完成".equals(page)){            out.println(request.getParameter("p1q1"));            out.println(request.getParameter("p1q2"));            out.println(request.getParameter("p2q1"));        }        out.println("</form>");        out.println("</body>");        out.println("</html>");        out.close();    }    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        this.process(request, response);    }    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        this.process(request, response);    }}//可是表面上隐藏域可以隐藏之前(表象的上一页)的信息,但其实可以通过查看页面源码很容易知道页面的信息,隐秘性低。
0 0
原创粉丝点击