javaWeb——日记本系统
日記本系統(更新中)
寫在前面
系統采用傳統的Jsp+Servlet+Model的MVC開發模式,前端采用主流的BootStrap技術,數據庫采用Mysql,實現了個人日記本系統,亮點是Bootstrap的綜合運用,ckeditor的運用以及FileUpload組件上傳圖片,以及MD5加密的應用(該項目是非本人開發,只是學習其中的知識);
一、需求:
二、數據庫設計:
三張表:
t_user(userId,userName,password,nickName,imageName,mood)//password因為采用MD5加密,所以設置長一點(50)
t_diary (diaryId,title,content,typeId,releaseDate )//content 內容長,datatype用text,releaseDate的格式用datetime
t_diaryType(diaryTypeId,typeName)
主外鍵設置(外鍵:其他表中的主鍵稱為外鍵):
t_diary 中的 typeId外鍵 關聯 t_diaryTaye中的 diaryTypeId主鍵 (對應關系為多對1)
navicat設置外鍵:
外鍵名(name):可以不填, 系統自動生成;
欄位名(Field Name): 就是設置‘typeId’為外鍵;
參考數據庫(Reference DadaBase): 外鍵關聯的數據庫;
引用表(Reference Table): 關聯的表;
外欄位名(Outside field name): 關聯的字段(這里是“diaryTypeId”, 可以與欄位名相同);
刪除時:刪除時候選擇的動作
刷新時:更新時候選擇的動作
(在設置外鍵的時候,刪除時和更新時兩列有四個值可以選擇:CASCADE、NO ACTION、RESTRICT、SET NULL,自己全親自試了一遍,它們的區別如下:
CASCADE:父表delete、update的時候,子表會delete、update掉關聯記錄;
SET NULL:父表delete、update的時候,子表會將關聯記錄的外鍵字段所在列設為null,所以注意在設計子表時外鍵不能設為not null;
RESTRICT:如果想要刪除父表的記錄時,而在子表中有關聯該父表的記錄,則不允許刪除父表中的記錄;
NO ACTION:同 RESTRICT,也是首先先檢查外鍵;)
設計表注意事項:
1.對于id這種主鍵:int 型,主鍵,不允許為空,自動遞增
2.對于日期,需要特殊格式:如datetime
3.像比較長的文本如日記內容可設置格式為text
4.對于其他的屬性,只要是包含漢字型的,如名稱,密碼都將類型設置為varchar,長度根據需求設置即可。
三.后臺代碼
四個包:
Dao:數據訪問對象層
Model:模型層
Util:工具層
Web:web訪問層
連接數據庫:
注意事項:添加mysql得jar包:mysql-connector-java
根據數據庫中的表建相關的類;
用于登陸賬號密碼的驗證等
如驗證登陸信息:
注意事項:
代碼
package web;import java.io.IOException; import java.sql.Connection;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;import dao.UserDao; import model.User; import util.DbUtil;public class LoginServlet extends HttpServlet{private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//獲取session對象,用于保存當前登陸對象HttpSession session=req.getSession();//獲取前臺用戶信息,用于驗證是否合法String userName=req.getParameter("userName");String password=req.getParameter("password");Connection con= null;DbUtil dbUtil=new DbUtil();UserDao userDao=new UserDao();try {con=dbUtil.getCon();User currentUser=userDao.login(con, new User(userName,password));if(currentUser==null){}else{session.setAttribute("currentUser", currentUser);resp.sendRedirect("main.jsp");}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} finally{try {dbUtil.closeCon(con);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}總結
以上是生活随笔為你收集整理的javaWeb——日记本系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库介绍
- 下一篇: 手机uc怎么放大页面_手机网站怎样做可以