代码实例--请求的转发:RequestDispatcher对象处理请求的两个方法--forward和include
生活随笔
收集整理的這篇文章主要介紹了
代码实例--请求的转发:RequestDispatcher对象处理请求的两个方法--forward和include
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
驗(yàn)證requset的forward()、include()跳轉(zhuǎn)
- 正確,則用 forward 方法跳轉(zhuǎn)到 welcomeva.jsp(顯示歡迎信息的頁(yè)面)
- 錯(cuò)誤,則調(diào)用 include 方法跳轉(zhuǎn)到 indextest.jsp,并給出錯(cuò)誤提示
首頁(yè)面–indextest.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <head><meta charset="UTF-8"><title>登錄</title><link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css"><script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script><script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script> </head> <body> <div class="form-group"> <form action="${pageContext.request.contextPath}/chap3validatefi" method="post" class="form-horizontal" role="form"><table class="table table hover"><tr><td> <label for="username" class="col-sm-2 control-label">用戶名</label></td><td><input type="text" class="form-control" id="username" name="username" placeholder="請(qǐng)輸入密碼"></td></tr><tr><td><label for="userpass" class="col-sm-2 control-label">密碼</label></td><td><input type="password" class="form-control" id="userpass" name="userpass" placeholder="請(qǐng)輸入密碼"></td></tr><tr><td><input type="submit" class="btn btn-success" align="center" ></td></tr></table> </form> </div> </body> </html>數(shù)據(jù)處理及驗(yàn)證–ValidateServlet.java
@WebServlet(name = "ValidateServlet", urlPatterns = "/chap3validatefi") public class ValidateServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 設(shè)置響應(yīng)的文本類型、編碼方式response.setContentType("text/html;charset=utf-8");response.setCharacterEncoding("utf-8");PrintWriter out = response.getWriter();String userName = request.getParameter("username");String userPass = request.getParameter("userpass");System.out.println(userName + ";" + userPass);if ("admin".equals(userName) && "123".equals(userPass)) {out.print("成功登錄,正在用forward方法跳轉(zhuǎn)新的資源");// 創(chuàng)建request范圍的變量userName-adminrequest.setAttribute("userName ", "admin");// 創(chuàng)建RequestDispatcher對(duì)象RequestDispatcher rd = request.getRequestDispatcher("/chapter3jsp/welcomeva.jsp");// 轉(zhuǎn)發(fā)請(qǐng)求rd.forward(request, response);} else {out.print("登錄失敗,正在用include方法跳轉(zhuǎn)新的資源");out.print("用戶名或者密碼錯(cuò)誤,請(qǐng)重新輸入!");RequestDispatcher rd = request.getRequestDispatcher("/chapter3jsp/indextest.jsp");rd.include(request, response);}} }歡迎界面–welcomeva.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html lang="en"> <head><meta charset="UTF-8"><title>登錄成功</title> </head> <body> <%=request.getParameter("username")%>歡迎你,登錄成功! </body> </html>代碼的運(yùn)行流程圖
用戶名和密碼正確
用戶名和密碼錯(cuò)誤
文件結(jié)構(gòu)
webpro
??src
????chapter3
??????ValidateServlet.java
??web
????chapter3jsp
??????welcomeva.jsp
??????indextest.jsp
總結(jié)
以上是生活随笔為你收集整理的代码实例--请求的转发:RequestDispatcher对象处理请求的两个方法--forward和include的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 请求的转发:RequestDispatc
- 下一篇: 资源跳转--response重定向和re