亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

Java 項目生成靜態頁面的代碼

2024-09-05 00:21:13
字體:
來源:轉載
供稿:網友
第一次做項目需要生成靜態頁面,網上很多大牛對將網頁生成靜態頁面有很多異議。說一下我的看法。

不外乎有以下因素:
1、從頁面加載時間來看:靜態頁面不需要與數據庫建立連接,尤其是訪問數據量較大的頁面,這種頁面大多要查很多結果集,因此建立連接次數就增多了,時間不可觀,而靜態頁面則省去了這些時間。
2、從便于搜索引擎抓取的角度來講:搜索引擎更喜歡靜態的網頁,靜態網頁與動態網頁相比,搜索引擎更喜歡靜的,更便于抓取,搜索引擎SEO排名更容易提高,一些大門戶站頁面大多都采用靜態或偽靜態網頁來顯示,更便于搜索引擎抓取與排名。
3、從安全性來看:靜態網頁不宜遭到黑客攻擊,因為黑客不知道你的網站的后臺、網站采用程序、數據庫的地址。
4、從穩定性來看:哪天數據庫服務器掛了,動態網頁就拜拜了!而要運行一個靜態網頁的發布服務器,相信大家都知道配置不是太高也行的吧?呵呵。

因此,我認為,生成靜態頁面具有可行性。

那么怎么把動態網頁的代碼生成靜態網頁呢?又存在哪呢?原理其實很簡單。
1、利用Freemark模板生成靜態頁面,網上搜一下大把大把的代碼隨你挑,我就不在這里啰嗦了。
我很討厭這種方式,因為對于一個數據量較大的頁面來講工作量太大,要寫模板,語法又比較怪異,不流行!
2、也是我偶爾想起來的。用Java中URLConnection抓取某個URL網頁源碼(這是原理核心)生成html文件,就是這么簡單!就是這么Easy!

代碼奉上!

1)、以下是捕捉網頁源碼程序:

復制代碼 代碼如下:


import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;

/**
* @author Xing,XiuDong
*/
public class HTMLGenerator {

public static final String generate(final String url) {
if (StringUtils.isBlank(url)) {
return null;
}

Pattern pattern = Pattern.compile("(|https://){1}[//w//.//-/:]+");
Matcher matcher = pattern.matcher(url);
if (!matcher.find()) {
return null;
}

StringBuffer sb = new StringBuffer();

try {
URL _url = new URL(url);
URLConnection urlConnection = _url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));

String inputLine;
while ((inputLine = in.readLine()) != null) {
sb.append(inputLine);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

return sb.toString();
}

/**
* Test Code
* Target :
*/
public static void main(String[] args) throws IOException {
String src = HTMLGenerator.generate("http://www.google.cn/");

File file = new File("C:" + File.separator + "index.html");
FileUtils.writeStringToFile(file, src, "UTF-8");
}

}


2)、將源碼寫入Html文件,這個需要根據用戶的需求了,我根據我項目中遇到的情況寫了以下代碼:

復制代碼 代碼如下:


/**
* generite html source code
*
* @author Xing,XiuDong
* @date 2009.06.22
* @param request
* @param url
* @param toWebRoot
* @param encoding
* @throws IOException
*/
public void genHtml(HttpServletRequest request, String url, boolean toWebRoot, String encoding) throws IOException {

if (null == url) {
url = request.getRequestURL().toString();
}

String contextPath = request.getContextPath();
String seq = StringUtils.substring(String.valueOf(new Date().getTime()), -6);

String ctxPath = super.getServlet().getServletContext().getRealPath(File.separator);
if (!ctxPath.endsWith(File.separator)) {
ctxPath += File.separator;
}

String filePath = StringUtils.substringAfter(url, contextPath);
filePath = filePath.replaceAll("http://.(do|jsp|html|shtml)$", ".html");

String savePath = "";
String autoCreatedDateDir = "";
if (!toWebRoot) {
savePath = StringUtils.join(new String[] { "files", "history", "" }, File.separator);

String[] folderPatterns = new String[] { "yyyy", "MM", "dd", "" };
autoCreatedDateDir = DateFormatUtils.format(new Date(), StringUtils.join(folderPatterns, File.separator));

filePath = StringUtils.substringBefore(filePath, ".html") + "-" + seq + ".html";
}

File file = new File(ctxPath + savePath + autoCreatedDateDir + filePath);
FileUtils.writeStringToFile(file, HTMLGenerator.generate(url), encoding);
}


