版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JSPHTML2023041209:261.buildhtml.jsp<%@contentType=“text/html;charset=gb2312“import=“java.util.*,java.io.*“%><%try{Stringtitle=“ThisisTitle“;Stringcontent=“ThisisContentArea“;Stringediter=“LaoMao“;StringfilePath=““;filePath=request.getRealPath(“/“)+“test/template.htm“;//out.print(filePath+“<br>“);StringtemplateContent=““;FileInputStreamfileinputstreamnewFileInputStream(filePath);//读取模块文件intlenght=fileinputstream.available;bytebytes[]=newbyte[lenght];fileinputstream.read(bytes);fileinputstream.close;templateContent=newString(bytes);//out.print(templateContent);templateContent=templateContent.replaceAll(“###title###“,title);templateContent=templateContent.replaceAll(“###content###“,content);templateContent=templateContent.replaceAll(“###author###“,editer);//替换掉模块中相应的地方//out.print(templateContent);//Calendarcalendar=Calendar.getInstance;Stringfileame=String.valueOf(calendar.getTimeInMillis)+“.html“;fileame=request.getRealPath(“/“)+fileame;//htmlFileOutputStreamfileoutputstream=newFileOutputStream(fileame);//建立文件输出流bytetag_bytes[]=templateContent.getBytes;fileoutputstream.write(tag_bytes);fileoutputstream.close;}catch(Exceptione){out.print(e.toString);}%>2.template.htm<html><head><title>###title###</title><meta-equiv=“Content-Type“content=“text/html;charset=gb2312“><LINKhref=“../css.css“rel=stylesheettype=text/css></head><body><tablewidth=“500“border=“0“align=“center“cellpadding=“0“cellspacing=“2“><tr><tdalign=“center“>###title###</td></tr><tr><tdalign=“center“>author:###author### </td></tr><tr><td>###content###</td></tr></table></body></html>=======================================================二、从动态页的URL猎取相应页面内容并写入到文件/*Createdon2023-3-4TochangethetemplateforthisgeneratedfilegotoWindow>Preferences>Java>CodeGeneration>CodeandComments*/package.tools.utils;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileOutputStream;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.PrintWriter;import.URLConnection;import.URL;importjava.util.Date;/**@authorAdministratorTochangethetemplateforthisgeneratedtypecommentgotoWindow>Preferences>Java>CodeGeneration>CodeandComments*/publicclassMakeHtml{privatestaticlongstar=0;privatestaticlongend=0;privatestaticlongttime=0;htmlpublicstaticStringgetHtmlCode(StringUrl){Datebefore=newDate;star=before.getTime;StringhtmlCode=““;try{InputStream in;URLurl=new.URL(Url);URLConnectionconnection=(URLConnection)url.openConnection;connection=(URLConnection)url.openConnection;connection.setRequestProperty(“User-Agent“,“Mozilla/4.0“);connection.connect;in=connection.getInputStream;java.io.BufferedReaderbreader=newBufferedReader(newInputStreamReader(in,“GBK“));StringcurrentLine;while((currentLine=breader.readLine)!=null){htmlCode+=currentLine;}}catch(Exceptione){e.printStackTrace;}finally{Dateafter=newDate;end=after.getTime;ttime=end-star;System.out.println(“执行时间:“+ttime+“秒“);}returnhtmlCode;}//存储文件publicstaticsynchronizedvoidwriteHtml(StringfilePath,Stringinfo,Stringflag){PrintWriterpw=null;try{FilewriteFile=newFile(filePath);booleanisExit=writeFile.exists;if(isExit!=true){writeFile.createNewFile;}else{if(!flag.equals(“NO“)){writeFile.delete;writeFile.createNewFile;}}pw=newPrintWriter(newFileOutputStream(filePath,true));pw.println(info);pw.close;}catch(Exceptionex){System.out.println(ex.getMessage);}finally{pw.close;}}publicstaticvoidmain(String[]args){Stringurl=“:///index.htm““:///index.htm“;writeHtml(“c:/demo.htm“,getHtmlCode(url),“NO“);}}三、利用Filter和定制Response,把效劳器返回的JSP响应输出到我们自己的ResponseHtmlimportjava.io.*;importjavax.servlet.*;importjavax.servlet..*;importjava.util.Calendar;publicclassCacheFilterimplementsFilter{ServletContextsc;FilterConfigfc;longcacheTimeout=Long.MAX_VALUE;publicvoiddoFilter(ServletRequestreq,ServletResponseres,FilterChainchain)throwsIOException,ServletException{ServletRequestrequest=(ServletRequest)req;ServletResponseresponse=(ServletResponse)res;//checkifwasaresourcethatshouldn”tbecached.Stringr=sc.getRealPath(““);Stringpath=fc.getInitParameter(request.getRequestURI);if(path!=null&&path.equals(“nocache“)){chain.doFilter(request,response);return;}path=r+path;Stringid=request.getRequestURI+request.getQueryString;FiletempDir=(File)sc.getAttribute(“javax.servlet.context.tempdir“);//getpossiblecacheStringtemp=tempDir.getAbsolutePath;Filefile=newFile(temp+id);//getcurrentresourceif(path==null){path=sc.getRealPath(request.getRequestURI);}Filecurrent=newFile(path);try{longnow=Calendar.getInstance.getTimeInMillis;//settimestampcheckif(!file.exists||(file.exists&¤t.lastModified>file.lastModified)||cacheTimeout<now-file.lastModified){Stringname=file.getAbsolutePath;name=name.substring(0,name.lastIndexOf(“/“));newFile(name).mkdirs;ByteArrayOutputStreambaos=newByteArrayOutputStream;CacheResponseWrapperwrappedResponse=newCacheResponseWrapper(response,baos);chain.doFilter(req,wrappedResponse);FileOutputStreamfos=newFileOutputStream(file);fos.write(baos.toByteArray);fos.flush;fos.close;}}catch(ServletExceptione){if(!file.exists){thrownewServletException(e);}}catch(IOExceptione){if(!file.exists){throwe;}}FileInputStreamfis=newFileInputStream(file);Stringmt=sc.getMimeType(request.getRequestURI);response.setContentType(mt);ServletOutputStreamsos=res.getOutputStream;for(inti=fis.read;i!=-1;i=fis.read){sos.write((byte)i);}}publicvoidinit(FilterConfigfilterConfig){this.fc=filterConfig;Stringct=fc.getInitParameter(“cacheTimeout“);if(ct!=null){cacheTimeout=60*1000*Long.parseLong(ct);}this.sc=filterConfig.getServletContext;}publicvoiddestroy{this.sc=null;this.fc=null;}}参考文章:使用Filter实现静态HTML缓冲(一种折中方法)缓冲是WebJSP/ServletJSPJSPHtml适合于数据不常常变化但是页面访问量特别大的站点,如闻等,通过把JSPHtml应的Html页面,从而避开解析JSP恳求,调用后台规律以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024某城市雨水收集利用项目承包合同
- 2024版土地居间合同协议
- 2024消防宣传与安全教育合作合同
- 2022学年汕头市澄海区七年级语文(下)期末考试卷及答案解析
- 2024建设工程施工项目居间合同
- 2024影视作品海外发行与版权合同
- 2023-2024年江苏省南京市建邺区九年级(下)中考一模英语试卷(含详细答案解析)
- 2022年中考化学模拟卷2(苏州专用)
- 2024年项目合作合同项目合作详细协议
- 2024年西安市二手住宅房产交易协议范本版
- 2025年首都机场集团招聘笔试参考题库含答案解析
- 中国珠宝市场发展报告(2019-2024)(中英)-中国珠宝玉石首饰行业协会
- 2024年陕西省安全员《A证》考试题库及答案
- 2024版新能源汽车购置补贴及服务保障合同3篇
- 2024-2025学年华东师大新版八年级上册数学期末复习试卷(含详解)
- 《praat使用入门》课件
- 医药销售主管市场规划
- 测量应急管理方案
- 2024-2025学年深圳市初三适应性考试模拟试卷语文试卷
- DB22JT 147-2015 岩土工程勘察技术规程
- 杵针疗法课件
评论
0/150
提交评论