新聞發佈的一點小總結

来源:http://www.cnblogs.com/da19951208/archive/2017/01/13/6284275.html
-Advertisement-
Play Games

經過一段時間的學習,完成了新聞發佈的基礎功能,進行一點小總結,方便日後回顧。下麵是我的一點小總結,不足之處請勿見笑。。。 ...


  經過一段時間的學習,完成了新聞發佈的基礎功能,進行一點小總結,方便日後回顧。下麵是我的一點小總結,不足之處請勿見笑。。。

我們想要完成一個新聞發佈,首先要使其能夠成功發佈,並且讓它能夠實現添加、刪除、修改、查詢、上傳、下載等功能。
我們還調用AJAX功能查看輸出為XML、JSON格式的新聞內容。為完成以上功能,我們首先要進行jdk、tomcat、eclipse的安裝和配置。
1、各軟體的安裝和配置
1.1、jdk的安裝和配置:
1.1.1、下載jdk:下載地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
1.1.2、安裝jdk:安裝jdk.exe
1.1.3、配置環境變數:右擊"我的電腦"-->"高級"-->"環境變數"
1)在系統變數里新建"JAVA_HOME"變數,變數值為:C:\Program Files\Java\jdk (根據自己的安裝路徑填寫)
2)新建"CLASSPATH"變數,變數值為:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (變數值中"."是不可或缺的)
3)在PATH變數(已存在不用新建)添加變數值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin (註意變數值之間用";"隔開)
1.1.4、測試:"開始"-->"運行"-->輸入"javac"-->"Enter",如果能正常列印用法說明配置成功!
1.1.5補充環境變數的解析:
1)JAVA_HOME:jdk的安裝路徑
2)CLASSPATH:java載入類路徑,只有類在classpath中java命令才能識別,在路徑前加了個"."表示當前路徑。
3)PATH:系統在任何路徑下都可以識別java,javac命令。
1.2、tomcat的安裝和配置:{其各個文件夾的功能}:
1.2.1、Tomcat的獲取和安裝:Apache的官方網站下載(http://tomcat.apache.org/),有兩種不同的下載,一種是普通安裝版本,一種是解壓安裝版本。使用起來是一樣的,只是在普通安裝版本中有一些界面可提供對Tomcat的快捷設置,而且普通安裝會將Tomcat作為系統服務進行註冊。
Tomcat的啟動是一個bat文件(Windows下),在bin目錄下。雙擊即可。如果啟動不成功,一般的情況是控制台出來一下立即消失,說明Tomcat沒有找到Java的運行時環境。簡單理解,就是Tomcat找不到jdk,沒辦法運行。
1.2.2、Tomcat的運行環境搭建:在JAVA_HOME變數(在jdk配置時已經創建),指向jdk安裝目錄。啟動Tomcat,在瀏覽器地址欄輸入http://localhost:8080/如果看到關於Tomcat的介紹神馬,說明配置成功。
1.2.3、Tomcat的目錄結構介紹:bin目錄存放一些啟動運行Tomcat的可執行程式和相關內容。
      conf存放關於Tomcat伺服器的全局配置。
      lib目錄存放Tomcat運行或者站點運行所需的jar包,所有在此Tomcat上的站點共用這些jar包。
      webapps目錄是預設的站點根目錄,可以更改。
      work目錄用於在伺服器運行時過度資源,簡單來說,就是存儲jsp、servlet翻譯、編譯後的結果。
common文件夾是存放公共jar包的。
logs文件夾主要是存放日誌文件的。

1.1.4、其他更詳細的介紹:(http://www.cnblogs.com/Johness/archive/2012/07/20/2600937.html)
1.3、eclipse的安裝和配置:
1.3.1、下載Eclipse:( http://www.eclipse.org/downloads/)
1.3.2、Eclipse配置:
1)配置jdk:點擊"window"-->"preferences"-->"java"-->"installed JRES"
2)配置tomcat:點擊"window"-->"preferences"-->"Server"-->"Runtime Environment"-->"Add"
2、各功能的實現
2.1、連接資料庫:
多項功能都需要連接資料庫,我們創建一個用於連接資料庫的工具(util),命名為"SQLServerConnectiont"。
1)載入JDBC驅動程式
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
2)創建資料庫連接
Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=test1","sa","sd951208");
JDBC連接常用資料庫和基本的CURD可參考(http://www.360doc.com/content/16/0816/17/35826655_583667086.shtml)。
2.2、JavaBeen:
創建"*.java",添加id、b_id、title、content、author、time、area、fileName、fileContent等屬性。
滑鼠右鍵,依次選擇彈出菜單中的"源碼"/"生成Getter和Setter"菜單項。
在彈出的"生成Getter和Setter"對話框中,單擊"全部選中"按鈕,並保留其它選項的預設值。
點擊"確定"按鈕,生成屬性的getXxx()與setXxx()方法。
2.3、新聞的發佈(添加):
發佈新聞時,將新聞的各種屬性填寫好進行發佈。在jsp頁面將數據提交到Servlet處理,調用sql語句insert儲存進資料庫。其中日期屬性使用了My97DatePicker插件,簡介使用textarea標簽和ckeditor插件。
2.3.1、My97DatePicker插件
下載My97DatePicker插件(http://download.csdn.net/detail/emoven/8249073)。
在頁面中引入該組件js文件: <script type="text/JavaScript" src="/test/My97DatePicker/WdatePicker.js"></script>
在添加日期時,<input id="1" type="text" name="time" class="Wdate" onfocus="WdatePicker({dateFmt:'yyyyMMdd HH:mm:ss',isShowClear:false,readOnly:true})">
其他更詳細的調用到官網查看(http://www.my97.net/dp/demo/index.htm)。
2.3.2、ckeditor插件
下載ckeditor插件(http://ckeditor.com/download)。
在頁面<head>中引入ckeditor核心文件ckeditor.js <script type="text/javascript" src="ckeditor/ckeditor.js"></script>
在使用編輯器時,textarea rows="10" cols="30" name="textarea1" class="ckeditor">簡介內容</textarea>
2.4、刪除:
在jsp顯示頁面通過超鏈接提交要刪除的數據id到Servlet處理,調用sql語句delete刪除相應的數據。在這裡使用了事務的處理,避免刪除書籍信息時沒有刪除書籍的附件。
簡單事務的詳細使用方法(http://blog.sina.com.cn/s/blog_4b5bc0110100h0wz.html)。
2.5、修改:
根據id,通過查詢的Servlet調用sql語句select查詢出新聞數據,在修改的jsp頁面顯示。然後將修改後的數據發送到修改的Servlet調用sql語句insert將數據儲存到資料庫里。
2.6、查詢:
按照id、關鍵字、日期等要求查詢新聞的數據,在jsp頁面發送到Servlet處理調用sql語句select查詢出新聞數據。
為了讓查詢數據顯示時,將要求一同顯示在頁面上:在jsp顯示頁面String id = (String) request.getAttribute("id"); if (id == null) { id = ""; request.removeAttribute("id"); } 在Servlet處理,獲取要求:String Id = request.getParameter("Id"); if (Id != null && !Id.equals("")) { sql1 += " and ID_=?"; } 然後if(Id != null && !Id.equals("")) { ps1.setString(i, Id); i++; System.out.println("Id"+Id); }
2.7、上傳:
在jsp發佈頁面將附件上傳,通過Servlet處理分析將附件數據和其他數據區分,然後通過調用sql語句insert儲存進資料庫。
1)上傳附件需要使用commons-fileupload.jar和commons-io.jar兩個包。
2)文件上傳必須滿足的條件: 頁面表單的method必須是post,因為get傳送的數據太小了 ; 頁面表單的enctype必須是multipart/form-data類型的; 表單中提供上傳輸入域
3)具體代碼可參考(http://blog.csdn.net/ajun_studio/article/details/6639306)。
2.8、下載:
首先通過超鏈接將要下載的附件的id發送到Servlet處理,調用sql語句select查詢出附件名和附件內容,然後將附件通過ServletOutputStream和InputStream和byte b[]將附件下載。
具體代碼可參考(http://blog.csdn.net/doymm2008/article/details/5630814)。
2.9、中文字元亂碼:
方法一:tomcat的自帶編碼是ISO-8859-1的格式,是不相容中文的編碼的。resp.setContentType("text/html;charset=utf-8");//設置頁面的字元編碼,解決界面顯示中文亂碼的問題
方法二:req.setCharacterEncoding("utf-8");//必須寫在第一位,因為採用這種方式去讀取數據,否則數據會出錯。
方法三:修改配置文件。也就是web.xml文件
更加詳細方法參考(http://www.jb51.net/article/74710.htm或者http://blog.sina.com.cn/s/blog_675e9aeb0101357h.html)。
2.10、特殊字元轉義:
String temp = news.getArea(); //獲取需要轉義的內容
if (temp != null) { //內容不能為空
temp = temp.replaceAll("<", "&lt;"); //將特殊符號"<"轉義為"&lt;"
temp = temp.replaceAll(">", "&gt;"); //將特殊符號">"轉義為"&gt;"
temp = temp.replaceAll("&", "&amp;"); //將特殊符號"&"轉義為"&amp;"
temp = temp.replaceAll("“", "&quot;"); //將特殊符號"“"轉義為"&quot;"
temp = temp.replaceAll(" ", "&nbsp;"); //將特殊符號" "轉義為"&nbsp;"
news.setArea(temp);
}
其他方式可參考(http://blog.csdn.net/songlixing/article/details/6957902)。
2.11、讓CKEditor支持jsp上傳圖片
思路是:1)準備一下JSP上傳文件的JAR包:commons-fileupload.jar和commons-io.jar;2)編寫一個JSP用於接收上傳的文件(這裡除上傳圖片功能外,需調用一個核心JS語句);3)編寫一個JSP用於瀏覽文件(這裡除上傳圖片功能外,需調用一個核心JS語句);4)修改CKEditor的config.js,將上傳文件和瀏覽文件的JSP配置進去。
具體代碼可以參考(http://www.cnblogs.com/hannover/archive/2011/07/29/2121536.html)。
2.12、分頁顯示
定義變數pageSize(每頁顯示多少條變數、用戶指定)、pageNow(希望顯示第幾頁、用戶指定)、pageCount(總共有多少頁、計算:if (rowCount % pageSize == 0) { pageCount = rowCount / pageSize; } else { pageCount = (rowCount / pageSize) + 1; })、rowCount(總共有多少條變數、通過查詢)。
rowCount查詢:select count(ID_) from news;
顯示select top " + pageSize + " * from news where ID_ not in(select top " + (pageSize * (pageNow - 1)) + " ID_ from news order by id_ desc)order by id_ desc
設計首頁、上一頁、超鏈接跳轉、下一頁、末頁、直接跳轉XX頁。
詳細代碼可參考(http://www.cnblogs.com/yony/archive/2012/06/15/2550607.html)。
2.13、覆選框
對屬性設置覆選框,可進行多選、全選來操作,可同時操作多條數據。這裡使用了js的功能。覆選框的類型type="checkbox"。思路如下:
1)將前臺jsp頁面中的所有你要用到checkbox的name值設為相同。
2)在後臺獲取參數時,使用數組獲取。
3)進行數組必要的格式轉換,再進行sql操作。
代碼可參考(思路:http://www.cnblogs.com/haore147/p/3617968.html | 覆選框的設置:http://bbs.csdn.net/topics/350072249 | 參考實例:http://zhidao.baidu.com/link?url=Y2GFIBUHCIuift_2IQzSmtQhfejgYo6_wyh9pBe-A4z5CZk4jby9DSO08MoPbVOBnP1s4-Sy3WHe8uF9WBr8YvQqOs4xKpT0soagJqeN02e)
3、AJAX功能
3.1、輸出XML:
當用戶點擊上面的"Get LIST info"這個按鈕,就會執行 loadXMLDoc() 函數。 loadXMLDoc() 函數創建XMLHttpRequest 對象,添加當伺服器響應就緒時執行的函數,並將請求發送到伺服器。當伺服器響應就緒時,會構建一個 HTML 表格,從 XML 文件中提取節點(元素),最後使用已經填充了 XML 數據的 HTML 表格來更新 copy 占位符。
Servlet中調用sql語句select查出數據,轉換成XML格式輸出。
AJAX XML實例(http://www.w3school.com.cn/ajax/ajax_xmlfile.asp)。
輸出XML文件代碼可參考(http://wentao365.iteye.com/blog/1102815)。
3.2、輸出JSON:
當用戶點擊上面的"獲取json"這個按鈕,就會執行 loadXMLDoc() 函數。 loadXMLDoc() 函數創建XMLHttpRequest 對象,添加當伺服器響應就緒時執行的函數,並將請求發送到伺服器。當伺服器響應就緒時,會構建一個 HTML 表格,從 json 文件中提取節點(元素),最後使用已經填充了 json 數據的 HTML 表格來更新 copy 占位符。
Servlet中調用sql語句select查出數據,轉換成JSON格式輸出。再轉換成json格式時使用了jsonStringer類
AJAX取得Servlet獲取輸出json文件可參考(http://bbs.csdn.net/topics/390708035)8樓。
輸出JSON文件代碼可參考(http://www.tuicool.com/articles/6niEjy)。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.增加一列: Alter table 表名 add 列名 varchar2(10); 1.增加一列: Alter table 表名 add 列名 varchar2(10); 2.修改一列: Alter table 表名 modify 列名 varchar2(20); 3.刪除一列: Alter t ...
  • 資料庫版本 SQL SERVER 2012 企業版,版本號:11.0.5582.0 問題場景: 資料庫配置Alwayson環境,同機房2節點同步自動切換+跨機房非同步,在非同步機房中選取同一節點做完整備份和日誌備份,完整備份為COPY_ONLY方式,完整備份從0:35開始至1:40成功結束,日誌備份從0 ...
  • 金蝶KIS專業版 替換SXS.dll 遭後門清空數據(憑證被改為:恢複數據聯繫QQ 735330197,2251434429)恢復解決方法。 【客戶名稱】:山東青島福隆發紡織品有限公司 【軟體名稱】:金蝶KIS專業版12.2 【資料庫版本】:MS SQL server 2000 【資料庫大小】:1G ...
  • 這裡為百度經驗 http://jingyan.baidu.com/article/ff42efa93580c4c19e2202b6.html 然而在最後一步,回車不能夠越過密碼。 需要在解壓的mysq文件下的data文件下找到Acer.err,用記事本打開, Crtl+H查找 A temporary ...
  • 《.Net程式員學用Oracle系列:導航目錄》 本文大綱 1、 " 轉換函數 " 1.1、 "TO_CHAR" 1.2、 "TO_NUMBER" 1.3、 "TO_DATE" 1.4、 "CAST" 2、 " 近似值函數 " 2.1、 "ROUND" 2.2、 "TRUNC" 3、 " 正則函數 ...
  • 程式控制台出現 already exist Table "xxx",是由於項目中的Migrations(遷移文件)與連接的mysql資料庫里遷移記錄表裡的數量及名稱不一致。 ...
  • 數據持久化是還原的前提,沒有數據的持久化,就無法還原記憶體優化表的數據,SQL Server In-Memory OLTP的記憶體數據能夠持久化存儲,這意味著記憶體數據能夠在SQL Server實例重啟之後自動還原。在創建持久化的記憶體優化表時,必須設置選項:memory_optimized=on,dura ...
  • getdate():當前系統日期與時間 DATEADD(DAY,5,GETDATE()):當前日期的基礎上加上x天 DATEDIFF(DAY,'2017-01-02','2017-01-13'):返回指定的兩個日期與時間的邊界數 DATEPART(MONTH,GETDATE()):返回當前指定日期的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...