來源:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一区二区三区无码高清视频| 亚洲自拍av在线| 国产一区二区av| 欧美理论电影在线播放| 亚洲一区二区三区在线视频| 91亚洲精品久久久久久久久久久久| 欧美裸体xxxx极品少妇| 欧美日韩亚洲高清| 欧美视频不卡中文| 国产精品久久久久久久久久久新郎| 日韩在线视频线视频免费网站| 亚洲精品美女在线| 欧美日韩国产在线播放| 日韩成人黄色av| 国产成人精品久久亚洲高清不卡| 亚洲国产精品成人av| 亚洲奶大毛多的老太婆| 欧洲精品在线视频| 国产日本欧美在线观看| 欧美另类精品xxxx孕妇| 欧美一区二区三区精品电影| 日本a级片电影一区二区| 成人国产精品久久久久久亚洲| 成人高h视频在线| 欧美—级高清免费播放| 国产又爽又黄的激情精品视频| 一道本无吗dⅴd在线播放一区| 亚洲免费电影在线观看| 97精品国产91久久久久久| 日韩精品免费电影| 欧美日韩福利在线观看| 日韩在线高清视频| 国产精品久久97| 欧美精品免费看| 中文字幕亚洲欧美一区二区三区| 激情成人在线视频| 8090成年在线看片午夜| 91产国在线观看动作片喷水| 久久99国产综合精品女同| 亚洲精品综合精品自拍| 成人a免费视频| 亚洲色图狂野欧美| 国产精品无av码在线观看| 国产成人精品免高潮在线观看| 国产69久久精品成人看| 国产在线精品自拍| 国产香蕉精品视频一区二区三区| 欧美日韩国内自拍| 91在线精品播放| 亚洲欧美中文字幕在线一区| 日本亚洲欧美三级| 免费成人高清视频| www.亚洲天堂| 国产精品视频精品视频| 欧美国产日韩中文字幕在线| 91精品视频免费观看| 亚洲综合中文字幕68页| 视频一区视频二区国产精品| 国产999视频| 亚洲国产天堂久久综合网| **欧美日韩vr在线| 狠狠色香婷婷久久亚洲精品| 国产在线久久久| 国产精品中文字幕在线观看| 一本久久综合亚洲鲁鲁| 日韩在线观看免费网站| 欧美日韩午夜剧场| 久久理论片午夜琪琪电影网| 麻豆乱码国产一区二区三区| 欧美电影在线观看高清| 九九热精品视频国产| 国产欧美精品日韩精品| 久久久久久久久亚洲| 91久久夜色精品国产网站| 亚洲直播在线一区| 亚洲人成网站777色婷婷| 欧美日韩国产综合视频在线观看中文| 国产精品欧美日韩一区二区| 欧美激情一二三| 精品日本美女福利在线观看| 日韩av在线免费| 欧美专区福利在线| 亚洲va欧美va国产综合剧情| 日本不卡免费高清视频| 欧美激情videoshd| 懂色av中文一区二区三区天美| 欧美专区在线观看| 黑人巨大精品欧美一区二区三区| 欧美日韩精品在线| 亚洲图片在线综合| 国产精品极品美女粉嫩高清在线| 欧美激情第一页xxx| 精品国产乱码久久久久久虫虫漫画| 777777777亚洲妇女| 国产69久久精品成人| 日韩欧美亚洲范冰冰与中字| 亚洲黄色有码视频| 日韩av免费观影| 日韩精品视频在线观看免费| 欧美电影免费播放| 国产一级揄自揄精品视频| 成人网在线免费看| 国产精品高潮视频| 国产精品久久久久久久9999| 色樱桃影院亚洲精品影院| 亚洲欧美综合区自拍另类| 国产精品美女av| 国产福利精品av综合导导航| 午夜精品在线视频| 亚洲欧洲国产精品| 成人有码在线视频| 九色精品免费永久在线| 国产亚洲欧美视频| 国产一区二区日韩精品欧美精品| 欧美性猛交xxxx乱大交3| 啊v视频在线一区二区三区| 亚洲欧美日韩国产中文专区| 91久久精品国产91性色| 国产精品久久久久aaaa九色| 欧美综合在线第二页| 久久免费少妇高潮久久精品99| 国产成人精品a视频一区www| 日韩免费在线观看视频| 91精品中国老女人| 美女少妇精品视频| 欧美成人激情在线| 欧美日韩一区二区三区在线免费观看| 国产精品久久久久久搜索| 久久久久中文字幕| 亚洲第一色在线| 国产成人激情视频| 国产69精品久久久久99| 俺去了亚洲欧美日韩| 日韩在线观看网址| 久久夜精品va视频免费观看| 亚洲色无码播放| 国产精品网址在线| 97精品视频在线播放| 精品国产一区二区三区在线观看| 久久精品色欧美aⅴ一区二区| 亚洲自拍小视频免费观看| 国产精品视频yy9099| 亚洲欧美一区二区精品久久久| 色综合色综合网色综合| 亚洲欧美中文日韩v在线观看| 亚洲视频国产视频| 国产视频精品免费播放| 欧美性xxxxx| 777777777亚洲妇女| 国产亚洲欧洲高清| 久久久噜久噜久久综合| 成人黄色中文字幕| 亚洲的天堂在线中文字幕| 欧美一区二区色| 亚洲电影免费观看高清完整版| 国产一区二区三区在线免费观看| 夜夜嗨av一区二区三区免费区| 亚洲午夜色婷婷在线| 原创国产精品91| www.欧美精品| 亚洲四色影视在线观看| 久久精品国产一区二区三区| 亚洲人精品午夜在线观看| 欲色天天网综合久久|