天天看點

基于Servlet、JSP、JDBC、MySQL的一個簡單的使用者注冊子產品(附完整源碼)

最近看老羅視訊,做了一個簡單的使用者注冊系統。使用者通過網頁(JSP)輸入使用者名、真名和密碼,Servlet接收後通過JDBC将資訊儲存到MySQL中。雖然是個簡單的不能再簡單的東西,但麻雀雖小,五髒俱全,在此做一歸納和整理。下面先上源碼:

一、index.jsp

它的運作結果如下:

基于Servlet、JSP、JDBC、MySQL的一個簡單的使用者注冊子產品(附完整源碼)

二、點選上面的“點選注冊”就跳轉到了pass.jsp:

運作效果如下:

基于Servlet、JSP、JDBC、MySQL的一個簡單的使用者注冊子產品(附完整源碼)

三、除上面兩個jsp代碼外,剩下的就是java代碼了。先來看java代碼的結構:

基于Servlet、JSP、JDBC、MySQL的一個簡單的使用者注冊子產品(附完整源碼)

不得不說JavaWeb是一個絕好的了解MVC架構思想的載體,上述有四個包,每個包下面一個檔案。在功能的劃分上有條不紊。

1、com.product.jdbc.dbutil 這個包裡是基于jdbc驅動的一個工具類JdbcUtils.java,代碼已經貼出來了,參見

2、com.product.register.action所謂的action扮演了MVC裡的C的角色,即Control層,裡面放的是各種Servlet。接收來自V(View)---用戶端頁面jsp回傳的資料,然後調M層,把資料存進去。RegisterAction.java的代碼:

3.com.product.register.service 這裡的service其實是一個接口,RegisterService.java代碼:

4.既然有接口就一定有接口的實作者,實作者就是com.product.register.dao下的RegisterDao.java, 負責操縱資料庫,将資訊存到表裡。

下圖是輸入一個使用者的資訊:

基于Servlet、JSP、JDBC、MySQL的一個簡單的使用者注冊子產品(附完整源碼)

用Navicat打開資料庫可以看到:

基于Servlet、JSP、JDBC、MySQL的一個簡單的使用者注冊子產品(附完整源碼)

代碼就完畢了,下面是開發要點:

1、關于中文亂碼的問題,按老羅的視訊一開始我的也亂碼,經研究需要三個地方同時設定utf-8編碼,第一是資料庫裡表的編碼,第二是jsp的編碼:pageEncoding="utf-8" 第三是在Servlet裡同時設定response和request的編碼,代碼如下:

request.setCharacterEncoding("utf-8");

response.setContentType("text/html; charset=utf-8"); 記住是缺一不可哦!!!

2、關于JSP往JSP頁面的跳轉很簡單:

<a href="<%=path%>/pass.jsp">點選注冊</a> 超連結裡直接放要跳轉jsp的相對路徑即可。

3、JSP往Servlet跳轉:

<a  href="javascript:dosubmit();">

<img src="<%=path%>/images/ok_1.jpg" name="Image8" width="60" height="22" border="0"> </a> 

也是用的href超連結,在位址裡寫"javascript:dosubmit();". 這就需要定義dosubmit()函數:

獲得一個表單,然後根據input時的名字擷取對應value,

<INPUT class=text2 maxLength=20 size=18 name="username" minLength="1"> 

4、上面可以看到jsp往servlet跳轉過程中先經過javascript,接下來說白了是javascript往servlet跳轉:

th.action="<%=path%>/servlet/RegisterAction"

th.submit();

5、Servlet往jsp跳轉:

response.sendRedirect(path + "/index.jsp");這種方法浏覽器位址發生變化,傳參數可以再URL位址裡或用session,不能使用request.setAttribute來傳參數。另一種使用forward來傳,詳細參見這裡:  

6、縱觀整個架構,RegisterAction是控制中樞,資料經jsp----javascript傳到RegisterAction。在RegisterAction裡建立了接口Service的執行個體RegisterDao,用Dao來存資料。

關于javaEE的各層分工,詳見

7.因為要通路資料庫,記得将mysql-connector-java-5.1.26-bin.jar拷貝到WebRoot檔案夾下的WEB-INF/lib檔案夾下。

另外在web.xml裡要配對,jsp裡用到了css。其他的細節看源碼吧。

下載下傳連結: