javascript
Eclipse创建带JavaBean的JSP程序
??上一篇文章《Eclipse創建JSP程序》中介紹了在JSP文件中嵌入Java代碼實現簡單的用戶登錄驗證及留言簿功能。程序的邏輯全部放在JSP文件中,不方面閱讀、不利于修改,也無法進行代碼復用,因此引入了JavaBean。
??JavaBean在JSP中的應用十分廣泛,計劃在JSP頁面中,所有的實體對象及業務邏輯的相關處理都可以封裝為JavaBean。在JSP頁面中使用JavaBean不僅可以減少JSP頁面中的Java代碼,還可以增強程序的可讀性使程序易于維護。
??本文演示JavaBean的簡單用法,沒有涉及多少JavaBean的標簽使用方法。
程序功能
??本程序對上篇文章中的留言簿功能進行改造,增加用戶注冊功能,并將用戶驗證等功能封裝為JavaBean。具體的功能邏輯如下圖所示:
程序實現
??新建User類,表示用戶,包含姓名,密碼和郵箱三個屬性。
??在JavaBean對象中,為防止外部直接調用JavaBean屬性,通常將JavaBean中的屬性設置為私有的,然后為其提供功能的訪問方法,也即getXXX()方法和setXXX()方法。鼠標選中三個屬性定義,選擇右鍵菜單中的Source->Generate Getters and Setters,可以自動生成指定屬性的get和set方法,不用手動輸入。
??創建一個UserBuffer類,用于緩存注冊的用戶信息,同時驗證用戶注冊信息。在Application對象中保存一個UserBuffer的實例。
public class UserBuffer {private Map<String,User> userBuffer=new HashMap<String,User>();public UserBuffer(){User user=new User();user.setName("gc_2299");user.setPassword("123456");user.setEmail("1234567@qq.com");userBuffer.put(user.getName(), user);}public Boolean ValidateUser(User user){if(!IsUserRegisiterd(user.getName())){return false;}User u=userBuffer.get(user.getName());return u.getPassword().equals(user.getPassword());}public Boolean IsUserRegisiterd(String userName){return userBuffer.containsKey(userName);}public void AddUser(User user){userBuffer.put(user.getName(), user);} }??增加register頁面用于用戶注冊,將注冊頁面中的輸入框名稱與User屬性名稱對應,便于使用JavaBean動作標簽。同時增加顯示注冊結果的頁面。
??新建registerresult.jsp文件,用于顯示注冊信息,并判斷用戶名是否已注冊。
<jsp:useBean id="user" class="com.test.bean.User"></jsp:useBean> <jsp:setProperty property="*" name="user"/> 用戶信息如下:<br> 用戶名:<jsp:getProperty property="name" name="user"/><br> 密碼:<jsp:getProperty property="password" name="user"/><br> 郵箱:<jsp:getProperty property="email" name="user"/><br><%UserBuffer userBuffer=(UserBuffer)application.getAttribute("users");if(userBuffer==null){userBuffer=new UserBuffer();application.setAttribute("users", userBuffer);}if(userBuffer.IsUserRegisiterd(user.getName())){out.println("當前用戶名已存在,請重新填寫注冊信息");}else{out.println("當前用戶注冊成功,請重新登錄系統");userBuffer.AddUser(user);application.setAttribute("users", userBuffer);} %> <p><a href="register.jsp">返回注冊窗口</a></p> <p><a href="login.jsp">登錄系統</a></p>??注冊完成后,點擊登錄系統進入登錄界面,輸入注冊的用戶名和密碼,然后提交到deal.jsp中進行處理,整理deal中的代碼,將判斷邏輯放入JavaBean中。
<jsp:useBean id="user" class="com.test.bean.User"></jsp:useBean> <jsp:setProperty property="name" name="user"/> <jsp:setProperty property="password" name="user"/> <%UserBuffer userBuffer=(UserBuffer)application.getAttribute("users");if(userBuffer==null){userBuffer=new UserBuffer();application.setAttribute("users", userBuffer);}if(userBuffer.ValidateUser(user)){request.getRequestDispatcher("messageboard.jsp").forward(request,response);}else{response.sendRedirect("error.jsp");} %>??其它功能沒有做改動,就是在登錄界面增加了“注冊新用戶”鏈接。后續會加入Servlet,將項目中用于做判斷用的JSP頁面轉為Servlet。
程序代碼地址:https://github.com/guochao2299/SimpleMessageBoard/tree/20200415
參考文獻:
[1]Java Web 設計使用教程
[2]Java Web從入門到精通
總結
以上是生活随笔為你收集整理的Eclipse创建带JavaBean的JSP程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(2525):实现过滤功能
- 下一篇: 郑州大学python考试题库_GitHu