# 實驗1:MVC綜合實訓
## 1. 實驗目的
1. 能夠在Java Web項目中根據需求創建JSP文件;
2. 能夠使用request獲取單一值、多個值數據并顯示;
3. 能夠使用請求轉發和重定向進行頁面跳轉;
4. 能夠選取并使用合適的存儲對象對必要信息進行存儲;
5. 能夠對JSP進行錯誤處理。
## 2. 實驗內容
1. 制作模板頁面menu.jsp或common.jsp,使得每個頁面都有網頁菜單和網頁頁腳。

2. 編寫注冊界面,并提交給RegistServlet進行注冊,效果圖如圖

3. 編寫登錄界面,并提交給LoginServlet進行登錄,效果圖如圖

4. 編寫錯誤信息(自動獲取,下圖是驗證碼錯誤時的效果圖)提示頁面,并能夠在3秒之后跳轉到主頁

5. 創建User類,用于數據封裝

6. 編寫RegistServlet,接收注冊頁面數據并進行處理,要求如下:
* 用戶名不能為空,且不能重復注冊
* 密碼不能為空,且不能少于6位
* 郵箱不能為空,且必須符合 x@x.x的格式
* 性別默認選中男(值為1),女(值為0)
* 關注類型不能為空
* 驗證碼必須是gbcw,不區分大小寫
* [ ] 如果驗證成功,將注冊信息存入application中,跳轉到主頁進行登錄
* [ ] 如果驗證失敗,保存錯誤信息,跳轉到錯誤提示頁面,錯誤信息包括:
> 驗證碼不能為空
> 驗證碼錯誤
> 性別數據錯誤(未獲取到0或1)
> 用戶名不能為空
> 用戶名已經被注冊
> 密碼不能為空
> 密碼長度不符合要求
> 郵箱不能為空
> 郵箱格式不正確
> 沒有選擇關注類型
*****
7. 編寫LoginServlet,接收登錄頁面數據并進行處理,要求如下:
* 用戶名和密碼不能為空
* 用戶必須是已經注冊用戶,即在application中存在信息
* 密碼必須和注冊時密碼一致
* [ ] 如果驗證成功,將登錄信息存入session中,跳轉到主頁,并能夠顯示登錄之后的菜單

* [ ] 如果驗證失敗,保存錯誤信息,跳轉到錯誤提示頁面,錯誤信息包括:
**登錄錯誤信息包括:**
> 用戶名或密碼為空
> 用戶不存在
> 密碼錯誤
8. 編寫LogoutServlet用于實現退出功能,點擊退出,銷毀當前session,回到主頁

9. 編寫個人信息頁面userinfo.jsp,在登錄狀態時,可以查看個人信息


10. 編寫404.jsp,并為項目配置全局404頁面

## 3. 項目目錄參考
切換包和類的顯示方式:

### 實驗項目目錄結構

- 1課程概述
- 2環境配置
- 3MVC
- 3.1View
- 3.1.1前端基礎
- 3.1.2JSP語法
- 3.1.3JSP內置對象1
- 3.1.4JSP內置對象2
- 3.2Bean
- 3.3Controller
- 3.3.1Servlet
- 3.3.2Filter
- 3.3.3Listener
- 3.4EL&JSTL
- 4三層架構
- 4.1數據庫操作
- 4.1.1JDBC
- 4.1.2JDBC優化
- 4.2三層架構設計
- 4.3程序優化
- 4.3.1數據庫連接優化
- 4.3.2數據庫操作優化
- 4.4安全專題
- 4.4.1Ajax異步查詢
- 4.4.2CAPTCHA
- 4.4.3MD5&SHA
- 4.4.4Cookie
- 4.4.5分頁顯示
- 4.4.6文件上傳
- 4.4.7發送郵件
- 5企業級框架
- 5.0Maven
- 5.1MyBatis
- 5.2Spring
- 5.3SpringMVC
- 6實踐項目
- 6.1實驗1-用戶登錄(MVC)
- 6.2實驗2-訪問統計(Servlet高級)
- 6.3實驗3-三層架構
- 6.4實驗4-安全信息系統