Servlet 獲取前端Form表單資料,並實現請求重定向、請求轉發
阿新 • • 發佈:2018-11-16
1.前端介面
編寫一個最簡單的登入介面:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <div> <form action="/class02/BlogServlet1" method="post"> 使用者名稱:<input type="text" name="username"> <br> 密 碼:<input type="password" name="password"> <br> <input type="submit" value="登入"> </form> </div> </body> </html>
2. Servlet 編寫
共編寫2個Servlet(繼承 HttpServlet ):
- BlogServlet1:
doPost()
/** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); // 獲取引數值 String username = (String) request.getParameter("username"); String password = (String) request.getParameter("password"); // 輸出到控制檯 System.out.println("username: " + username); System.out.println("password: " + password); // 請求重定向 // 設定引數值 request.setAttribute("newName", "sendRedirect"); response.sendRedirect("/class02/BlogServlet2"); // 請求轉發 // 設定引數值 request.setAttribute("newName", "RequestDispatcher"); RequestDispatcher requestDispatcher = request.getRequestDispatcher("/BlogServlet2"); requestDispatcher.forward(request, response); }
- BlogServlet2:
doGet()
/** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub // response.getWriter().append("Served at: ").append(request.getContextPath()); request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); // 輸出到頁面 out.println("BlogServlet2: <br><br>"); out.println("name: " + request.getParameter("username") + "<br>"); out.println("passwd: " + request.getParameter("password") + "<br>"); out.println("newName: " + request.getAttribute("newName") + "<br>"); }
3. 執行
註釋請求轉發:
結果:URL地址變化
瀏覽器登入:
控制檯:
註釋請求重定向:
結果: