Webサイトの静的知識ポイントの整理
3434 ワード
詳細
*、ウェブサイトの静態化開発を行う場合、システムに導入されたページについてもhtmlを導入する方式を実現したい.これにより、導入されたページが変更された場合、すべての参照ページを静態化する必要がなく、導入されたページの静態化を行うだけでよい.
*、ウェブサイトの静態化コアの一つ:ウェブサイトのソースコードの取得を要求する
*静態化ウェブサイトの核心の二つ目は、ソースコードをファイルに書き込み、文字化けしないことである.
*、静的時のデータ構造+urlwriterは効率を高め、具体的にはシナリオ分析に基づいて(*^^*)ニコニコ・・・
*、ウェブサイトの静態化開発を行う場合、システムに導入されたページについてもhtmlを導入する方式を実現したい.これにより、導入されたページが変更された場合、すべての参照ページを静態化する必要がなく、導入されたページの静態化を行うだけでよい.
:jquery html load
http://www.360doc.com/content/15/0610/14/18139076_477138156.shtml
*、ウェブサイトの静態化コアの一つ:ウェブサイトのソースコードの取得を要求する
/**
* , url
* @param urlPath
* @param requestMethod GET POST, GET
* @param codeType GBK UTF-8, GBK
*/
public static String getHtmlCode(String urlPath , String requestMethod , String codeType) {
String aimHtml = null;
try {
URL url=new URL(urlPath);
HttpURLConnection httpConn=(HttpURLConnection)url.openConnection();
//
httpConn.setDoOutput(true); //
httpConn.setDoInput(true); //
httpConn.setUseCaches(false); //
httpConn.setRequestMethod(StringUtils.isBlank(requestMethod) ? "GET" : requestMethod); // GET
//httpConn.setConnectTimeout(1000 * 10); // 10
//httpConn.setReadTimeout(1000 * 6); // 6
//
httpConn.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
httpConn.setRequestProperty("Accept-Encoding", "gzip, deflate, sdch");
httpConn.setRequestProperty("Accept-Language", "en-US,en;q=0.8");// :
httpConn.setRequestProperty("Connection", "Keep-Alive");
httpConn.setRequestProperty("Charset", StringUtils.isBlank(codeType) ? "GBK" : codeType);
httpConn.setRequestProperty("Cache-Control", "max-age=0");
httpConn.setRequestProperty("Upgrade-Insecure-Requests", "1");
httpConn.setRequestProperty("User-Agent", "Mozilla/5.0");
httpConn.connect();
//
int resultCode=httpConn.getResponseCode();
if(HttpURLConnection.HTTP_OK==resultCode){
StringBuffer sb=new StringBuffer();
String readLine=new String();
BufferedReader responseReader=new BufferedReader(new InputStreamReader(httpConn.getInputStream(),StringUtils.isBlank(codeType) ? "GBK" : codeType));
while((readLine=responseReader.readLine())!=null){
sb.append(readLine).append("
");
}
responseReader.close();
aimHtml = sb.toString();
}
}catch(Exception e) {
aimHtml = null;
logger.error(urlPath+" !",e);
}
return aimHtml;
}
*静態化ウェブサイトの核心の二つ目は、ソースコードをファイルに書き込み、文字化けしないことである.
/**
* HTML
*
* @param pageContent
*
* @param fileUrl
*
* @throws Exception
*/
private static void writeHtml(String pageContent, String fileUrl)
throws Exception {
try {
OutputStreamWriter fw = new OutputStreamWriter(
new FileOutputStream(fileUrl), "UTF-8");
fw.write(pageContent);
if (fw != null) {
fw.close();
}
} catch (Exception e) {
logger.error(fileUrl + " !", e);
throw e;
}
}
*、静的時のデータ構造+urlwriterは効率を高め、具体的にはシナリオ分析に基づいて(*^^*)ニコニコ・・・