java頁面靜態化
1. 靜態頁面究竟是指什麼
靜態頁面是網頁的代碼都在頁面中,不需要執行asp,php,jsp,.net等程序生成客戶端網頁代碼的網頁。靜態頁面不能自主管理發布更新的頁面,如果想更新網頁內容,要通過FTP軟體把文件DOWN下來用網頁製作軟體修改(通過fso等技術例外) 常見的靜態頁面舉例:.html擴展名的、.htm擴展名的。 注意:靜態頁面並非網站上沒有動畫的就是靜態頁面。
最早的時候,網站內容是通過在主機空間中放置大量的靜態網頁實現的。為了方便對這些分散在不同目錄的靜態網頁的管理,(一般是通過FTP),象 frontpage/dreamweaver這樣軟體甚至直接提供了向主頁空間以FTP方式直接訪問文件的功能。以靜態網頁為主的網站最大的困難在於對網頁的管理,在這種框架里,網頁框架和網頁中的內容混雜在一起,很大程度地加大了內容管理的難度。為了減輕這種管理的成本,發展出了一系列的技術,在筆者的理解中,甚至連css本身,原本也是針對這種亂七八糟的網頁維護而設計的,目的就是把網頁表達的框架和內容本身抽象分離出來。
[編輯本段]2 什麼是動態頁面
動態頁面是通過執行asp,php,jsp,.net等程序生成客戶端網頁代碼的網頁。 動態頁面通常可以通過網站後台管理系統對網站的內容進行更新管理。發布新聞,發布公司產品,交流互動,博客,網上調查等,這都是動態網站的一些功能。也是我們常見的。 動態頁面常見的擴展名有:.asp .php .jsp .cgi 等。 注意:動態頁面的「動態」是網站與客戶端用戶互動的意思,而非網頁上有動畫的就是動態頁面。
使用動態網頁的技術是從幾年前興起,目前已經進入衰老期的網站技術,也是BS系統的核心技術。這種技術稱為動態網頁,就是因為一般是在共用的網頁框架下面通過程序介面抽取放在資料庫或其他存儲媒體中的內容,從而真正實現了把網頁框架和內容提取分離的目的。也就是傳統中的php,asp,jsp,servlet等。這種技術的發展一直以邏輯反復抽象,直到把幾乎所有的系統業務邏輯合並到各個組件、控制項中,網頁代碼僅僅完成最後對象屬性讀取的任務。在JSP中,標簽結合EL語言就是這種發展方向的極致了。這種技術實際上就是不同的(不限數量的)內容共用網頁框架,從而將網頁維護成本下降到接近可以忽略的程度。在這種技術面前,象 frontpage/dreamwever這種軟體,實際上已經多少顯得過時了。
[編輯本段]3為什麼要動態頁面靜態化
但為什麼現在又要把動態網頁以靜態網頁的形式發布呢?一個很重要的原因,就是因為搜索引擎。由於搜索引擎對aspx頁面收錄和html頁面收錄率的差別以及頁面資源佔用問題,我們很多時候需要實現ASPX頁面動態轉靜態。以目前互聯網上最普通的查找資料的方式看,互聯網內容到達受眾面前大致只有三條路:第一條路是通過眾所周知的門戶網站,老讀者有意識地到達這些地方搜索相應的有針對性的資料;第二條路是做廣告,通過受眾使用一些免費服務的機會夾帶資料信息,把受眾帶到目標網站;第三條路是搜索引擎,通過關鍵字和其他因素,把相應的信息推介到受眾的面前。實際上,即使是對門戶網站,這也是帶來新受眾的最有效的途徑;而對於絕大多數的站點,除了屈指可數的幾個門戶外,這種搜索引擎帶來的讀者受眾,佔了至少90%以上的比例。
如此重要的一條受眾途徑自然是不能忽略的,因此,盡管搜索機器人有點討厭,各個網站不但不會再象從前一樣把它封起來,反而熱情無比地搞SEO,所謂的面向搜索引擎的優化,其中就包括訪問地址的改寫,令動態網頁看上去是靜態網頁,以便更多更大量地被搜索引擎收錄,從而最大限度地提高自已的內容被目標受眾接收的機會。但是,在完全以動態技術開發的網站,轉眼中要求變換成靜態網頁提供,同時,無論如何,動態網頁的內容管理功能也是必須保留的;就如同一輛飛駛的賓士忽然要求180度轉彎,要付出的成本代價是非常大的,是否真的值得,也確定讓人懷疑。
2. 關於java 關於網站(真)靜態化和使用什麼框
1.jsp要經過web容器解釋,中間過程多。
2.公共類包使用流寫出文件,難道freemarker不行?
3.普通的java app,非web app,直接讀取數據,再加上freemarker模板,就能批量出頁面了。在1中jsp那種裡面,這個過程就是web容器做的。而2說的流寫出文件,這個過程和那個有區別么?為了防止模板解析出錯造成生成的文件有誤,先輸出到內存,沒問題就內存中頁面數據直接輸出到文件。
3. Java,頁面靜態化是什麼意思,怎麼做的
JavaWeb可以利用第三方提供的模板引擎,如Velocity/FreeMarker來動態處理HTML,比JSP的各種標簽要更高效簡潔;
要靜態話的話就是直接觸發生成html或者任務觸發生成html。一般是搭配CMS來實現,比說說某篇文章內容更新後直接調用靜態化html服務來實現。
4. java設計網站
大部分是ajax,有些可能會有不同的封裝,最底層都是XMLHttpRequest發起同步或非同步請求,效率不會低的,比如說你用的網路,很多地方都是的。
但是需要SEO搜索引擎優化的就不是了,都是首先在後台生成html靜態頁面,瀏覽器客戶端直接訪問靜態頁,freemarker就是java中常用到做頁面靜態化的。
如果是freemarker,管理維護的話,你可以寫定時任務,定時每天或者每小時重新生成靜態頁;也可以在後台做個靜態頁管理的模塊,手工執行更新哪個模塊的靜態頁等。
5. 有人會javaWeb頁面的靜態化嗎
1、首頁動態:刪除根目錄的index(注意別刪了index.php),以後也不用手動去生成首頁了。 2、欄目頁動態:後台改選每個欄目的「欄目列表選項」為「使用動態」。 3、內容頁動態:後台修改已生成的文章的「發布選項」為「僅動態瀏覽」。
6. 求Java入門視頻教程《Java從入門到精通》視頻教程由孫鑫老師,
Java私塾的視頻很不錯現在他們4周年慶,學費9折
7. Java web項目怎麼實現動態頁面的靜態化有做過的給一些示例或者參考文檔吧,謝謝!
public bool WriteFile(string ArticleTitle, string ArticleContent, string ArticleID)
{
string OutPutPath = HttpContext.Current.Server.MapPath("HTMLPage/");
Encoding encoding = Encoding.GetEncoding("gb2312");
// 讀取模板文件
string ModelTemp = HttpContext.Current.Server.MapPath("ModelHTML.htm");
StreamReader sr = null;
StreamWriter sw = null;
string str = "";
try
{
sr = new StreamReader(ModelTemp, encoding);
str = sr.ReadToEnd(); // 讀取文件
}
catch (Exception exp)
{
HttpContext.Current.Response.Write(exp.Message);
HttpContext.Current.Response.End();
sr.Close();
}
string HtmlFilename = DateTime.Now.ToString("yyyyMMddHHmmss_") +ArticleID+ ".html";
// 替換內容
str = str.Replace("PageTitle", ArticleTitle); //模板頁中的PageArticle
str = str.Replace("ArticleTitle", ArticleTitle);
str = str.Replace("ArticleContent", ArticleContent);
// 寫文件
try
{
sw = new StreamWriter(OutPutPath+HtmlFilename, false, encoding);
sw.Write(str);
sw.Flush();
}
catch (Exception ex)
{
HttpContext.Current.Response.Write(ex.Message);
HttpContext.Current.Response.End();
}
finally
{
sw.Close();
}
return true;
}
這是好早以前,忘了什麼意思,你領悟領悟
8. 如何在java中實現自動生成html
創建一個StringBuilder對象,通過append方法來為其添加html語句。
StringBuilder sb = new StringBuilder();
Properties fileProperties = getProperties("file");
Properties sqlProperties = getProperties("sql");
PrintStream printStream = new PrintStream(new FileOutputStream(
"report.html"));
sb.append("<html>");
sb.append("<head>");
sb.append("<title>每日運營報表</title>");
sb.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");
sb.append("<style type=\"text/css\">");
sb.append("TABLE{border-collapse:collapse;border-left:solid 1 #000000; border-top:solid 1 #000000;padding:5px;}");
sb.append("TH{border-right:solid 1 #000000;border-bottom:solid 1 #000000;}");
sb.append("TD{font:normal;border-right:solid 1 #000000;border-bottom:solid 1 #000000;}");
sb.append("</style></head>");
sb.append("<body bgcolor=\"#FFF8DC\">");
sb.append("<div align=\"center\">");
sb.append("<br/>");
sb.append("<br/>");
List<Map<String, Object>> result1 = getRpt(sqlProperties
.getProperty("sql1"));
for (Map.Entry<String, Object> m : result1.get(0).entrySet()) {
sb.append(fileProperties.getProperty("file1"));
sb.append(m.getValue());
}
sb.append("<br/><br/>");
輸出
sb.append("</div></body></html>");
printStream.println(sb.toString());
9. java 動態頁面如何靜態化顯示。目的是為了減小數據訪問的壓力。
設置一個代理。裡面存著,頁面要的數據,動態頁的數據從他獲取。而這個代理會定時向 資料庫更新數據