一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四

聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

九宮格記憶網開發背景及功能結構 九宮格記憶網開發方案

來源:CSDN 時間:2023-03-21 07:53:56

1.1開發背景

隨著工作和生活節奏的不斷加快,屬于自己的私人時間越來越少,日記這種傳統的傾訴方式也逐漸被人們淡忘,取而代之的是各種各樣的網絡日志。最近網絡中又出現了一種全新的日記方式一九宮格日記,它由9個方方正正的格子組成,讓用戶可以像做填空題那樣對號入座,填寫相應的內容,從而完成一篇日記,整個過程不過幾分鐘,非常適合在快節奏的生活中,留下自己的心靈足跡。


(資料圖片)

1.2 需求分析

通過實際調查,要求九宮格日記網具有以下功能:

1.為了更好地體現九宮格日記的特點,需要以圖片的形式保存每篇日記,并且日記的內容寫在九宮格中。

2.為了便于瀏覽,默認情況下,只顯示日記的縮略圖。

3.對于每篇日記需要提供查看原圖、左轉和右轉功能。

4.需要提供分頁瀏覽日記列表功能。

5.寫日記時,需要提供預覽功能。

6.在保存日記時,需要生成日記圖片和對應的縮略圖。

1.3 系統設計

1.3.1系統目標

根據需求分析的描述及與用戶的溝通,現制定網站實現目標如下: 界面友好、美觀。區

2.日記內容靈活多變,既可以做選擇題,也可以做填空題。

3.采用Ajax實現無刷新數據驗證。

4.網站運行穩定可靠。

5.具有多瀏覽器兼容性,既要保證在Google Chrome上正常運行,又要保證在IE瀏覽器上正常運行。

1.3.2功能結構

九宮格記憶網的功能結構如下所示。

1.3.3功能結構

九宮格記憶網的系統流程如下所示:

1.3.4開發環境

系統開發環境要求 1.操作系統:Windows 10。 2.JDK環境:Java SE Development Kit(JDK) version 8。 3.開發工具:Eclipse。 4.Web服務器:Tomcat 9.0。 5.開發技術:Java Web + Ajax + jQuery。 6.數據庫:MySQL 8.0數據庫。

1.3.5系統預覽

九宮格記憶網中有多個頁面,下面列出網站中幾個典型頁面的預覽。

1.主頁面如下

當用戶訪問九宮格記憶網時,首先進入的是網站的主界面。九宮格記憶網的主界面主要包括以下4部分內容。 1.1 Banner信息欄:主要用于顯示網站的Logo。 1.2 導航欄:主要用于顯示網站的導航信息及歡迎信息。其中導航目將根據是否登錄而顯示不同的內容。 1.3主顯示區:主要用于分頁顯示九宮格日記列表。 1.4版權信息欄:主要用于顯示版權信息。 2.登錄頁面如下: 3.寫日記頁面如下,該頁面用于填寫日記信息,允許用戶選擇并預覽自己喜歡的模板,以及選擇預覽日記內容等等。 1.4 數據庫設計 1.4.1數據庫設計 1.4.2 tb_user(用戶信息表) 1.4.3 tb_diary(日記表) 1.4.4 tb_comments(評論記錄表) 1.4.5 tb_likes(點贊記錄表)

1.5部分源碼

文件夾組織結構

