在
jsp入門中,我們了解了jsp與Servlet的分工,jsp作為請求發(fā)起頁面和請求結(jié)束頁面,而Servlet就是做請求處理。下面通過一個案例的學習,掌握jsp與Servlet的應(yīng)用。具體如下所示:
該案例實現(xiàn)了一個加法運算,具體功能是:在頁面中輸入兩個數(shù),然后點擊頁面中的“提交”按鈕,請求Servlet,Servlet對數(shù)據(jù)進行處理,并把處理結(jié)果存放在request域中,最后再請求轉(zhuǎn)發(fā)到另一個頁面,在另一個頁面中顯示處理結(jié)果。
以上是本案例的功能分析,下面我們通過一站圖來跟清楚的理解該需求,如圖1-1所示:
圖1-1 案例流程圖
下面我們來完成該案例,詳細請參考
jsp與Servlet案例詳解,點擊此處
下載案例源代碼,具體步驟如下所示:
(1)創(chuàng)建一個web應(yīng)用,Example16,在該應(yīng)用的WebRoot目錄下新建一個目錄jsps,并在該目錄下創(chuàng)建一個jsp文件,form.jsp,主要代碼如例1-1所示:
例1-1 form.jsp
<body>
<form action="/Example16/SumServlet" method="post">
整數(shù)1:<input type="text" name="num1"/><br/>
整數(shù)2:<input type="text" name="num2"/><br/>
<input type="submit" value="提交"/>
</form>
</body>
(2)在jsps目錄中再次新建一個jsp文件,result.jsp,它的主要代碼如例1-2所示:
例1-2 result.jsp
<body>
<%
//從request域中獲取數(shù)據(jù)
Integer sum =(Integer)request.getAttribute("sum");
%>
<%= sum %><!--向瀏覽器端輸出sum的值-->
</body>
(3)在該應(yīng)用下新建一個Servlet類,SumServlet ,主要代碼如例1-3所示:
例1-3 SumServlet.java
public class SumServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//1.獲取請求參數(shù)
String s1=request.getParameter("num1");
String s2=request.getParameter("num2");
//2.將請求參數(shù)的類型轉(zhuǎn)換成int類型
Integer num1=Integer.parseInt(s1);
Integer num2=Integer.parseInt(s2);
//3.將兩個數(shù)加在一起
int sum=num1+num2;
//4.將求和的結(jié)果保存在request域中
request.setAttribute("sum", sum);
//5.請求轉(zhuǎn)發(fā)到result.jsp
request.getRequestDispatcher("/jsps/result.jsp").forward(request, response);
}
}
例1-3中,在進行請求轉(zhuǎn)發(fā)時,轉(zhuǎn)發(fā)的路徑是“/jsps/result.jsp”。之前我們練習請求轉(zhuǎn)發(fā)時都是轉(zhuǎn)發(fā)給Servlet,轉(zhuǎn)發(fā)路徑也就是Servlet的訪問路徑;現(xiàn)在轉(zhuǎn)發(fā)給jsp文件,轉(zhuǎn)發(fā)的路徑是該jsp頁面在WebRoot下的路徑,例如result.jsp頁面在WebRoot目錄下的jsps目錄中,那么轉(zhuǎn)發(fā)路徑就是“/jsps/result.jsp”,如果result.jsp在WebRoot的根目錄下,那么轉(zhuǎn)發(fā)路徑就是“/result.jsp”。
(4)SumServlet在web.xml文件中的訪問路徑配置為:“/SumServlet”。
(5)將Example16發(fā)布到Tomcat服務(wù)器中,然后啟動服務(wù)器,在瀏覽器地址欄上輸入:http://localhost:8080/Example16/jsps/form.jsp,瀏覽器顯示結(jié)果如圖1-2所示:
圖1-2 瀏覽器顯示結(jié)果
(6)在圖1-2中,輸入:整數(shù)1:123,整數(shù)2:456,然后點擊“提交”,瀏覽器顯示結(jié)果如圖1-3所示:
圖1-3 運行結(jié)果
由圖1-3所示可知,在result.jsp頁面中,將sum屬性從request域中取出。
本文版權(quán)歸傳智播客Java培訓學院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:傳智播客Java培訓學院
首發(fā):http://m.8y3kgpwe.cn/javaee