为了提高访问速度 降低服务器压力
领导说让用户访问静态的页面,而静态的页面是根据动态的生成的我的解决办法是
建立url 的连接
生成输入流
在把这个流写到文件中 生成文件
相应的 要生成的url 放到配置文件中这个方法对于当时没有分页的页面很有用
但是现在一些分页的页面也要静态化
我该怎么办
那个导航条连接 我没有办法处理了
还有就是 由于存在分页根本不知道 具体要访问多少个url
领导说让用户访问静态的页面,而静态的页面是根据动态的生成的我的解决办法是
建立url 的连接
生成输入流
在把这个流写到文件中 生成文件
相应的 要生成的url 放到配置文件中这个方法对于当时没有分页的页面很有用
但是现在一些分页的页面也要静态化
我该怎么办
那个导航条连接 我没有办法处理了
还有就是 由于存在分页根本不知道 具体要访问多少个url
/**
* 会根据url_addr
* 在path 下面生成静态页面
* @param path 存放的文件夹路径
* @param url_addr 所要生成的静态页的URL地址
* @param reg 根据url 生成的pageName 的命名规则
* @param encoding url 页面的 编码格式 如gkb gb2312
* @return
*/
public boolean doStaticHtml(String path, String url_addr,StaticHtmlPageNamingReg reg,String encoding);
}
package com.tol24.familyadmin.service.impl;import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.MalformedURLException;
import java.net.URL;import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;import com.tol24.familyadmin.service.StaticHtml;
import com.tol24.familyadmin.service.StaticHtmlPageNamingReg;public class StaticHtmlImpl implements StaticHtml {
private Log log = LogFactory.getLog(StaticHtmlImpl.class); public boolean doStaticHtml(String path, String url_addr,
StaticHtmlPageNamingReg reg, String encoding) { String rLine = null;
PrintWriter fileOut = null;
InputStream ins = null;
URL url;
try {
File file = new File(path);
if (!file.exists()){
file.mkdirs();
}
url = new URL(url_addr);
log.debug("file path:"+path+ "\\"+reg.getPageName(url)+"\t url:"+url+"\tencoding:"+encoding);
ins = url.openStream(); // 获取编码为gb2312的文件
BufferedReader bReader = new BufferedReader(new InputStreamReader(
ins, encoding));
FileOutputStream out = new FileOutputStream(file+"\\"+reg.getPageName(url));
OutputStreamWriter writer = new OutputStreamWriter(out, encoding);
fileOut = new PrintWriter(writer); // 循环取取数据,并写入目标文件中
while ((rLine = bReader.readLine()) != null) {
String tmp_rLine = rLine;
int str_len = tmp_rLine.length();
if (str_len > 0) {
fileOut.println(tmp_rLine);
fileOut.flush();
}
tmp_rLine = null;
}
url = null;
return true;
} catch (MalformedURLException e) {
log.error("静态化页面出错 url 不正确:",e);
e.printStackTrace();
} catch (IOException e) {
log.error("静态化页面出错:"+e);
e.printStackTrace();
} catch (Exception e) {
log.error("静态化页面出错:", e);
e.printStackTrace();
} finally {// 关闭资源
fileOut.close();
try {
ins.close();
} catch (IOException ex) {
// 关闭输入流出错
return false;
}
} return false;
}}
速度不敢shuo 但是压力肯定是动态的多得多再顶
觉得---
theforever(碧海情天) ( ) 信誉:100 Blog 说的很有道理
就是不能在原来动态页面的基础上再包装一层
而是入侵到了原来的动态页面里面看看还有没有其他的方法
比如算出共有N页,先把每一页结果生成,然后加入导航条(或者是先加,或者是一上一下都加,自己看着办):“首页”:指向页面1
如果本页>1,则“上一页”=指向本页-1对应的页面,否则“上一页”灰色不可用。
如果本页<N,则“下一页”=指向本页+1对应的页面,否则“下一页”灰色不可用。
“末页”:指向页面N
那么,第一天生成的静态页面。到了第2天,由于内容多了,那第一天生成的最后连接的url就不对啦。
================
LZ提到这个导航条,我觉得应该用内嵌窗口来做,生成文件时,独立生成一个导航条文件,再在生成的其它分页静态页面上内嵌它就行了,再结合我上面说得方法,简直是。。
自己想想都有点佩服自己啊,YY中。。请勿打扰!
哈哈
liaohaiying(大菜) ( ) 信誉:100 Blog theforever(碧海情天) ( ) 信誉:100 Blog 根据你们的说得
我现在的解决方案是
先做了一个模版 这个是一个jsp页面 显示了除从数据库读取出来的分页内容和分页导航外的所有东西,而这两个地方用标签代替。再读取这个模板,读取数据库,计算生成的页面的数量和页面的名称,替换上两处的标签这个有一个缺点就是 静态化的时候不是 在原来的基础上作包装,而是侵入其中了这个贴
我就结了
如还有好的想法 ,我在开贴放分
liaohaiying(大菜) ( ) 信誉:100 Blog theforever(碧海情天) ( ) 信誉:100 Blog 根据你们的说得
我现在的解决方案是
先做了一个模版 这个是一个jsp页面 显示了除从数据库读取出来的分页内容和分页导航外的所有东西,而这两个地方用标签代替。再读取这个模板,读取数据库,计算生成的页面的数量和页面的名称,替换上两处的标签这个有一个缺点就是 静态化的时候不是 在原来的基础上作包装,而是侵入其中了这个贴
我就结了
如还有好的想法 ,我在开贴放分
liaohaiying(大菜) ( ) 信誉:100 Blog theforever(碧海情天) ( ) 信誉:100 Blog 根据你们的说得
我现在的解决方案是
先做了一个模版 这个是一个jsp页面 显示了除从数据库读取出来的分页内容和分页导航外的所有东西,而这两个地方用标签代替。再读取这个模板,读取数据库,计算生成的页面的数量和页面的名称,替换上两处的标签这个有一个缺点就是 静态化的时候不是 在原来的基础上作包装,而是侵入其中了这个贴
我就结了
如还有好的想法 ,我在开贴放分