本內容的代碼已放到git上
https://github.com/2325616550/springBoot_jibite.git
一、目的
掌握Servlet編程,包括Servlet處理請求與回應,會話Session機制,熟悉Eclipse/MyEclipse開發Java Web應用框架。
二、實驗內容與設計思想
1.設計思路
1、求函式y=x*e-x在區間[a,b]上的定積分值,其中a,b由頁面表單傳入(即使用引數傳遞),并假定a小于b。要求使用數值方法求得定積分值的近似值(不能使用定積分公式來計算),常用的近似求法有:矩形法、梯形法、拋物線法,任意選擇一種或多種實作均可,詳見附件。
本題要求使用迭代法實作定積分值的近似計算。
2、使用Session實作“猜數字游戲”。猜數字是一個簡單的游戲,標準游戲規則如下:
通常由兩個人玩,一方出數字,一方猜。出數字的人要想好一個沒有重復數字的4位數,不能讓猜的人知道。猜的人就可以開始猜。每猜一個數字,出數者就要根據這個數字給出幾A幾B,其中A前面的數字表示位置正確的數的個數,而B前的數字表示數字正確而位置不對的數的個數。
如正確答案為 5234,而猜的人猜 5346,則是 1A2B,其中有一個5的位置對了,記為1A,而3和4這兩個數字對了,而位置沒對,因此記為 2B,合起來就是 1A2B。
接著猜的人再根據出題者的幾A幾B繼續猜,直到猜中(即 4A0B)為止。
本題要求計算機模擬出數字的一方(4位數字不能重復),并提供Web頁面讓游戲者猜測,同時根據比對結果給出相應的提示。一旦用戶猜中數字,則顯示成功資訊,并給出答案及游戲者猜測的次數。
2.主要資料結構
public interface UserService {
boolean isUser(String name,String password);
boolean checkName(String name);
Integer addUser(User user);
User getUser(String name);
}上圖是猜數字游戲的結構
屬性就一個int整數 是指要猜的正確答案
然后一個獲得猜測結果的方法,介面傳入玩家猜測的數字
3.主要代碼結構

3個controller 用來處理1.積分2.猜數字的業務3.頁面的跳轉
1個service 用來寫獲得猜測結果的邏輯
4.主要代碼段分析
@RequestMapping("setNumber")
public void setNumber(HttpServletRequest req){
HttpSession session = req.getSession();
StringBuilder num = new StringBuilder();
int correctNum;
int a;
while (true) {
a = (int)(10*Math.random());
//第一位不能為0
if(num.length()<1){
while(true) {
if (a == 0) {
a = (int) (10 * Math.random());
} else {
break;
}
}
}
//檢查重復
boolean isRepeat;
while(true){
isRepeat = false;
for (int i=0; i<num.length();i++) {
if (num.charAt(i)==(a+'0')) {
a = (int) (10 * Math.random());
isRepeat=true;
break;
}
}
if(!isRepeat)
break;
}
num.append(a);
if(num.length()>3)
break;
}
correctNum=Integer.parseInt( num.toString());
session.setAttribute("correctNumber",correctNum);
System.out.println(session.getAttribute("correctNumber"));
}這個方法處理的是設定正確答案的業務。
因為數字不能重復,就單獨每一位隨機再和之前已經獲得的數字進行比較 如若相同就繼續隨機直至都不同。這里要注意下第一位數字不能為0.
2.
這個是處理積分功能的,通過前端將表單資料序列化傳回后端,處理積分用的是迭代求法。
三、實驗使用環境
IDEA開發和Spring Boot框架
四、實驗步驟和除錯程序
1.實驗步驟
(1).先將前端頁面寫好,這里用的是ajax區域重繪來處理本次實驗要求的功能。
前端頁面展示:

(2).撰寫后臺代碼和腳本,啟動運行
2.測驗資料設計
(1).頁面中兩個按鈕都系結了單機事件,點擊會觸發ajax區域重繪頁面。

(2).處理積分的資料設計
可能會出現1.積分上下限大小不對,2.沒填資料就點確定,3.有填入空格,4.數字中混了字母等可能意外的情況。這些都有寫腳本用正則運算式去檢驗。
(3).猜數字的資料設計
可能會出現1.沒填資料就點確認,2.有填入空格,3.沒填滿4位數字,4.多填數字等可能出現意外的情況。這些也都有考慮到并進行了校驗。
3.測驗結果分析。
(1).積分的資料處理結果
1.什么都不填或其中有沒填
2.出現填入不能表示資料的字符
3.出現填寫了空格
4.錯誤的上下限
5.正確的情況
(2).猜數字的資料結果
1.什么都不填或沒填滿4位數
2.出現了非數字的字符
3.由于在輸入標簽中加入了 ,則解決了輸入可能超過4位數的情況
4,正常的情況
1).在設定正確數字的代碼中添加一行將正確數字列印到控制臺,我們可以發現我們本次要猜的數字。
2) .第一次輸入不沾邊的數字
3).第二次輸入1A1B的情況
4).第三次輸入
5) .第四次輸入正確數字
五、實驗小結
1.實驗中產生的錯誤及原因分析
實驗中的猜數字游戲中的模態框出現過點擊空白區就消失的情況,后來查詢資料是要加一個 backdrop : 'static' 屬性,其中 ,backdrop:’static’ 指的是點擊背景空白處不被關閉。
2.實驗體會和識訓。
Servlet 是運行在服務器上的一個 java 小程式, 它可以接收客戶端發送過來的請求, 并回應資料給客戶端。
六、附錄
可線上驗證本次實驗:http://39.100.64.245/springboot/smallFeature
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/196062.html
標籤:Web 開發