數據庫連接(ConnDB):package com.mr.tools;import java.io.InputStream; //導入java.io.InputStream類import java.sql.*; //導入java.sql包中的所有類import java.util.Properties; //導入java.util.Properties類public class ConnDB {public Connection conn = null; // 聲明Connection對象的實例   public Statement stmt = null; // 聲明Statement對象的實例   public ResultSet rs = null; // 聲明ResultSet對象的實例   private static String propFileName = "connDB.properties"; // 指定資源文件保存的位置   private static Properties prop = new Properties(); // 創建并實例化Properties對象的實例   private static String dbClassName = "com.mysql.jdbc.Driver"; // 定義保存數據庫驅動的變量   private static String dbUrl = "jdbc:mysql://localhost:3306/db_9griddiary?user=root&password=123456&useUnicode=true&";   public ConnDB() {// 構造方法      try {// 捕捉異常         // 將Properties文件讀取到InputStream對象中         InputStream in = getClass().getResourceAsStream(propFileName);         prop.load(in); // 通過輸入流對象加載Properties文件         dbClassName = prop.getProperty("DB_CLASS_NAME"); // 獲取數據庫驅動         // 獲取連接的URL         dbUrl = prop.getProperty("DB_URL", dbUrl);      } catch (Exception e) {e.printStackTrace(); // 輸出異常信息      }   }   /**    * 功能:獲取連接的語句    *     * @return    */   public static Connection getConnection() {Connection conn = null;      try {// 連接數據庫時可能發生異常因此需要捕捉該異常         Class.forName(dbClassName).newInstance(); // 裝載數據庫驅動         conn = DriverManager.getConnection(dbUrl); // 建立與數據庫URL中定義的數據庫的連接      } catch (Exception ee) {ee.printStackTrace(); // 輸出異常信息      }      if (conn == null) {System.err               .println("警告: DbConnectionManager.getConnection() 獲得數據庫鏈接失敗.\r\n\r\n鏈接類型:"                     + dbClassName + "\r\n鏈接位置:" + dbUrl); // 在控制臺上輸出提示信息      }      return conn; // 返回數據庫連接對象   }   /*    * 功能:執行查詢語句    */   public ResultSet executeQuery(String sql) {try {// 捕捉異常         conn = getConnection(); // 調用getConnection()方法構造Connection對象的一個實例conn         stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,               ResultSet.CONCUR_READ_ONLY);         rs = stmt.executeQuery(sql);      } catch (SQLException ex) {System.err.println(ex.getMessage()); // 輸出異常信息      }      return rs; // 返回結果集對象   }   /*    * 功能:執行更新操作    */   public int executeUpdate(String sql) {int result = 0; // 定義保存返回值的變量      try {// 捕捉異常         conn = getConnection(); // 調用getConnection()方法構造Connection對象的一個實例conn         stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,               ResultSet.CONCUR_READ_ONLY);         result = stmt.executeUpdate(sql); // 執行更新操作      } catch (SQLException ex) {result = 0; // 將保存返回值的變量賦值為0      }      return result; // 返回保存返回值的變量   }   /*    * 功能:關閉數據庫的連接    */   public void close() {try {// 捕捉異常         if (rs != null) {// 當ResultSet對象的實例rs不為空時            rs.close(); // 關閉ResultSet對象         }         if (stmt != null) {// 當Statement對象的實例stmt不為空時            stmt.close(); // 關閉Statement對象         }         if (conn != null) {// 當Connection對象的實例conn不為空時            conn.close(); // 關閉Connection對象         }      } catch (Exception e) {e.printStackTrace(System.err); // 輸出異常信息} }}配置中文亂碼的過濾器(CharacterEncodingFilter)package com.mr.filter;import java.io.IOException;import javax.servlet.*;public class CharacterEncodingFilter implements Filter {protected String encoding = null; // 定義編碼格式變量   protected FilterConfig filterConfig = null; // 定義過濾器配置對象   public void init(FilterConfig filterConfig) throws ServletException {this.filterConfig = filterConfig; // 初始化過濾器配置對象      this.encoding = filterConfig.getInitParameter("encoding"); // 獲取配置文件中指定的編碼格式   }   // 過濾器的接口方法,用于執行過濾業務   public void doFilter(ServletRequest request, ServletResponse response,         FilterChain chain) throws IOException, ServletException {if (encoding != null) {request.setCharacterEncoding(encoding); // 設置請求的編碼         // 設置應答對象的內容類型(包括編碼格式)         response.setContentType("text/html; charset=" + encoding);      }      chain.doFilter(request, response); // 傳遞給下一個過濾器   }   public void destroy() {this.encoding = null;      this.filterConfig = null;   }}編寫實體類User.javapackage com.mr.model;public class User {private int id = 0;// 用戶ID   private String username = "";// 用戶名   private String pwd = "";// 密碼   private String email = "";// E-mail地址   private String question = "";// 密碼提示問題   private String answer = "";// 密碼提示問題答案   private String city = "";// 所在地   public String getEmail() {return email;   }   public void setEmail(String email) {this.email = email;   }   public String getQuestion() {return question;   }   public void setQuestion(String question) {this.question = question;   }   public String getAnswer() {return answer;   }   public void setAnswer(String answer) {this.answer = answer;   }   public String getCity() {return city;   }   public void setCity(String city) {this.city = city;   }   public int getId() {return id;   }   public void setId(int id) {this.id = id;   }   public String getUsername() {return username;   }   public void setUsername(String username) {this.username = username;   }   public String getPwd() {return pwd;   }   public void setPwd(String pwd) {this.pwd = pwd;   }}Diary.javapackage com.mr.model;import java.util.Date;import java.util.LinkedList;import java.util.List;/** * 日記類 * */public class Diary {private int id = 0;// 日記ID號   private String title = "";// 日記標題   private String address = "";// 日記圖片地址   private Date writeTime = null;// 寫日記的時間   private int userid = 0;// 用戶ID   private String username = "";// 用戶名   private Listcomments;// 日志評論   private int likes;// 點贊數   public Diary() {super();   }   public String getUsername() {return username;   }   public void setUsername(String username) {this.username = username;   }   public int getId() {return id;   }   public void setId(int id) {this.id = id;   }   public String getTitle() {return title;   }   public void setTitle(String title) {this.title = title;   }   public String getAddress() {return address;   }   public void setAddress(String address) {this.address = address;   }   public Date getWriteTime() {return writeTime;   }   public void setWriteTime(Date writeTime) {this.writeTime = writeTime;   }   public int getUserid() {return userid;   }   public void setUserid(int userid) {this.userid = userid;   }   public ListgetComments() {return comments;   }   public void setComments(Listcomments) {this.comments = comments;   }   public int getLikes() {return likes;   }   public void setLikes(int likes) {this.likes = likes;   }}Comment.javapackage com.mr.model;/** * 評論類 * */public class Commnet {private int id;// 留言編號   private String fromUserName;// 留言人   private String content;// 留言內容   private String create_time;// 留言時間   private boolean valid;// 是否有效   public Commnet() {super();   }   public int getId() {return id;   }   public void setId(int id) {this.id = id;   }   public String getContent() {return content;   }   public void setContent(String content) {this.content = content;   }   public String getFromUserName() {return fromUserName;   }   public void setFromUserName(String fromUserName) {this.fromUserName = fromUserName;   }   public String getCreate_time() {return create_time;   }   public void setCreate_time(String create_time) {this.create_time = create_time;   }   public boolean isValid() {return valid;   }   public void setValid(boolean valid) {this.valid = valid;   }}

