天天看點

學生資訊管理系統(jsp+servlet+中間件xml)

這個學期有門課叫“應用內建與資料內建”

要做一個學生資訊管理系統,要求是有基本的增删改查功能,額外功能自選,要把jsp和servlet分開寫,因為jsp是裡面寫的是腳本語言,不能調試。

另外要求所有資訊都是資料庫裡面的,并且是2個資料庫裡面都有一個學生表,将合并顯示在頁面上,要用到中間件xml來完成。

關于系統的代碼什麼的我就不說了,網上有很多教程,推薦大家看這個:

http://www.readjava.cn/article/detail/34

不是做廣告,我剛開始學的時候就是參考的這個。

這裡把我對整個流程的一些心得羅列一下:

1,jsp不是js

JS:JavaScript 而 JSP:Java Server Pages,前者是做頁面互動動畫的,後者是需要解釋編譯,還要在伺服器上比如tomcat才能運作。

2,網頁制作的三要素是html + css + js

而我說的jsp+servlet做的是動态網頁,其中servletervlet是.java檔案,裡面是控制流程,就像這樣:

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.getRequestDispatcher("login.jsp").forward(req, resp);
    }
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");//從網頁擷取到輸入的資訊
        String userName = req.getParameter("userName");
        String passWord = req.getParameter("passWord");
        boolean link = DbUtil.setlogin(userName, passWord);
        if(link) req.getRequestDispatcher("/list").forward(req, resp);
        else {
        	req.setAttribute("msg","使用者名或密碼錯誤,請檢查後重新登陸!");
        	req.getRequestDispatcher("login.jsp").forward(req, resp);
        }	
    }
           

在這裡面擷取jsp頁面傳過來的資訊,然後可以調用自己寫的其他函數執行,把函數的傳回值加以判斷(比如删除是否成功),然後把資訊再傳給jsp頁面(比如頁面一行行顯示資料庫的内容)。

3,jsp和servlet理論上是多對多關系

就是多個servlet實作不同的功能,但他們的結果的形式是一樣的,那麼就可以用同一個jsp來顯示,當然了,你不怕麻煩的話,一個servlet可以寫好多功能(不是功能的具體執行内容,而是中間擷取參數的等操作)。但這樣不建議,比較建議一個或多個servlet對應一個jsp。

jsp頁面裡面就是html代碼,可以外鍊調用css,js等内容,不同之處在于jsp頁面(字尾名.jsp)有<%内容 %>,叫做腳本片段,其中寫的内容會翻譯在Servlet的中,但寫多了就變成了jsp和servlet混寫了,這是極其不推薦的。

4,最後說一下中間件xml

如果沒有中間件,要合并兩個資料庫裡2張表的内容,那麼你的sql語句得寫 2份,每份裡面都有表名,列名等等。那麼問題在于,一旦你的資料庫的表名,列名,或者屬性有變,你就要改代碼,這是很不安全且繁瑣的,一般公司不允許這樣做。

那麼就用到xml,這時你的代碼不用變,隻需把xml改一下就好了,這就是實作與資料的分離。

那麼關于xml的使用,就一句話:讀檔案,代碼裡面的資訊都通過讀檔案來擷取。

提一下,我說的xml裡面的内容是表=表名,列名等等,不包括元組的内容,描述元組的内容的xml不是用來做資料內建的。

感謝你讀到了最後,日常記錄心得體會是個好習慣,當你許久之後再看就能很快想起來了,謝謝大家。如果大家喜歡可以來找我學習探讨。