1.6小 結 以上介紹的九宮格記憶網中,應用到了很多關鍵的技術,這些技術在開發過程中都是比較常用的技術。例如,采用了DIV+CSS布局、用戶注冊功能是通過Ajax實現的、在Servlet中生成日記圖片技術和生成縮略圖技術等,

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四
亚洲综合色激情五月| 一区二区福利| 亚洲黑丝一区二区| 欧美成人精品h版在线观看| 亚洲高清免费视频| 欧美三级网址| 欧美一区二区精品在线| 亚洲成人原创 | 亚洲二区在线观看| 欧美欧美在线| 久久国产精品久久国产精品| 亚洲精品视频在线播放| 国产女人18毛片水18精品| 欧美.日韩.国产.一区.二区| 亚洲免费小视频| 亚洲日本va午夜在线电影| 国产九九视频一区二区三区| 欧美国产日韩一二三区| 久久国产精彩视频| 日韩小视频在线观看专区| 韩国视频理论视频久久| 国产精品久久久久久久app| 蜜臀av性久久久久蜜臀aⅴ| 午夜天堂精品久久久久| 亚洲精品午夜| 韩国三级电影久久久久久| 国产精品国产三级欧美二区| 国产乱码精品一区二区三区忘忧草 | 欧美日韩一区二区欧美激情| 久久精品99久久香蕉国产色戒 | 欧美大学生性色视频| 亚洲免费视频中文字幕| 日韩小视频在线观看| 亚洲国产黄色| 一区二区亚洲欧洲国产日韩| 国产麻豆9l精品三级站| 国产精品黄色在线观看| 欧美视频成人| 欧美色道久久88综合亚洲精品| 欧美国产极速在线| 欧美第一黄色网| 久久久久久久91| 欧美专区福利在线| 亚洲欧美成人综合| 亚洲欧美视频一区二区三区| 亚洲一区二区三区四区视频| 中文高清一区| 亚洲在线一区| 性色av一区二区三区| 欧美一区二区三区四区夜夜大片| 亚洲综合日韩在线| 午夜久久久久久| 久久国产精品99精品国产| 欧美一级在线播放| 久久久久成人网| 噜噜噜噜噜久久久久久91 | 激情文学综合丁香| …久久精品99久久香蕉国产 | 一本不卡影院| 9色porny自拍视频一区二区| 一区二区三区蜜桃网| 一本色道久久88综合亚洲精品ⅰ| 99精品欧美一区二区三区综合在线| 亚洲美女尤物影院| 在线观看一区二区精品视频| 国产欧美亚洲日本| 一区精品久久| 91久久在线观看| 亚洲免费高清| 亚洲综合另类| 久久久一区二区三区| 欧美国产日产韩国视频| 欧美午夜一区| 国产一二精品视频| 在线观看久久av| 亚洲日本免费| 亚洲欧美国产三级| 久久精品一区二区| 欧美日韩高清不卡| 国产乱码精品一区二区三区忘忧草 | 欧美特黄一区| 国产精品一级| 亚洲黄网站黄| 欧美一区二区三区成人 | 老**午夜毛片一区二区三区| 欧美电影资源| 国产精品丝袜久久久久久app| 激情久久久久| 亚洲网址在线| 久久免费99精品久久久久久| 欧美精品久久一区二区| 国产精品视频免费| 亚洲人成毛片在线播放女女| 午夜亚洲福利| 欧美日韩精品久久久| 伊人久久噜噜噜躁狠狠躁| 亚洲女女女同性video| 欧美.日韩.国产.一区.二区| 国产日韩一区二区三区在线| 99www免费人成精品| 久久久久久午夜| 国产精品午夜春色av| 99国产精品一区| 蜜桃久久av一区| 韩日精品在线| 性色av一区二区三区| 欧美日韩在线视频一区二区| 精品69视频一区二区三区| 午夜欧美大尺度福利影院在线看| 欧美精品激情在线| 尤物视频一区二区| 久久久久www| 国产欧美精品va在线观看| 一区二区欧美精品| 欧美日韩成人一区二区| 亚洲国产一区在线| 裸体丰满少妇做受久久99精品| 国产亚洲人成a一在线v站 | 亚洲精品黄色| 欧美+日本+国产+在线a∨观看| 激情综合在线| 久久久噜噜噜久久中文字免| 国产在线播放一区二区三区| 亚洲午夜国产一区99re久久| 亚洲自拍电影| 日韩午夜激情av| 欧美成人小视频| 日韩系列欧美系列| 亚洲三级观看| 亚洲人成小说网站色在线| 欧美另类一区二区三区| 欧美日韩国产色站一区二区三区| 亚洲国产成人精品久久| 亚洲欧美www| 久久久久久久久久久成人| 久久久亚洲综合| 国产日韩欧美一区二区| 91久久黄色| 欧美刺激性大交免费视频| 日韩午夜在线播放| 亚洲精品中文字幕女同| 亚洲视频久久| 国产精品久久久久99| 精品成人久久| 久久精品一本| 国产视频一区免费看| 久久大逼视频| 亚洲成在线观看| 欧美精品激情在线观看| 中文国产成人精品| 国产欧美日韩精品专区| 久久九九精品99国产精品| 黄色成人在线免费| 欧美成人自拍| 亚洲一区欧美二区| 国产自产在线视频一区| 免费观看成人鲁鲁鲁鲁鲁视频| 日韩一区二区精品在线观看| 国产精品久久久亚洲一区| 久久九九国产精品| 99成人精品| 国产日产精品一区二区三区四区的观看方式 | 欧美xart系列高清| 在线一区二区三区做爰视频网站| 国产精品亚洲第一区在线暖暖韩国| 久久综合九色综合欧美狠狠| 一本色道久久综合亚洲二区三区| 国产亚洲一区在线| 欧美日韩精品一区二区三区四区 | 久久青草欧美一区二区三区| 一本久久a久久免费精品不卡| 亚洲精品视频在线| 国产美女精品一区二区三区| 麻豆精品一区二区av白丝在线| 亚洲一区二区成人在线观看| 雨宫琴音一区二区在线| 国产精品久线观看视频| 欧美aⅴ一区二区三区视频| 午夜精品久久久久久久| 亚洲伦伦在线| 在线色欧美三级视频| 国产精品呻吟| 欧美视频二区36p| 美日韩丰满少妇在线观看| 欧美在线3区| 亚洲欧美一区在线| 亚洲精品偷拍| 亚洲黄色尤物视频| 狠狠色噜噜狠狠色综合久| 国产精品成人一区二区三区吃奶| 欧美成人免费全部| 久热国产精品视频| 久久精品综合网| 欧美在线观看视频一区二区三区 | 精品不卡一区| 国产精品v日韩精品v欧美精品网站| 欧美成人中文| 久久综合九色九九| 久久综合给合久久狠狠狠97色69| 午夜精品一区二区在线观看 |